zurück zum Artikel

YARA Rulez! Malware-Samples suchen und finden

Hintergrund
YARA Rulez! Hybrid Analysis führt regelbasierte Suchfunktion ein

(Bild: pixabay.com/Screenshot (Collage))

Online-Sandbox-Services sind echte Fundgruben für Sicherheitsforscher. Hybrid Analysis erleichtert ihnen die Malware-Jagd jetzt mit YARA-Regeln.

Wer dem Urteil seines Virenwächters misstraut, kann mittlerweile zwischen einer ganzen Reihe von Online-Diensten wählen, um Dateien auf Schadcode zu prüfen. Zum Klassiker VirusTotal, der als Multiscanner in erster Linie auf den Erkennungsraten diverser AV-Engines basiert, haben sich in den letzten Jahren mehrere Services gesellt, die auf dynamische Verhaltensanalysen in der Sandbox setzen. Nach dem Datei-Upload generieren sie Reports, die neben statischen Dateiinformationen unter anderem auch detaillierte Informationen zu gestarteten Prozessen, Registry-Zugriffen und Netzwerk-Traffic zurückliefern. Diese Reports sind dann über eine feste URL sowie über die Suchfunktion des Services dauerhaft öffentlich abrufbar – oft gespickt mit Community-Kommentaren, Tags zur Einordnung der Bedrohung und Verweisen auf verwandte Bedrohungen.

Diese einfache Beispielregel von der YARA-Projektseite demonstriert die Verknüpfung mehrerer Strings (sowohl Text als auch Hex-Sequenzen) mit Hilfe einer Condition. Die Angabe von Metadaten ist optional.
Diese einfache Beispielregel von der YARA-Projektseite demonstriert die Verknüpfung dreier Strings (sowohl Text als auch Hex-Sequenzen) mittels einer Condition. Metadaten sind optional.

Durch die rege Nutzung und die dadurch stetig steigende Zahl von Uploads und Reports haben sich diese Online-Dienste nach und nach zu wertvollen Fundgruben für Informationen zu Schädlingen entwickelt. Die lässt sich bei der Online-Sandbox Hybrid Analysis [1] aus Hamburg jetzt komfortabel durchsuchen. Dabei kommt die von CrowdStrike entwickelte Schädlings-Suche MalQuery [2] zum Einsatz, die auf YARA beruht. Das ist deutlich flexibler und mächtiger als etwa eine Suche nach Hashes oder kontaktierten IPs und Domains.

YARA-Regeln sind Signaturen in einer recht einfachen Syntax. Sie enthalten (meist mehrere) Strings oder Byte-Folgen, die mit dem Inhalt der zu durchsuchenden Dateien abgeglichen werden. Der Abgleich erfolgt unter Berücksichtigung von Bedingungen ("conditions"), die ebenfalls Bestandteil der Regeln sind. Solche Bedingungen können logische Operatoren (z.B. and, or, not) enthalten, die die Strings miteinander verknüpfen. Sie können aber auch weitere Dateeigenschaften wie etwa die Größe, den Typ oder (bei ausführbaren Dateien) den Einsprungspunkt beinhalten. Einen guten Überblick über die Syntax bietet das Online-Manual des YARA-Projekts [3].

YARA-basierte Suchanfragen bieten den Vorteil, dass man die Suche sehr präzise eingrenzen kann. So enthalten etwa die YARA-Regeln für den Erpressungs-Trojaner SamSam [4] insgesamt 20 charakteristische Strings wie

$x1 = "Could not list processes locking resource. [..]" 

oder

$s11 = "samsam.Properties.Resources.resources". 

Darüber hinaus enthält der Regelsatz typische Befehlssequenzen als Byte-Folgen wie

$op0 = { 96 00 e0 00 29 00 0b 00 34 23 }

Die eigentliche Erkennung erledigt dann folgende Bedingung:

condition:
( uint16(0) == 0x5a4d and filesize < 700KB and
[...]
( 1 of ($x*) and 4 of them ) and all of ($op*)
) [...]

Das beschränkt die Suche zunächst auf Exe-Dateien (0x5a4d steht für die Buchstabenfolge "MZ" im Dateiheader), die kleiner als 700 KByte sind. Die weiteren Bedingungen basieren auf den verwendeten Variablennamen, die in diesem Beispiel mit $x, $s und $op beginnen. Konkret muss die Datei zwar alle Op-Codes aber nur eine bestimmte Auswahl der Strings enthalten (4 insgesamt, davon 1 $x-String).

Das sieht kompliziert aus; doch man muss nicht bei Null anfangen, um YARA-Regeln zu nutzen. Obige SamSam-Regel [5] stammt beispielsweise aus dem Github-Repository des communitybasierten Projekts "YARA Rules" [6]. Es wird laufend um aktuelle Bedrohungen erweitert und bietet somit eine gute Anlaufstelle für jeden, der zwar YARA-Regeln zum Suchen verwenden, diese aber nicht selbst schreiben will.

