automatisierte Telegram Überwachung
Der geneigte Leser mag ja von Telegram und seinen vielen Gruppen halten was immer er möchte. Jedoch ist es unbestritten, dass sich hier für die Verwertung von Cyberinformationen spätestens seit der Ukrine-Krise m.U. wertvolle Daten und Informationen finden lassen.
Ob nun die Qualität entsprechend einer Verwertung als OSINT-Quelle gerechtfertigt ist, kann technisch geprüft und korreliert werden. Aber lassen Sie uns an einem praktischen Beispiel, aus eben genannter Ukraine-Krise beginnen.
Eben während der Krise war Telegram mit seinen verschiedenen pro-Russischen- und pro-Ukraine-Gruppen immer wieder im Fokus von Beobachtungen um Hinweise über etwaige Cyber-Angriffsziele im eigenen Umfeld zu erkennen. Auch die verschiedenen durchgeführten Aktion (meist DDoS und Datenbank/Informations-Leaks) von Zielen im nicht nur Deutschen Umfeld wurden hier publiziert.
Damit war Telegram eine m.U. recht wertvolle Quelle für die diversen Lageberichte der jeweiligen Bedrohungslage unserer IT-Landschaft geworden.
Einzig der mit der Überwachung der verschiedenen Kanäle verbundene Zeitaufwand war aber einer entsprechend niedrigen Bedrohungslage zu intensiv geworden. Zumal die Posts meist in Russisch oder anderen für deutsche Analysten wenig verständlichen Sprachen gehalten waren.
Mein Traum einer (Teil-) Automatisierung der Auswertung war also schnell geboren.
Es sollte eine Lösung geben, die die abonierten Gruppen eines Benutzers erkennt und diese automatisiert nach "Leckereien" untersucht ohne in dieser Phase großartig manuelle Arbeit des Analysten erfahren zu müssen.
Vorbehaltlich einer aktuell laufenden datenschutzrechtlichen Prüfung und Beurteilung durch Spezialisten der FI-TS, habe ich hier erstmal eine "Machbarkeitsstudie" initiiert. Sobald jedoch das "OK" von Seiten der Abteilungen vorliegt, beginnen wir den Service zu professionalisieren und in den Betrieb zu übernehmen.
Erster Schritt: Erfassen der Abonierten Gruppen eines (meines) Benutzers
Hier war das "telegram-cli" eine wertvolle Alternative zu dem Telegram-Client. Mit einem einfachen Befehl kann hier eine Liste der abonierten Gruppen aufgezeigt werden und diese einer lokalen Datei mit "Zielgruppen" hinzugefügt werden. Dies hat m.U. den Vorteil, dass durch das einfache abonieren einer Gruppe im regulären Telegram-Client durch den Analysten, eine zukünftige Analyse stattfinden kann.
Zweiter Schritt: Downloaden der Nachrichten der "Zielgruppen"
Die Nutzung von "telegram-messages-dump" erwies sich als sehr hilfreich zur Erledigung dieser Aufgabe. Besonders die Tatsache, dass es die Möglichkeit gibt, nur jeweils die letzten (neuen) Nachrichten zu sichern und vor allem das unterstütze JSON-Format, sind für die weitere Verarbeitung mit Splunk zur IOC-Suche von elementarer Bedeutung.
Da jedoch hier nur die Daten beim jeweils periodischen Aufruf des Scripts gesichert werden, habe ich mittels des telegram-cli noch eine Variante der Live-Verfolgung der reinen Nachrichtendaten implementiert.
Dritter Schritt: Übersetzen in Englisch
Jedoch waren alle Posts und Text ja noch immer in der jeweiligen Sprache verfasst, so dass eine Analyse ohne entsprechende Kenntnisse nicht möglich war. - Aber hier kann Googles deepL mti seiner Übersetzungs-KI Abhilfe schaffen.
Durch die geschickte "translate-shell" wird die jeweilige Ausgangssprache automatisch erkannt und von allen unterstützten Sprachen in Englisch übersetzt. Wie genial, jetzt ist es möglich die übersetzten Texte in der JSON-Datei nach Splunk zu importieren um dort in der bereits vorhandenen IOC-Engine nach entsprechenden Fundstellen von Interesse zu suchen.
Vierter Schritt: Suche nach Indikatoren im Rahmen der existierenden IOC-Prozesse
Da nur der eigentliche Text in der JSON übersetzt wird, bleibt die Metainformation erhalten und es ist in der Splunk-Auswertung möglich, die entsprechende Telegram-Nachricht zu identifizieren, damit der Analyst sich im originären Telegram-Post die Informationen nochmals betrachten kann.
Die entsprechenden Findings gehen, wie bereits andere auch schon, in den täglichen Bericht mit ein und geben dem Analysten ein direktes Feedback zu Findings die ihn betreffen. - Alles ohne einen einzigen Post lesen oder Analysieren/Übersetzen zu müssen.
Fünfter Schritt: Prüfung von Leak-Daten aus den versch. Gruppen
Die verschiedenen Gruppen in Telegram verkaufen m.U. sog. "Leaks".Um die Validität und den Wert eines derartigen Daten-Leaks zu beweisen, werden oftmals kleinere oder größere Datenmuster zur Verfügung gestellt. Auch werden, zur Reputationsverbesserung der einzelnen Gruppe ganze Datenbanken kostenfrei veröffentlicht.
Eben diese Datenbanken enthalten meist Mailadressen/Benutzerkennungen und Passwörter von div. Internetauftritten die von Interesse sind. Wenn dort eine Benutzerkennung und Kennwort mit entsprechend eindeutigem Bezug zu uns oder unseren Kunden aufgefunden wird, ist es im allgemeinen wenigstens eine Policy-Verstoß (keine Firmenadressen für private Aktivitäten), jedoch zumindest ein vager Verdacht, dass eine gleiche (ähnliche) Passwordstruktur für den Firmeninternen Zweck genutzt wird. Sprich der Inhaber dieser Benutzer-ID sollte kontaktiert und zum Ändern seiner Kennwörter aufgefordert werden.
Lange Rede, kurzer Effekt. Die in Telegram veröffentlichen Leak-Dateien werden mittels dem "telegram_media_downloader" herunter geladen.
Da diese Dateien m.U. heftig groß und viele werden können, bietet das Tool die Möglichkeit nur relevante Dateitypen zu betrachten und stellt obendrein sicher, dass Dateien nur einmal heruntergeladen werden. - Auch wenn das Programm periodisch aufgerufen wird.
Aktuell muss hier noch eine manuelle Prüfung der Dateien erfolgen, da insbesonders die Datenstruktur für den erfolgreichen Import in Splunk (noch) nicht immer automatisch erkannt werden kann.
In Anbetracht der Qualität dieser Leak-Daten, wird die Automatisierung jedoch bald etabliert sein, da ich mir hier doch einiges an Zeit einsparen kann.
Das Ergebnis:
Da die Daten mittels div. Konfigurationen dann letztendlich in Splunk landen, sind darüber entsprechende Auswertung möglich. - Die hier aufgeführten Beispiele sind nur erste Ergebnisse die die Möglichkeiten aufzeigen sollen und entsprechen nicht der letztendlichen Funktionsmöglichkeit der Anwendung.
Das Total der erfassten Chat-Nachrichten im angegeben Zeitraum um letztendlich eine Kontrolle der erarbeiteten Daten zu erhalten.
Zusätzlich noch eine Darstellung der live erfassten Nachrichten mit der automatischen Prüfung auf entsprechende Indikatoren um die Visualisierung von Interessanten Meldungen zu vereinfachen und zu beschleunigen.
Das Total der importierten Leak-Daten die als File-Anhang in den Nachrichten verarbeitet wurden. Hier wird gleich nach gefundenen Benutzernamen und zugehörigen Passwörtern berichtet. Man beachte hier den logarythmischen Stil der Grafik. Es wurden an einem Tag (24.07.22) mehr als 10 Millionen geleakte Accounts mit entsprechenden Kennwörtern importiert und konnten automatisiert nach Übereinstimmungen mit Indikatoren aus dem FI-TS Umfeld geprüft werden.
Das CDC betreibt eine sog. IOC-Watchlist in der sich div. Stichwörter zu schützenswürdigen Daten befinden. Etwaige Fundstellen derartiger Indikatoren in den Telegram-Nachrichten werden hier angezeigt und obendrein als ein Security-Alert an das CDC-Team zur weiteren Verarbeitung gesendet. Hier wurden beispielsweise verschiedene DDoS-Attacken auf deutsche Einrichtung im Rahmen der Ukraine-Krise bereits Tage vor der Durchführung angekündigt.
Die Analyse der in einigen Telegram-Nachrichten enthaltenen Dateianhängen (Bild 3) erfolgt ebenfalls automatisiert und liefert per Alert bzw. Mail einen täglichen Bericht mit den Indikatoren aus dem FI-TS Umfeld. Leider kann ich hier nur beispielhaft Daten aufzeigen aber seien Sie versichert, dass die Listen oftmals mehr als 100 Einträge pro Tag enthalten.