Telegram hat sich zu einer der wertvollsten Echtzeit-Datenquellen für Cyber-Bedrohungsintelligenz entwickelt. Staatsnahe Bedrohungsakteure, hacktivistische Kollektive und kriminelle Gruppen, die Angriffe gegen Regierungen, kritische Infrastrukturen und Verteidigungsziele durchführen, kündigen ihre Operationen routinemäßig vor oder unmittelbar nach ihrer Durchführung an – sie nennen Opfer, behaupten Angriffsvektoren und veröffentlichen Beweise. Das Problem liegt im Volumen und der Struktur: Hunderte von Kanälen, Tausende von Nachrichten pro Tag, fast alle in unstrukturierter natürlicher Sprache, gemischt mit Rauschen, Reposts und Fehlinformationen.

Corvus.Sense wurde entwickelt, um dieses Problem im Produktionsmaßstab zu lösen. Im Kern befindet sich eine mehrstufige LLM-Pipeline, die rohe Telegram-Nachrichtenströme aufnimmt und strukturierte Bedrohungsintelligenz-Datensätze mit Sektorklassifizierung, geografischer Zuordnung, Angriffsvektormarkierung und Konfidenzwertung erzeugt – in unter 90 Sekunden nach der Nachrichtenveröffentlichung. Dieser Artikel beschreibt, wie diese Pipeline aufgebaut ist und warum jede Designentscheidung getroffen wurde.

Warum LLMs und keine regelbasierten Extraktionen

Die erste Designentscheidung war, ob deterministische Extraktion (Regex, Schlüsselwort-Matching, Named Entity Recognition) oder generative LLM-Inferenz zur Klassifizierung verwendet werden soll. Wir haben beide Ansätze umfassend auf einem beschrifteten Datensatz von 12.000 bestätigten Angriffsmeldungen aus 34 Telegram-Kanälen evaluiert. Die Schlussfolgerungen waren eindeutig.

Regelbasierte Systeme erzielten akzeptable Präzision für bekannte Akteurgruppen mit konsistenten Posting-Mustern, versagten jedoch bei neuen Akteuren, Code-Switching (Nachrichten mit gemischtem Ukrainisch, Russisch und Englisch), Abkürzungen, absichtlicher Verschleierung und stilistischer Variation. Falsch-Negativ-Raten von über 30 % bei neuen Akteurkanälen machten regelbasierte Extraktion operativ unzureichend – eine von drei echten Angriffsmeldungen zu verpassen ist kein praktikables Geheimdienstprodukt.

LLM-basierte Klassifizierung erzielte über 91 % F1 auf demselben Evaluierungssatz, einschließlich Code-Switching-Nachrichten und neuer Akteurkanäle, die nicht in den Trainingsdaten vorhanden waren. Der Kompromiss liegt in der Latenz und den Kosten pro Nachricht, die beide durch die unten beschriebene Pipeline-Architektur adressiert werden.

Pipeline-Stufe 1: Aufnahme und Vorverarbeitung

Corvus.Sense verbindet sich über dedizierte Dienstkonten mit Telegram-Kanälen über die Telegram API. Jeder konfigurierte Kanal wird in einem konfigurierbaren Intervall abgefragt (Standard 30 Sekunden). Neue Nachrichten seit dem letzten Abfrage-Zeitstempel werden abgerufen, gegen den Nachrichten-ID-Index dedupliziert und zur Verarbeitung in die Warteschlange gestellt.

Die Vorverarbeitung behandelt mehrere Datenqualitätsprobleme, bevor eine Inferenz erfolgt. Nachrichten mit weniger als 20 Tokens werden verworfen – sie enthalten zu wenig semantischen Inhalt für eine Klassifizierung. Weitergeleitete Nachrichten werden mit ihrem ursprünglichen Quellkanal verfolgt; wenn das Original bereits verarbeitet wurde, wird die Weiterleitung als Duplikat markiert und übersprungen, um zu verhindern, dass dieselbe Ankündigung mehrere Alarmdatensätze erzeugt. Nur-Medien-Nachrichten (Bilder, Videos ohne Beschriftung) werden separat für eine bildbasierte Pipeline in die Warteschlange gestellt, die nicht Gegenstand dieses Artikels ist.

Die Spracherkennung läuft auf jeder Nachricht, um die Quellsprache (ISO 639-1) zu kennzeichnen. Dieses Tag wird an die LLM-Eingabeaufforderung weitergegeben, um sprachlich geeignete Few-Shot-Beispiele im Klassifizierungs-Prompt zu ermöglichen.

Pipeline-Stufe 2: Binäre Relevanzklassifizierung