Die &quot;Advanced Search&quot; ermöglicht komfortable Anpassungen direkt im Online-Editor.
Die "Advanced Search" ermöglicht komfortable Anpassungen direkt im Online-Editor.

Dateien mit YARA-Regeln wie etwa die zu SamSam [7] kann man komfortabel per Drag-and-Drop ins YARA-Suchfenster auf der Hybrid-Analysis-Startseite ziehen; alternativ kopiert man die Regeln direkt in die "Advanced Search". Die erlaubt das nachträgliche Anpassen in einem Editor-Fenster sowie zusätzliche Angaben zu Dateityp und -größe und zum Zeitraum des Sample-Uploads. Vor dem Klick auf "Hunt Samples" ist zu beachten, dass pro Suchdurchlauf nur eine Regel übergeben werden darf. Dementsprechend haben wir die SamSam-Regeln (rule SAmSAmRansom2016 und rule SamSam_Ransomware_Latest) nacheinander getestet.

Die Sucherergebnisse erscheinen in einer übersichtlichen Liste. Identische Dateigrößen nebst weitererer identischer Eigenschaften zeigen, dass die &quot;SamSam&quot;-Jagd erfolgreich war.
Identische Dateigrößen, Tags und weitere Eigenschaften zeigen, dass die "SamSam"-Jagd erfolgreich war.

Tatsächlich liefert die Plattform nach ein paar Sekunden Wartezeit Listen mit unterschiedlichen Ergebnissen für beide Suchanfragen zurück. Ein kurzer Blick auf die Dateieigenschaften bestätigt, dass es sich bei mindestens fünf von insgesamt sechs Suchtreffern wohl tatsächlich um SamSam-Samples handelt. Ein nettes Feature innerhalb der Ergebnislisten ist, dass man sämtliche Datei-Hashes, DNS-Requests und kontaktierte Hosts im CSV-Format downloaden kann.

Die Idee, YARA-Regeln als Suchkriterium zu nutzen, ist nicht neu: VirusTotal bietet sie im Rahmen seines "Malware Hunting"-Programms [8] schon länger an. Anders als Hybrid Analysis verlangt der von Google betriebene Online-Dienst hierfür aber Geld – ebenso wie für die Möglichkeit, überhaupt Malware-Samples herunterzuladen. Hybrid Analysis beschränkt sich derzeit auf ein wenig Werbung für Crowdstrike: Ein kleiner Hinweis oberhalb der SamSam-Ergebnisse wies uns daraufhin, dass deren kostenpflichtiger Suchservice "MalQuery" noch weitere Samples gefunden hätte.

Eine kleiner Werbe-Hinweis für CrowdStrikes kommerzielles Angebot begleitet das Suchergebnis.
Eine kleiner Werbe-Hinweis für CrowdStrikes kommerzielles Angebot begleitet das Suchergebnis.

Die Qualität der Suchergebnisse hängt in erster Linie von den verwendeten Suchkriterien, sprich: der verwendeten YARA-Regel ab. Das trifft in ähnlicher Weise auch auf die "String Search" zu, die sich als zweite neue Suchfunktion rechts neben der YARA-Suche auf der Hybrid-Analysis-Startseite befindet. Da die Eingabe einzelner, eher unspezifischer Strings leicht zu False Positives führt, ist es ratsam, auch hier die zusätzlichen "Advanced Search"-Optionen zur Eingrenzung zu nutzen.

Forscher und IT-Sicherheitsverantwortliche in Unternehmen haben damit ein mächtiges Werkzeug, um etwa nach spezifischen Infektionsmerkmalen (Indicators of Compromise, IoC) zu recherchieren oder nach neuen Schadcode-Varianten zu suchen. Clever eingesetzt, ermöglichen die neuen Suchfunktionen sogar das zielsichere Aufspüren verwandter Malware. (ovw [9])


URL dieses Artikels:
http://www.heise.de/-4144543

Links in diesem Artikel:
[1] https://www.hybrid-analysis.com/
[2] https://hybrid-analysis.blogspot.com/2018/08/crowdstrike-donates-falcon-malquery-for.html
[3] https://YARA.readthedocs.io/en/v3.8.1/index.html
[4] https://www.heise.de/meldung/Krimineller-verdient-mit-Erpressungstrojaner-knapp-5-Millionen-Euro-4126862.html
[5] https://github.com/Yara-Rules/rules/blob/master/malware/RANSOM_SamSam.yar
[6] https://github.com/Yara-Rules/rules
[7] https://github.com/Yara-Rules/rules/blob/master/malware/RANSOM_SamSam.yar
[8] https://www.virustotal.com/#/hunting-overview
[9] mailto:ovw@heise.de