Die Erstellung von Abfragen für die Malware-Infrastruktur kann ein wertvoller Schritt im Sicherheitslebenszyklus sein. Leider gibt es nur wenige Ressourcen, die zeigen, wie man anfängt und welche Indikatoren für die Erstellung von Abfragen verwendet werden können. Heute möchten wir diese Lücke schließen, indem wir leicht zugängliche und hochwertige Methoden vorstellen, die für die Suche nach Malware-Infrastruktur verwendet werden können.
Was ist die Erstellung von Abfragen für die Malware-Infrastruktur?
Beim Erstellen von Abfragen werden verdächtige oder bekannte bösartige Infrastrukturen beobachtet und Abfragen erstellt, um das Konfigurationsmuster zu ermitteln, das der Urheber der Infrastruktur verwendet hat. Da Bedrohungsakteure häufig dieselbe oder eine ähnliche Konfiguration für mehrere bereitgestellte Server verwenden, gibt es häufig ein Muster, das zur Identifizierung mehrerer Server anhand eines einzigen Anfangsindikators verwendet werden kann.
Eine gut aufgebaute Abfrage ermöglicht es einem Analysten, zusätzliche Server zu identifizieren, die mit der Infrastruktur des Akteurs in Verbindung stehen. Der Analyst kann dann proaktiv blockieren, untersuchen oder zusätzliche Maßnahmen ergreifen, um die Kompromittierung zu begrenzen und Informationen zu sammeln.
Warum Abfragen auf der Malware-Infrastruktur aufbauen?
Die Erstellung von Abfragen auf der Malware-Infrastruktur kann ein hocheffizientes Mittel sein, um IOCs für die Blockierung und Jagd zu erhalten.
Herkömmliche Methoden zur Auflistung von Malware-Infrastrukturen beinhalten die Beschaffung einer großen Anzahl einzigartiger Malware-Samples und die Extraktion einzelner IOCs aus jeder Datei.
Dies kann ein sehr langwieriger und technischer Prozess sein, der einen engagierten Reverse Engineer erfordert, der eine Probe dekonstruiert, eine Yara-Jagdregel entwickelt und testet, neue Proben beschafft und dann einen Konfigurationsextraktor entwickelt und anwendet, um einzelne IOCs zu erhalten.
Diese Reverse-Engineering-Fähigkeit erfordert ein erhebliches Maß an technischem Know-how, das die meisten Teams an Bedrohungsdaten-Feeds auslagern. Die Auslagerung an Bedrohungsdaten-Feeds kann effektiv sein, und es gibt gute kostenpflichtige Feeds, die jedoch oft teuer sind und in Bezug auf Qualität und Aktualität stark variieren können.
Vorteile von Abfragen der Gebäudeinfrastruktur
Durch die Entwicklung eigener Infrastrukturabfragen für die Suche können Sie eine weitaus umfangreichere Liste von Malware-IOCs mit einer wesentlich geringeren Anzahl von Malware-Samples, technischem Know-how und Gesamtkosten erstellen. Sie können Abfragen auch nutzen, um die Warnmeldungen aus Ihrer eigenen Umgebung zu erweitern, so dass Sie eine Liste von IOCs erstellen können, die sich auf bekannte Malware beziehen, die Ihr Unternehmen betrifft.
Mit den in diesem Beitrag vorgestellten Techniken können Sie potenziell Dutzende aktueller Malware-IOCs und -Infrastrukturen mit nur einer einzigen verfügbaren Probe oder Warnung identifizieren.
Was sind die Indikatoren, die wir verwenden können?
Eine einzige böswillige IP-Adresse enthält eine Vielzahl von Informationen, die zur Identifizierung weiterer Server verwendet werden können. Dies ist auf eindeutige Muster in Bezug auf die von einem Akteur eingesetzte Software und Konfiguration zurückzuführen.
Da Bedrohungsakteure oft dieselbe Software und Konfigurationen in mehreren Instanzen einer bösartigen Infrastruktur verwenden, kann ein einziges Muster zur Identifizierung anderer Server verwendet werden.
Einige der häufigsten Indikatoren, die von Bedrohungsakteuren wiederverwendet werden, sind:
- Zertifikatsinformationen - Felder innerhalb von TLS- und SSL-Zertifikaten. Festcodierte Werte werden oft wiederverwendet.
- Server-Header - Akteure, die benutzerdefinierte Software bereitstellen, vergessen möglicherweise, die Standard-Header, die Indikatoren enthalten, zu ändern.
- Daten in HTTP-Antworten - Benutzerdefinierte Software mit eindeutigen Werten in HTTP-Antworten
- Standort, ASN und Hosting-Provider - Akteure, die Hosting-Provider für die Infrastruktur wiederverwenden. Ähnliche Server können im selben ASN gehostet werden.
- JA3 Hashes - Akteure, die ungewöhnliche Softwarekonfigurationen einsetzen, können durch JA3-Signaturen mit einem Fingerabdruck versehen werden.
- Port-Konfigurationen - Die Akteure lassen oft dieselben Ports in der gesamten Infrastruktur offen.
- Reguläre Ausdrücke - Akteure können eindeutige Werte mit sehr ähnlicher Struktur einsetzen, die mit regulären Ausdrücken erfasst werden können.
Nachdem wir nun die wichtigsten Konzepte behandelt haben, wollen wir uns nun mit einigen Beispielen beschäftigen.
Hunting-Infrastruktur mit TLS-Zertifikaten
Bedrohungsakteure und Malware-Entwickler nutzen TLS-Zertifikate, um die Kommunikation zu verschlüsseln und Verbindungen zwischen einem Zielhost und einer bösartigen Infrastruktur herzustellen.
Aus vielen Gründen setzen die Akteure nur selten eindeutige Zertifikate für jede eingesetzte Probe ein. Dies führt dazu, dass Werte innerhalb eines einzelnen TLS-Zertifikats auf zahlreichen anderen Servern vorhanden sind, was zu einfachen Mustern führt, die signiert und abgefragt werden können.
Beispiel 1: Jagd auf AsyncRAT mit TLS-Zertifikaten
Die Malware-Familie von AsyncRAT enthält ein hartcodiertes TLS-Zertifikat, das vom Entwickler hinterlassen wurde. Dieses Zertifikat enthält den hartkodierten Subject Common Name-Wert von AsyncRAT Server
Nehmen Sie zum Beispiel eine IP-Adresse von 91.109.176[.]4. Die Abfrage dieser IP in Censys Search bestätigt einen Subject Common Name (CN) Wert von AsyncRAT Server auf Port 8808.
Durch Erweitern der Host-Informationen und Auffinden des genauen Feldes, in dem der Wert für den AsyncRAT-Server gespeichert ist services.tls.certificates.leaf_data.subject_dn, können wir eine Abfrage erstellen, um weitere Server zu finden.
In diesem Fall kann entweder das Feld subject_dn oder issuer_dn verwendet werden, da beide denselben fest kodierten Wert enthalten.
Durch die Suche nach AsyncRAT Server in einem dieser Felder können wir weitere 110 Server mit demselben Zertifikatswert ausfindig machen.
Beispiel 2: Cobalt Strike mit TLS-Zertifikaten jagen
Das berüchtigte Cobalt Strike Toolkit kann auch mit Hilfe von TLS-Zertifikatwerten aufgespürt werden.
Dies ist in erster Linie auf die Standardbezeichnung Major Cobalt Strike zurückzuführen.
Nehmen Sie zum Beispiel die IP-Adresse 23.98.137[.]196 mit dem folgenden Zertifikat auf Port 50050.
Es gibt hier mehrere fest kodierte Werte, die verwendet werden können, aber der Einfachheit halber werden wir den gemeinsamen Namen des Emittenten verwenden Großer Kobaltstreik.
Wir können die detaillierte Hostansicht erneut erweitern, um den genauen Feldnamen zu ermitteln. Services.tls.certificates.leaf_data.issuer.common_name.
Die Abfrage dieses Wertes liefert 236 Ergebnisse. Die Wahrscheinlichkeit, dass legitime Software "Major Cobalt Strike" enthält, ist sehr gering, so dass es sich hierbei wahrscheinlich um aktive Cobalt Strike-Einsätze handelt.
Infrastruktur mit HTTP-Antwort-Titeln aufspüren
Die Entwickler von Malware-Kontrollservern hinterlassen oft eindeutige und identifizierende Zeichenfolgen in den Webseitendaten.
Am häufigsten sind diese in den HTML-Titeln und HTTP-Bodies zu finden.
Es ist sinnvoll, darauf hinzuweisen, dass diese Werte geändert werden können, aber viele Akteure machen sich diese Mühe nicht und lassen die identifizierenden Zeichenfolgen unverändert.
Beispiel 1: Mythischer C2-Rahmen
Das Mythic C2-Framework wird häufig von Bedrohungsakteuren verwendet und enthält einen Standard-HTML-Titel von Mythic.
Wenn wir uns die IP 89.223.66[.]195 ansehen, können wir den Mythic-String im HTML-Titel bestätigen.
Bei der Abfrage nach dem Mythic-String in services.http.response.html_title können wir insgesamt 75 Server ausfindig machen.
Viele dieser Server sind bereits von der Plattform Censys als C2-Server gekennzeichnet worden. (Sie können andere C2-Server mit der Abfrage labels:C2 ausfindig machen)
Jagdinfrastruktur mit Dienstbannern
Bedrohungsakteure und Malware-Entwickler hinterlassen oft Identifizierungszeichenfolgen innerhalb von Dienstbannern. Diese werden oft absichtlich vom Autor hinterlassen, um den Missbrauch der Software einzuschränken.
Diese können mit ähnlichen Methoden wie die HTML-Titel identifiziert, abgefragt und nachverfolgt werden.
Beachten Sie, dass die Dienstbanner möglicherweise nicht standardmäßig angezeigt werden und Sie die detaillierte Hostansicht öffnen müssen, um sie zu sehen.
Beispiel 1: Havoc C2 Framework
Nehmen wir zum Beispiel das Havoc C2-Framework. Havoc ist ein von C5pider entwickeltes Open-Source-C2-Framework, das aufgrund seiner hochwertigen Implementierung moderner Angriffstechniken von Bedrohungsakteuren genutzt wird.
Bei den Standardeinstellungen enthält der Havoc Team Server die Zeichenfolge X-Havoc innerhalb des Dienstbanners. Dies wurde vom Autor absichtlich so belassen, um den Missbrauch der Software einzuschränken.
Die Suche nach services.banner mit der Zeichenfolge X-Havoc liefert insgesamt 71 Ergebnisse.
Eine Zeichenfolge wie diese ist spezifisch und es ist unwahrscheinlich, dass es zu Fehlalarmen kommt. Es ist also sehr wahrscheinlich, dass es sich hierbei um aktive Einsätze von Havoc handelt.
Beispiel 2: Jagd auf DarkComet mit Service-Bannern
Ein zweites Beispiel für die Jagd mit Service-Bannern ist die Malware DarkComet.
Unter der IP-Adresse 187.135.84[.]89 können wir einen eindeutig aussehenden Dienstbanner von BF7CAB464EFB auf Port 2000 beobachten
Wir können services.banner mit dem Wert BF7CAB464EFB durchsuchen, um insgesamt 25 Server zu identifizieren.
Zusammenfassung - Jagdinfrastruktur mit Dienstbannern
Bedrohungsakteure haben es oft eilig und vermeiden es, Standardzeichenfolgen in benutzerdefinierter oder quelloffener Software zu ändern. Prüfen Sie bei der Untersuchung eines Hosts unbedingt alle Service-Banner auf einzigartige oder interessante Zeichenfolgen.
Diese Standardzeichenfolgen sind großartige Indikatoren für die Erstellung von Abfragen, und Sie sollten sie unbedingt zu Ihrem Vorteil nutzen.
Wenn Sie sich selbst davon überzeugen möchten, finden Sie hier eine vorgefertigte Abfrage für Havoc und DarkComet.
Jagen mit Standorten und ASN-Anbietern
Bedrohungsakteure verwenden oft dieselben Hosting-Anbieter, wenn sie mehrere Server für böswillige Zwecke einsetzen.
Oft wird dies getan, um Takedowns und Ermittlungen zu vermeiden. In anderen Fällen geschieht dies, weil Hosting-Provider im Heimatland eines Schauspielers leichter zu finden sind.
Unabhängig von den Gründen verwenden die Akteure oft Provider wieder, und wir können dies zu unserem Vorteil nutzen, um bösartige Server zu finden und bestehende Abfragen zu anderen Indikatoren zu verfeinern.
Beispiel 1: Amadey Bot Server
Schauen wir uns die IP-Adresse 185.215.113[.]68 an. Diese IP-Adresse hat einen relativ eindeutigen HTTP-Antwortkörper von none.
Eingehen auf die Anfrage von services.http.response.body="keine"haben wir ein erstes Ergebnis von 84 Servern. Viele dieser Server befinden sich in den Vereinigten Staaten und scheinen nicht bösartig zu sein.
Wenn wir zu den ersten Ergebnissen auf der Host-Seite für 185.215.113[.]68 zurückkehren, sehen wir, dass der Server in Moskau mit einer Autonomous System Number von 51381 gehostet wird .
Wir können diese Zahl als zusätzlichen Filter hinzufügen, um unsere Abfrageergebnisse einzugrenzen.
Durch Hinzufügen von autonomous_system.asn=51381 zu unserer Suche haben wir unsere Suche nun auf nur 4 Ergebnisse beschränkt. Die Abfrage dieser Ergebnisse in Virustotal zeigt, dass sie alle mit der Malware Amadey Bot in Verbindung stehen.
Zusammenfassung - Jagd mit Standorten und Hosting-Anbietern
Bedrohungsakteure nutzen oft dieselben Hosting-Provider, wenn sie ihre Infrastruktur bereitstellen. Der Hosting-Anbieter ist nicht unbedingt ein Indikator an sich, aber er kann mit anderen Indikatoren kombiniert werden, um eine sehr effektive Abfrage zu erhalten.
Wenn Sie eine IOC untersuchen und feststellen, dass Sie zu viele Suchergebnisse haben. Versuchen Sie, den physischen Standort des Servers oder die ASN-Nummer hinzuzufügen, um Ihre Suche einzugrenzen.
Sie können mit dem Amadey-Beispiel experimentieren, indem Sie diese vorgefertigte Abfrage verwenden.
Jagdinfrastruktur mit offenen Verzeichnissen
Bedrohungsakteure hosten Malware und unterstützende Software häufig in offenen Verzeichnissen, die dem öffentlichen Internet zugänglich sind. Diese Verzeichnisse werden in der Regel so eingerichtet, dass die Malware leicht zusätzliche Dateien abrufen kann, um die Ausnutzung zu erleichtern.
Um offene Verzeichnisse zu finden, können wir nach gängigen Verzeichnistiteln wie Directory Listing oder Index Of suchen.
Alternativ können wir mit dem open-dir-Tag, das von Censys zur Verfügung gestellt wird, nach voretikettierten Servern suchen.
Beispiel 1: Suche nach offenen Verzeichnissen mit gemeinsamen Dateinamen
Allein die Suche nach offenen Verzeichnissen kann Hunderttausende von Ergebnissen liefern. Viele davon sind gutartig und nicht bösartig.
Um bösartige Fälle zu identifizieren, können wir die Suche mit einem bestimmten Dateinamen kombinieren, der mit verdächtiger Software in Verbindung steht.
Nehmen Sie zum Beispiel nc.exe, ein gängiger Dateiname für das Tool netcat.
Bei der Untersuchung einer der ersten zurückgegebenen Adressen 123.57.56[.]129 können wir ein offenes Verzeichnis mit nc.exe sowie Verweise auf Hacktools und ein .bat-Skript mit fremden Zeichen feststellen. Diese Informationen reichen aus, um anzunehmen, dass die IP-Adresse höchst verdächtig ist.
Mit diesen Indikatoren können wir versuchen, die Dateien abzurufen, um weitere Analysen durchzuführen und die Bösartigkeit zu bestätigen, oder wir können die neuen Dateinamen verwenden, um die Abfrage zu verfeinern und weitere Server zu identifizieren.
Zum Beispiel können wir die neu identifizierte Zeichenfolge von hacktools nutzen, um eine neue Abfrage zu erstellen.
Wir können dies mit labels:open-dir und Antwortkörpern, die hacktools enthalten, tun.
In diesem Fall wird nur ein einziges Ergebnis zurückgegeben, was jedoch das Konzept der Verwendung von Anfangsergebnissen zur Erstellung neuer Abfragen veranschaulicht. Diese Abfrage kann zu einem späteren Zeitpunkt problemlos erneut ausgeführt werden, um neue Instanzen des verdächtigen Servers zu ermitteln.
Beispiel 2: Verzeichnisse öffnen, die Procdump.exe enthalten
Zur weiteren Veranschaulichung des Konzepts können wir nach offenen Verzeichnissen suchen, die Verweise auf das Prozessdump-Tool procdump.exe enthalten .
Eines der Ergebnisse ist ein Server mit procdump.exe, beacon.exe und shell.exe.
Wir können diese Ergebnisse verwenden, um neue Zeichenfolgen zu identifizieren und Verzeichnisse zu öffnen, die beacon.exe enthalten .
Dadurch wird ein neuer Server mit der IP 62.204.41[.]104 identifiziert. Dieser Server enthält Verweise auf "beacon.exe", aber nicht den ursprünglichen netcat oder procdump. Dies zeigt, wie nützlich es ist, neue Abfragen auf der Grundlage der ersten Ergebnisse zu erstellen.
Zusammenfassung - Jagd auf offene Verzeichnisse
Die Suche nach offenen Verzeichnissen kann ein nützliches Mittel sein, um verdächtige Server aufzuspüren. Dies ist besonders nützlich, wenn es sich um Downloader-Malware handelt, die einen Server mit einem offenen Verzeichnis aufgerufen hat.
Verwenden Sie bei der Erstellung von Abfragen das vordefinierte open-dir-Tag und nutzen Sie bekannte Dateinamen. Fügen Sie dann auf der Grundlage Ihrer Ergebnisse neue Dateinamen und Zeichenfolgen hinzu.
Wir haben hier einige vorgefertigte Abfragen für beacon.exe, procdump.exe und nc.exe eingefügt.
Reguläre Ausdrücke in Suchanfragen einbinden
Fortgeschrittene Bedrohungsakteure vermeiden es oft, fest kodierte Werte auf mehreren Servern zu verwenden.
Wenn eindeutige Werte bereitgestellt werden, geschieht dies häufig über Skripte und automatisierte Programme. Das bedeutet, dass sich die "Struktur" der Werte, auch wenn sie eindeutig sind, oft wiederholt und mit regulären Ausdrücken signiert werden kann.
Werfen wir einen Blick auf einige Beispiele für eindeutige Werte, die mit regulären Ausdrücken signiert werden können. Beachten Sie, dass die Suche mit regulären Ausdrücken eine kostenpflichtige Funktion von Censys Search ist.
Beispiel 1: Abfangen von Qakbot-Servern mit regulären Ausdrücken
Ein großartiges Beispiel für einzigartige Werte mit der gleichen Struktur ist Qakbot.
Qakbot verwendet ein automatisiertes System, um eindeutige TLS-Zertifikatwerte serverübergreifend einzusetzen und zu aktualisieren. Aber diese Werte haben eine ähnliche Struktur, die mit regulären Ausdrücken abgefragt werden kann.
Zwei solcher Bescheinigungen sind in den nachstehenden Bildschirmabbildungen zu sehen.
Bei der Betrachtung der beiden Zertifikatwerte können wir feststellen, dass sie sich in ihren Werten stark unterscheiden. Sie folgen jedoch einem ähnlichen Muster, das mit regulären Ausdrücken abgefangen werden kann.
Wir können dies überprüfen, indem wir die Werte herauskopieren und in Cyberchef einfügen. So können wir einen Prototyp für einen regulären Ausdruck erstellen und bestätigen, dass wir mit beiden Werten übereinstimmen können.
Die Wiederholung dieses Prozesses für beide Emittent und Themenfelder des TLS-Zertifikats können wir eine Abfrage entwickeln, die insgesamt 64 Server erfasst.
Um zu überprüfen, ob die Ergebnisse wie vorgesehen übereinstimmen, können wir einen Censys Bericht über die zurückgegebenen Ergebnisse erstellen. So können wir alle zurückgegebenen Zertifikatwerte in einer leicht lesbaren Liste auflisten.
Nachfolgend finden Sie einen kurzen Ausschnitt aus den Ergebnissen, der bestätigt, dass die Abfrage wie vorgesehen funktioniert.
Beispiel 2: Abfangen von BianLian-Servern mit regulären Ausdrücken
Die BianLian-Malware ist ein weiteres Beispiel für eindeutige TLS-Zertifikatwerte mit identischer Struktur und Formatierung.
Nachfolgend sind zwei Zertifikate zu sehen. Sowohl der Betreff als auch der Aussteller enthalten nur die Felder "C", "O" und "OU". (Im Gegensatz dazu würde ein "typisches" Zertifikat auch die Felder "ST" und "L" enthalten)
Jeder Wert enthält genau 16 Zeichen ohne Zwischenraum oder Sonderzeichen.
Wenn wir die beiden Ausstellerwerte zu Cyberchef bringen, können wir einen Prototyp für einen regulären Ausdruck erstellen, der die Werte aus beiden Zertifikaten erfasst.
Wir können nun nach services.tls.certificate.parsed.issuer_dn mit unserem regulären Ausdruck suchen. Dies ergibt insgesamt 24 Server.
Wir können fortfahren und einen weiteren Suchbericht über services.tls.certificate.parsed.issuer_dn erstellen, um zu bestätigen, dass die Ergebnisse wie vorgesehen übereinstimmen.
Beispiel 3: Viper-Server mit TLS-Zertifikaten und regulären Ausdrücken
Ein weiteres Beispiel ist die IP 139.155.90[.]81, die auf ThreatFox als Viper-Malware markiert wurde.
Wir können die TLS-Zertifikatsinformationen unter Censys einsehen. Anzeige von Subject- und Issuer-Feldern, die genau 8 Zeichen lang sind und nur Kleinbuchstaben und Zahlen enthalten.
Wenn wir einen der Werte in Cyberchef einbringen, können wir wieder einen Prototyp für einen regulären Ausdruck erstellen, der auf die identifizierte Struktur passt.
Wir können dann nach diesem regulären Ausdruck im Feld services.tls.certificates.leaf_data.issuer_dn suchen . Dies ergibt insgesamt 1593 Ergebnisse.
Die Erstellung eines weiteren Suchberichts bestätigt, dass viele dieser Ergebnisse die gleiche TLS-Struktur wie der ursprüngliche Server enthalten.
Zusammenfassung - Infrastruktur mit regulären Ausdrücken aufspüren
Es wird Fälle geben, in denen hart kodierte Werte nicht ausreichen, um die Infrastruktur zu finden.
Viele dieser Situationen lassen sich lösen, indem Sie die Struktur scheinbar eindeutiger Werte erkennen und reguläre Ausdrücke in Ihre Abfragen einbauen.
Wenn Sie mit regulären Ausdrücken nicht vertraut sind, finden Sie bei regexone eine großartige kostenlose Ressource, die Ihnen den Einstieg erleichtert.
Wie kann ich einsteigen?
Alle Abfragen (mit Ausnahme der regulären Ausdrücke) können mit einem Censys Search Community-Konto durchgeführt werden. Sie können sich noch heute anmelden und mit Bedrohungsabwehr beginnen, Informationen sammeln und Listen von IOCs erstellen.
Um erste IOCs zu erhalten, empfehlen wir, öffentliche IOC-Repositories wie ThreatFox und URLHaus zu nutzen und die Suche von dort aus zu starten. Wir können auch empfehlen, vorgefertigte Abfragen zu nutzen, wie sie von drb_ra und Michael Koczwara bereitgestellt wurden.
Schlussfolgerung
Wir haben uns nun verschiedene Indikatoren angesehen, die zur Identifizierung bösartiger Infrastrukturen verwendet werden können. Sie können und sollten alle diese Indikatoren zu Ihrem Vorteil nutzen, wenn Sie eine IP-Adresse untersuchen oder eine Bedrohungssuche durchführen.
Bedrohungsakteure sind von unterschiedlicher Qualität und Raffinesse, und einige sind schwieriger zu verfolgen als andere. Aber in vielen Fällen können Sie die Akteure nur mit den hier vorgestellten Techniken aufspüren.