Der vollständige LLM-Klassifizierungsaufruf ist im Verhältnis zum Nachrichtenvolumen kostspielig. Ein leichtgewichtiges binäres Klassifikator-Gate läuft vor jeder LLM-Inferenz, um nicht-operative Inhalte herauszufiltern. Dieser Klassifikator ist ein feinabgestimmtes Encoder-Modell (350 Millionen Parameter), das trainiert wurde, um operative Angriffsmeldungen von Kommentaren, Nachrichtenreposts, Rekrutierungsbeiträgen, Propaganda und allgemeinen Kanal-Inhalten zu unterscheiden.

Der binäre Klassifikator arbeitet bei unter 200 Millisekunden pro Nachricht auf reiner CPU-Inferenz-Hardware. Auf dem Produktions-Evaluierungssatz erreicht er 94,3 % Präzision und 89,7 % Trefferquote. Die Trefferquote wird absichtlich nicht höher gedrückt – die Kosten eines falsch negativen Ergebnisses in dieser Stufe (eine echte Ankündigung, die nicht zur LLM-Klassifizierung weitergeleitet wird) sind hoch, daher wird der Schwellenwert konservativ gesetzt, um die Trefferquote zu maximieren. Falsch positive Ergebnisse in dieser Stufe kosten einen vollständigen LLM-Inferenzaufruf, was der kontrollierte Kompromiss ist.

Wichtige Erkenntnis: Das binäre Gate ist nicht der Genauigkeitsengpass – es ist ein Kostenfilter. Die Genauigkeit wird von der LLM-Stufe geliefert. Das Gate stellt sicher, dass das LLM nur Kandidaten-Betriebsmeldungen verarbeitet, was die täglichen LLM-Aufrufe im Vergleich zum Ausführen von LLM-Inferenz auf dem gesamten Nachrichtenstrom um etwa 78 % reduziert.

Pipeline-Stufe 3: LLM-Klassifizierung und Anreicherung

Nachrichten, die das binäre Gate passieren, gelangen in die LLM-Klassifizierungsstufe. Corvus.Sense verwendet einen strukturierten Ausgabe-Prompt, der das Modell anweist, jedes der folgenden Felder aus dem Nachrichtentext zu extrahieren und zu klassifizieren:

Opferorganisation. Die genannte oder implizierte Zielorganisation, normalisiert auf eine kanonische Form. Wenn die Nachricht eine bestimmte Organisation nennt (z. B. ein Ministerium, ein Versorgungsunternehmen oder ein Finanzinstitut), wird dieser Name wörtlich extrahiert. Wenn das Opfer durch Sektor und Geografie ohne einen bestimmten Namen impliziert wird, wird das Feld als null gefüllt und zur Analysten-Überprüfung markiert.

Sektorklassifizierung. Eines von acht festen Taxonomielabels: kritische Infrastruktur, Finanzen, Regierung, Telekommunikation, Energie, Verteidigung, Gesundheit oder Transport. Die feste Taxonomie ist beabsichtigt – eine offene Klassifizierung erzeugt inkonsistente Labels, die nicht zuverlässig aggregiert werden können. Das LLM erhält Definitionen für jede Kategorie und wird angewiesen, das einzelne am besten passende Label auszuwählen.

Geografische Zuordnung. ISO 3166-1-Alpha-2-Ländercode für das Herkunftsland des Opfers. Wenn mehrere Länder als Ziele genannt werden, werden alle als Array extrahiert. Das Modell wird ausdrücklich angewiesen, das Opferland vom vermuteten Herkunftsland des Akteurs zu unterscheiden – eine häufige Fehlerquelle bei naiven Extraktionsansätzen.

Angriffsvektor. Eine von sechs Vektorkategorien: DDoS, Verunstaltung, Datenexfiltration, Ransomware, Anmeldedatendiebstahl oder Supply-Chain-Kompromittierung. Multi-Vektor-Angriffe werden als Array dargestellt.

Konfidenzwerte. Für jedes extrahierte Feld gibt das Modell einen Konfidenzwert von 0 bis 1 zurück. Der Prompt weist das Modell an, echte epistemische Unsicherheit darzustellen – eine Nachricht, die lautet "Wir werden die ukrainische Energieversorgung angreifen", liefert hohe Konfidenz für Geografie (UA) und Sektor (Energie), aber niedrigere Konfidenz für den Angriffsvektor (nicht angegeben) und die Opferorganisation (nicht genannt). Werte sind keine nachträgliche Kalibrierung; sie werden direkt aus der Unsicherheitsdarstellung des Modells während der Generierung abgeleitet.

