Wie man Malware analysiert und dateilose Angriffe lanciert
Check Point hat auf seiner „Lunch & Learn“-Roadshow gezeigt, wie Spezialisten Malware analysieren. Vor den Augen des Publikums zerlegte das israelische Cybersecurity-Unternehmen die Malware Ramnit. Und zeigte in einem weiteren Schritt, wie Fileless-Attacks funktionieren – Cyberattacken, die nur im Arbeitsspeicher stattfinden.
Wie geht man vor, wenn man ein Schadprogramm untersuchen möchte? Diese Frage hat Check Point am 12. September in Zürich beantwortet. An einem "Lunch & Learn"-Event im Placid Hotel in Zürich veranstaltete der israelische Sicherheitsanbieter eine Live-Malware-Analyse.
Das "Opfer" auf dem Seziertisch in Zürich? Ramnit. Eine sehr alte Malware, die schon 2010 zum ersten Mal genutzt wurde. Damals war Ramnit noch ein Spionage-Programm, das unbemerkt Screenshots machen und Browser-Cookies stehlen konnte.
2011 integrierte Ramnit den Source-Code von Zeus, "einem der schlimmsten E-banking-Trojaner, die es gibt", erklärte Yannick Gugler. Gugler ist Security Engineer bei Check Point und leitete die Besucher durch die Live-Analyse. Seit 2011 taucht Ramnit immer wieder in abgeänderten Versionen auf – zuletzt Anfang 2019.
Wie findet man Malware im System?
Im Wesentlichen gibt es zwei Wege, ein Schadprogramm auf einem Windows-System zu finden, sagte Gugler. Entweder man kennt alle Malware-Arten und weiss, wie man sie identifiziert. Oder man weiss haargenau, wie Windows und alle Komponenten des Betriebssystems funktionieren, was dazu gehört, und was nicht.
Beide Wege sind gleichermassen unwahrscheinlich. Darum empfiehlt Gugler einen Mittelweg, bei dem man sowohl auf bekannte "Indicators of compromise" (IOC), also auf Anzeichen einer Infektion, wie auch auf ungewöhnliches Verhalten innerhalb von Windows achtet.
So existieren die Prozesse "services.exe", "lsass.exe" und "lsm.exe" auf einem sauberen System nur einmal. Wer einen der Prozesse mehrfach vorfindet, sollte diese genauer überprüfen. Ferner ist "services.exe" immer der Vaterprozess von "svhost.exe". "Läuft ein ‚svhost.exe’-Prozess mit einem anderen Vaterprozess, dann ist etwas kaputt auf dem System", sagte Gugler.
Ein weiter nützlicher Tipp: Es gibt gemäss dem Security Engineer zwei vertrauenswürdige Verzeichnisse in einem Windows-System. Gemeint sind \Windows\System32 und \Windows\SysWOW64. Um auf diese Verzeichnisse zuzugreifen, benötigt man Admin- oder noch höhere Rechte, wie etwa Domain-Rechte. "Jeder Prozess, der nicht aus diesen beiden Directories heraus gestartet wird, ist schon mal verdächtigt", sagte Gugler. "Nicht bösartig, aber verdächtig."
Dynamische oder statische Analyse?
Auch bei der Analyse eines Schadprogramms steht man wieder vor zwei Optionen: Macht man eine dynamische oder eine statische Analyse? "Eine dynamische Analyse ist nichts anderes als eine Sandbox", sagte Gugler. Der Schädling wird in einer abgeschlossenen Umgebung ausgeführt, während automatisierte Tools alles protokollieren, was geschieht.
Schadprogramme werden jedoch stets gewiefter. Heutige Varianten verwenden einen Grossteil ihrer Kapazitäten dafür, herauszufinden, ob sie in einer Sandbox laufen oder auf einem richtigen System. "Läuft die Malware in einer Sandbox, macht sie entweder gar nichts, oder einfach irgendetwas, das alles andere als bösartig wirkt", sagte Gugler. Im Fachjargon nennt man dies "Evasion".
Ein weiteres Problem ist die Dauer der Analyse: Wie lange emuliert man die Sandbox-Umgebung, bis man ein Programm als unproblematisch einstuft? Ramnit etwa beginne erst nach rund einer Minute damit, verdächtige Aktivitäten zu zeigen. Läuft die Sandbox nur 30 Sekunden, wird der Rechner infiziert – und der Nutzer merkt davon nichts. Offensichtlich auffällig wird Ramnit erst nach zwei bis drei Minuten "und das ist eine fast 10 Jahre alte Malware!", sagte Gugler.
Die "Königsdisziplin in der Informatik" ist allerdings die statische Analyse, sagte der Security Engineer. Dabei handelt es sich eigentlich um Reverse-Engineering: Man versucht den Maschinencode einer Malware, den nur der Rechner versteht, wieder zurück in lesbaren Programm-Code zu verwandeln. So kann man herausfinden, wozu das Schadprogramm potenziell fähig wäre. Bei einer Ransomware kann man zudem – mit etwas Glück – auch noch den Encryption-Key finden.
Statische Analysen sind jedoch sehr zeitintensiv. Deswegen bevorzugen Malware-Analysten wie Yannick Gugler in der Regel ein Zusammenspiel aus dynamischer und statischer Analyse.
Wie man noch tiefer in die Malware vordringt
In der Live-Analyse in Zürich wollte Gugler mehr über die Kommunikation zwischen Ramnit und seinem "Command & Control"-Server herausfinden. Ramnit nutzt einen DGA – Domain Generation Algorithm. Der Schädling und der ihn kontrollierende Server nutzen denselben Algorithmus, um URLs zu generieren. Über diese läuft anschliessend die Kommunikation. Blockiert ein Sysadmin eine verdächtige URL, wechseln Malware und Server schlicht auf die nächste generierte Adresse. Um die Verbindung endgültig zu kappen, muss man den Algorithmus kennen.
Der erste Schritt einer statischen Analyse ist es, die Malware zu entpacken. Denn Schadprogramme sind immer komprimiert. Einerseits, weil kleinere Dateien schneller heruntergeladen werden – essenziell für eine gelungene Infektion. Andererseits, weil eine Malware, die neu verpackt wurde, nicht mehr erkannt wird von signaturbasierten IT-Security-Lösungen. So kann man eine aufwändig programmierte Malware immer wieder neu verwenden.
In der Analyse entpackte Gugler Ramnit zunächst mit einem Debugging Tool – dem Interactive Disassembler. Alternativ könne man die Malware auch einfach laufen lassen. Denn wenn sie sich ausführt, muss sie sich dafür auch entpacken. Indem man auf die Grösse und auf die Lese-und-Schreib-Rechte achtet, kann man die benötigten Files anschliessend im Memory finden. Einen Memory-Dump des entsprechenden Bereichs später hatte Gugler den Maschinencode, den er anschliessend im Disassembler wieder öffnen konnte.
Kurz darauf hatte er den Algorithmus gefunden und mit ihm auch sämtliche möglichen URLs für die Kommunikation zwischen Ramnit und seinem Server. Wie aus dem Code ersichtlich wurde, generiert diese Variante von Ramni lediglich 50 Adressen. Mit dem Algorithmus liessen sich alle auf einmal blockieren.
Wie Malware einen Prozess infiziert – ohne Spuren zu hinterlassen
"Und jetzt führen wir noch einen Fileless-Attack aus, bevor der Lunch-Teil der "Lunch & Learn"-Roadshow beginnt", sagte Gugler. Hierfür holte er zunächst etwas aus und erklärte, wie DLL-Dateien funktionieren und warum Cyberkriminelle diese so mögen.
DLL steht für "Dynamic Link Library". Dabei handelt es sich um ein Programmteil, das von mehreren Prozessen genutzt wird, wie Gugler erklärte. Jede DLL existiert genau einmal physisch auf der Disk und jeder Prozess hat seine Kopie. DLLs importieren und exportieren Funktionen. Hierfür nutzen sie eine Technik namens "DLL-Injection": Ein Prozess forciert dabei einen anderen Prozess, eine DLL zu laden. "Das hört sich bösartig an, muss es aber nicht sein", sagte der Security Engineer. DLL-Injection ist etwa auch Bestandteil von Debugging-Prozessen.
"Malware kommt immer häufiger im DLL-Format zum Opfer", sagte Gugler. "Dateilose Angriffe sind 10 Mal effektiver als traditionelle Attacken", sagte Gugler. 2018 seien bereits 35 Prozent aller Attacken auf diesem Weg ausgeführt worden. "Und diese Zahl nimmt zu." Dies liegt unter anderem daran, dass Sicherheitslösungen oft nur .exe-Dateien blockieren. DLLs hingegen werden ignoriert. DLL-Dateien ermöglichen aber auch neue Formen von Cyberattacken, sogenannte Fileless-Attacks.
Der grosse Unterschied zu traditionellen Schadprogrammen besteht darin, dass hierfür keine bösartigen Dateien heruntergeladen werde müssen, um einen Rechner zu infizieren. Der Angriff findet komplett im Arbeitsspeicher statt. Dies macht Analysen um einiges schwieriger, da keine Spuren auf der Festplatte zurückbleiben.
Wie schützt man sich gegen dateilose Angriffe?
Während seiner Erläuterungen, bastelte Gugler an Ramnit herum. Als allen klar war, was dateilose Angriffe genau sind, lief Ramnit bereits im Notepad drin, statt wie zuvor in einem eigenen "svhost.exe"-Prozess.
"Hinter dateilosen Attacken stecken keine Script-Kiddies", sagte Gugler. "Denn diese Angreifer wissen genau, was sie tun." Die gute Nachricht ist aber, dass diese Attacken relativ leicht vom System zu fegen sind: Man muss nur den Rechner neustarten. Dies leert den Arbeitsspeicher. Zumindest in der Regel. Denn gewisse Formen – etwa Registry Attacks – können auch einen Neustart überleben.
Ein wirksamer Schutz sei es, Admin-Rechte nur denen zu geben, die sie wirklich brauchen. "Auf das maximale Minimum begrenzen" laute hier die Devise. Zudem sei es wichtig, regelmässig Updates einzuspielen, Sysadmin-Tools, die man nicht braucht, zu deaktivieren, sowie Browser- beziehungsweise Web-Traffic zu isolieren.
Alternativ biete Check Point jedoch auch eine Lösung dafür an.
Zum Nachschlagen:
Das IT-Security-Glossar verschafft einen schnellen Überblick über die gängigsten Begriffe rund um Cybercrime und IT-Security - ohne Anspruch auf Vollständigkeit.
Das Who’s who der Malware gibt einen schnellen Überblick darüber, was hinter den Namen der einzelnen Schadprogrammen steckt. Mehr auf www.it-markt.ch/MalwareABC.