Der LLM-Prompt ist strukturiert, um eine JSON-Antwort zu erzeugen, die einem strengen Schema entspricht. Das Antwort-Parsing validiert das Schema beim Empfang; fehlerhafte Antworten lösen einen automatischen Wiederholungsversuch mit einer zusätzlichen Anweisung zur Korrektur des Formatierungsfehlers aus. Die Wiederholungslogik ist auf zwei Versuche begrenzt; Nachrichten, die nach zwei Wiederholungen weiterhin fehlerhafte Ausgaben erzeugen, werden zur Analysten-Überprüfung markiert und aus der automatisierten Verarbeitung entfernt.

Wichtige Erkenntnis: Die feste Taxonomiebeschränkung für Sektor und Angriffsvektor ist entscheidend für die operative Nutzbarkeit. Ein LLM, dem es überlassen bleibt, Freitext-Klassifizierungslabels zu generieren, erzeugt inkonsistente Synonyme – "Stromnetz", "Elektrizitätsinfrastruktur" und "Versorgungssektor" beziehen sich alle auf Energiesektorziele, können jedoch ohne einen Normalisierungsschritt nicht aggregiert werden. Die Beschränkung auf einen festen Label-Satz zur Inferenzzeit eliminiert diese gesamte Klasse von Datenqualitätsproblemen nachgelagert.

Konstruktion des Angriffskettengraphen

Jeder klassifizierte Nachrichtendatensatz wird nach der LLM-Klassifizierung in die Angriffskettengraph-Datenbank geschrieben. Der Graph modelliert die Bedrohungslandschaft als Eigenschaftsgraph mit drei Knotentypen: Bedrohungsakteure, Opferorganisationen und Angriffsereignisse. Kanten stellen Beziehungen dar: "durchgeführt" (Akteur zu Ereignis), "angegriffen" (Ereignis zu Opfer) und "verwendeter Vektor" (Ereignis zu Angriffsvektor-Taxonomieknoten).

Wenn ein neuer klassifizierter Datensatz eintrifft, führt die Graph-Engine Entity Resolution durch: Sie prüft, ob die genannte Opferorganisation bereits als Knoten existiert (unter Verwendung von Fuzzy-Namens-Matching und Ländercode-Disambiguierung) und ob der Telegram-Quellkanal einem bekannten Akteurprofil zugeordnet ist. Wenn beide aufgelöst werden, wird eine Kante erstellt, die den Akteurknoten über einen neuen Angriffsereignisknoten mit dem Opferknoten verbindet. Wenn der Akteur neu ist (Kanal noch keinem Profil zugeordnet), wird ein vorläufiger Akteurknoten zur Analysten-Überprüfung erstellt.

Der Graph ermöglicht Abfragen, die flache Datensatzdatenbanken nicht effizient unterstützen können. Beispiele aus Analysten-Workflows: "Zeige alle Organisationen im Energiesektor, die von diesem Akteur in den letzten 90 Tagen angegriffen wurden, mit Angriffsvektoraufschlüsselung." "Welche Akteure haben in diesem Monat sowohl Verteidigungs- als auch Finanzsektor-Organisationen in Polen angegriffen?" "Was ist die Zeitverteilung der Angriffe dieser Gruppe im Verhältnis zu kinetischen Ereignissen im Einsatzgebiet?" Diese Abfragen laufen als Graph-Traversierungen und liefern Ergebnisse in Sekunden auf Graphen mit Zehntausenden von Knoten.

OSINT-basiertes Bedrohungsmonitoring auf diesem Strukturierungsniveau war vor LLM-basierter Extraktion in dem Maßstab und mit der Genauigkeit, die notwendig sind, um einen Graphen kontinuierlich aus offenen Quellen zu befüllen, nicht erreichbar. Frühere Ansätze erforderten erheblichen manuellen Analysten-Aufwand pro Datensatz, was die Graphdichte und -aktualität einschränkte.

Pattern-of-Life-Analyse für Bedrohungsakteurgruppen

Sobald ein Bedrohungsakteurprofil ausreichende Historie im Graph angesammelt hat (typischerweise 7 oder mehr Tage der Aufnahme), berechnet Corvus.Sense Pattern-of-Life-Metriken. Diese werden aus den temporalen und strukturellen Eigenschaften der Angriffsereignisknoten des Akteurs im Graph abgeleitet.

Aktivitätsstundenverteilung. Angriffsereignis-Zeitstempel werden nach UTC-Stunde des Tages und Wochentag zusammengefasst. Die meisten staatsnahen Gruppen agieren während der Geschäftszeiten in ihrer Heimzeitzone; Abweichungen von diesem Muster (ungewöhnliche Spätestnachts-Hochs, Wochenend-Spitzen) können auf Änderungen des operativen Tempos oder die Beteiligung mehrerer geografisch verteilter Untergruppen hinweisen. Das Aktivitätsstunden-Histogramm wird täglich aktualisiert.

Zielpräferenz-Heatmap. Das Verhältnis der Angriffe nach Sektor und Geografie wird über die gesamte Ereignishistorie des Akteurs berechnet. Dies legt konsistente Zielvorlieben offen – ein Akteur, der in 73 % der Ereignisse ukrainische Energieinfrastruktur angegriffen hat, ist eindeutig spezialisiert, und neue Ankündigungen gegen Energieziele von diesem Akteur sollten unabhängig vom Konfidenzwert erhöhte Priorität erhalten.

TTP-Evolutionsverfolgung. Angriffsvektorverteilungen werden über rollende 30-Tage-Fenster berechnet und mit der historischen Basislinie des Akteurs verglichen. Eine Gruppe, die historisch DDoS-Operationen durchführte und jetzt als Durchführer von Datenexfiltrations-Ereignissen klassifiziert wird, repräsentiert eine TTP-Verschiebung – ein hochwertigeres Geheimdienstsignal, das auf Fähigkeitsentwicklung oder veränderte Ziele hinweist.

Wichtige Erkenntnis: Die Pattern-of-Life-Analyse ist am wertvollsten nicht zur Bestätigung dessen, was Sie bereits über einen Bedrohungsakteur wissen, sondern zur Erkennung, wenn sich ihr Verhalten ändert. Stabile Muster sind nützliche Basislinien; Abweichungen von diesen Mustern sind das Signal, das Analysten-Aufmerksamkeit und potenziell Eskalation zu hochrangigen Geheimdienstkonsumenten rechtfertigt.

Automatisierte Zusammenfassung für Führungskräfte

Corvus.Sense enthält eine automatisierte Zusammenfassungsgenerations-Pipeline, die menschenlesbare Geheimdienstprodukte aus den strukturierten Graphdaten erstellt. Zusammenfassungen werden nach einem konfigurierbaren Zeitplan (täglich, wöchentlich oder auf Anfrage) oder ausgelöst durch Schwellenwert-Ereignisse (Angriffsanzahl durch einen verfolgten Akteur, die innerhalb eines Zeitfensters einen konfigurierten Grenzwert überschreitet) generiert.

Die Zusammenfassungspipeline fragt den Graph für den relevanten Akteur, Sektor oder geografischen Bereich ab, der durch die Berichtsvorlage definiert ist, ruft die strukturierten Ereignisdatensätze und Pattern-of-Life-Metriken ab und übergibt diesen strukturierten Kontext an ein Generierungsmodell mit einem narrativen Syntheseprompt. Das Ergebnis ist ein Prosa-Geheimdienstbriefing in dem für Führungskonsumenten geeigneten Register – kein JSON, keine Feldlabels, keine Konfidenzwerte, es sei denn, sie sind analytisch signifikant.

Entscheidend ist, dass das Zusammenfassungsgenerierungsmodell auf strukturierten Daten operiert, die aus dem Graph abgerufen wurden, nicht auf rohem Telegram-Nachrichtentext. Diese architektonische Trennung verhindert Halluzinationen aus mehrdeutigem Quellmaterial: Das Generierungsmodell kann nur Ereignisse referenzieren, die als validierte klassifizierte Datensätze im Graph existieren. Wenn ein behaupteter Angriff die Qualitätsprüfungen der Klassifizierung nicht bestanden hat, erscheint er nicht in einer Zusammenfassung.

Konfidenzwertung und Unsicherheitsbehandlung

Jeder klassifizierte Datensatz in Corvus.Sense trägt feldbasierte Konfidenzwerte. Diese Werte fließen zu allen nachgelagerten Verbrauchern: Das Analysten-Dashboard zeigt Konfidenz visuell an, Alarmregeln können so konfiguriert werden, dass sie nur oberhalb eines Mindest-Schwellenwerts pro Feld auslösen, und der STIX-Export ordnet Konfidenzwerte der STIX-Konfidenz-Eigenschaft zu.

Datensätze, bei denen ein kritisches Feld (Sektor, Geografie oder Akteurszuordnung) unter den konfigurierten Schwellenwert fällt, werden in die Analysten-Überprüfungswarteschlange gestellt, anstatt automatisierte Alarme zu generieren. Der Schwellenwert ist pro Bereitstellung konfigurierbar: Hochempfindliche Installationen zur Überwachung kritischer Infrastrukturen können Schwellenwerte senken, um die Trefferquote zu maximieren; breitere Monitoring-Bereitstellungen können Schwellenwerte erhöhen, um das Analysten-Warteschlangenvolumen zu reduzieren.

Für Felder, bei denen die Konfidenz des LLMs marginal ist (standardmäßig zwischen 0,65 und 0,80), übermittelt Corvus.Sense die Nachricht optional für einen zweiten unabhängigen LLM-Durchlauf mit einer anderen Prompt-Formulierung. Wenn beide Durchläufe in einem Feldwert übereinstimmen, wird der Konfidenzwert erhöht; wenn sie nicht übereinstimmen, wird das Feld als umstritten markiert und beide Kandidatenwerte werden dem Analysten angezeigt.

Corvus.Sense zur Verfolgung eines bestimmten Bedrohungsakteurs konfigurieren

Die folgende Abfolge beschreibt, wie Corvus.Sense für die gezielte Überwachung einer benannten Hackergruppe über ihre Telegram-Kanäle eingerichtet wird.

Schritt 1 – Identifizieren Sie die Telegram-Kanäle des Akteurs. Stellen Sie numerische Kanal-IDs und @Benutzernamen für alle bekannten Kanäle zusammen, die von der Zielgruppe betrieben oder mit ihr verbunden sind, einschließlich Spiegel- und Backup-Kanälen. Corvus.Sense akzeptiert beide Formate.

Schritt 2 – Erstellen Sie ein Akteurprofil. Erstellen Sie im Actors-Panel ein neues Profil mit dem kanonischen Gruppennamen und bekannten Aliasen. Weisen Sie MITRE ATT&CK-Technik-IDs zu, die die bekannten TTPs der Gruppe widerspiegeln. Verknüpfen Sie die Kanalbezeichner mit diesem Profil. Von diesem Zeitpunkt an sind alle Nachrichten aus diesen Kanälen mit diesem Akteurknoten im Graph verknüpft.

Schritt 3 – Konfigurieren Sie den Sektor- und Geografiebereich. Wählen Sie die Sektoren und Ländercodes aus, die Sie für diesen Akteur überwachen möchten. Außer-Bereich-Angriffe werden weiterhin aufgenommen und klassifiziert, aber von der akteurspezifischen Alarmgenerierung ausgeschlossen. Dies ermöglicht eine breite Aufnahme, während das Alarmvolumen auf operativ relevante Ereignisse fokussiert bleibt.

Schritt 4 – Legen Sie Konfidenz-Schwellenwerte und Alarmzustellung fest. Konfigurieren Sie Mindest-Konfidenz-Schwellenwerte pro Feld. Für Verteidigungs- und kritische Infrastruktursektoren maximieren niedrigere Schwellenwerte (0,65) die Trefferquote. Konfigurieren Sie die Alarmzustellung per E-Mail, Webhook oder einem SIEM-Integrationsendpunkt. Corvus.Sense unterstützt CEF- und JSON-Alarmformate für die SIEM-Aufnahme.

Schritt 5 – Überprüfen und korrigieren Sie anfängliche Klassifizierungen. Überprüfen Sie während der ersten 72 Stunden alle klassifizierten Datensätze in der Analysten-Warteschlange für diesen Akteur, unabhängig vom Konfidenzwert. Inline-Korrekturwerkzeuge ermöglichen Bearbeitungen auf Feldebene. Korrekturen werden protokolliert und können eingereicht werden, um die Modellkalibrierung für die sprachlichen Muster dieses Akteurs im Laufe der Zeit zu verbessern.

Schritt 6 – Aktivieren Sie die Pattern-of-Life-Analyse. Aktivieren Sie nach 7 Tagen akkumulierter Ereignisdaten die Pattern-of-Life-Ansicht. Aktivitätsstundenverteilungen, Zielpräferenz-Heatmaps und TTP-Histogramme werden aus dem Graph berechnet und täglich aktualisiert. Diese Ansicht ist der primäre Input für die Antizipation zukünftigen Ziel-Verhaltens.

Schritt 7 – Exportieren Sie strukturierte Intelligenz. Verwenden Sie den Akteurprofil-Export, um Geheimdienstprodukte im JSON-, PDF- oder STIX-2.1-Bundle-Format zu generieren. Der STIX-Export ordnet Akteurprofildaten STIX-Bedrohungsakteur- und Kampagnenobjekten für die Weitergabe über TAXII oder den Import in externe CTI-Plattformen zu.