Die Entdeckung eines exotischen Trojaners auf USB-Sticks löst unter Sicherheitsexperten große Verwirrung aus. Denn er unterscheidet sich ganz und gar von typischer Datenklau-Malware. Jedes Exemplar dieses Trojaners ist USB-Stick-spezifisch und hinterlässt keine Spuren auf dem betroffenen System. Zudem verwendet die Schadsoftware einen sehr ausgefeilten Mechanismus zum Schutz vor Vervielfältigung und der Erstellung von Kopien. Das macht es noch schwerer, sie zu entdecken.
Dieser Artikel gibt Aufschluss über technische Details des einzigartigen Trojaners.
In der Regel versucht Malware, durch Autorun-Dateien oder spezielle Verknüpfungen vom Nutzer gestartet zu werden. Der USB-Datendieb setzt auf eine andere Methode und liegt damit voll im Trend. Denn immer häufiger speichern User portable Versionen beliebter Anwendungen wie Firefox, NotePad++ oder TrueCrypt auf ihren USB-Sticks. Die Malware macht sich dies zu Nutze und schleust sich in die Befehlskette dieser Anwendungen ein – als Plug-In oder in Form einer Dynamic Link Library (DLL). Wird dann eine der Anwendungen ausgeführt, startet auch die Malware im Hintergrund.
Vor allem aber hebt sich die Schadsoftware durch ihren Selbstschutzmechanismus von anderen ab.
Der Schutzmechanismus
Die Malware besteht aus sechs Dateien. Vier davon sind ausführbare Dateien, die anderen beiden enthalten Konfigurationssdaten. Aus Schutz vor Nachahmung und Nachbildung, nutzt die Malware zwei Techniken. Zum einen sind einzelne Dateien AES-128-verschlüsselt und zum anderen werden die Dateinamen aus kryptografischen Elementen gebildet.
Der AES-Verschlüsselungsschlüssel wird anhand der einzigartigen Geräte-ID sowie bestimmter Festplatteneigenschaften des infizierten USB-Sticks berechnet. Deshalb kann die Malware nur von diesem einen bestimmten USB-Gerät aus erfolgreich ausgeführt werden.
Der Name der nächsten Datei in der tückischen Ausführungskette basiert auf dem tatsächlichen Dateiinhalt und dessen Erstellungszeitpunkt. Es sind die ersten fünf Bytes eines SHA512-Hashs, berechnet aus den genannten Attributen (Dateiinhalt verkettet mit 8 Bytes der Erstellungszeit). Aus diesem Grund sind die Dateinamen jeder einzelnen Instanz der Malware unterschiedlich. Wird die Malware an einen anderen Ort kopiert, ändert sich der Erstellungszeitpunkt. So können schädliche Aktionen, die mit dem ursprünglichen Ort in Verbindung stehen, nicht reproduziert werden. Die untenstehende Abbildung hilft, die beschriebene Technik des Trojaners noch besser zu verstehen.
Die Analyse der Malware gestaltete sich schwierig, da uns kein infiziertes USB-Gerät zur Verfügung stand. Darüber hinaus hatten wir keinen Dropper, um unter kontrollierten Bedingungen ein entsprechend befallenes USB-Gerät zur weiteren Analyse nachzustellen.
Aus diesem Grund beschränkte sich die Untersuchung auf die eingereichten Dateien. Zuerst musste die einzigartige Geräte-ID mithilfe einer Brute-Force-Attacke bestimmt und mit gängigen USB-Festplatteneigenschaften kombiniert werden. Nach erfolgreicher Entschlüsselung der Malware-Dateien galt es, die richtige Reihenfolge der ausführbaren und Konfigurations-Dateien zu ermitteln , denn mit dem Vorgang des Kopierens zur Bereitstellung der Samples änderte sich bekanntermaßen der Erstellungszeitpunkt der Schadsoftware.
Der Ausführungsprozess der Malware ist relativ einfach. Der Reihe nach lädt jeder Loader den nachfolgenden Dienst in den Arbeitsspeicher und führt ihn aus. Die Identifizierung erfolgt durch den berechneten Hash nach der oben beschriebenen Technik. Dieser Prozess muss allerdings immer mit dem ersten Loader beginnen, sonst beendet sich die Malware selbst.
Erste Phase: First Stage Loader
Der Loader der ersten Instanz ist lediglich der Ausgangspunkt der Malware und soll den User dazu bringen, die Schadsoftware zu starten. Das geschieht auf verschiedenen Wegen, aber am interessantesten ist die Methode über die portablen Anwendungen. Wir haben sowohl ein kompromittiertes Plug-In in der portablen Version von Notepad++ gefunden als auch die schädliche Link-Library “RichEd20.dll” in der portablen TrueCrypt Version. Zudem untersucht dieser Loader, ob er vom USB-Gerät ausgeführt wird und beschreibbar ist. Das ist wichtig, weil die Payload die gestohlenen Daten später hier ablegt.
Zweite Phase: Second Stage Loader
Der Second Stage Loader ergibt sich aus dem Hash des ersten Loaders. Anschließend wird die Konfigurationsdatei mithilfe des eigenen Hashs gefunden. Zur Verifizierung enthält diese den verschlüsselten Namen des übergeordneten Prozesses. Hierbei handelt es sich um einen Anti-Debugging-Trick, der den Malwareprozess beendet, falls er Second Stage Loader unter einem anderen übergeordneten Prozess laufen sollte – beispielsweise einem Debugger. Letztendlich wird der Hash aus der Konfigurationsdatei zur Berechnung für den Namen des dritten Loaders verwendet.
Dritte Phase: Third Stage Loader
Der Third Stage Loader überprüft, ob auf dem System eine Antiviren-Software läuft. Findet er einen laufenden Prozess "avpui.exe" (Kaspersky Security Software) oder "AVKTray.exe" (G Data Security Software), bricht die Ausführung ab. Die dazu gehörige Konfigurationsdatei wird wie beim Vorläufer identifiziert. Außerdem wird eine sogenannte „Named Pipe“ erzeugt, in der Konfigurationsdaten an die Payload übergeben werden. Der Name dieser Leitung setzt sich aus den ersten 30 Bytes einer SHA512 Prüfsumme zusammen, die aus dem Computernamen abgeleitet wird.
Payload
Letztendlich implementiert die Payload die Datenklau-Funktion. Der ausführbare Code ist in den Prozess “%windir%\system32\svchost.exe -k netsvcs” injiziert. Die Konfigurationsdateien bestimmen, welche Daten gesammelt, wie sie verschlüsselt und wo sie gespeichert werden sollen. Das Ausgabeziel muss dabei immer auf dem gleichen Wechseldatenträger liegen. In unserem Fall stahl die Malware Bilddateien und Dokumente, den gesamten Windows Registry-Baum (HKCU), Dateilisten von allen anderen Laufwerken und gesammelte Informationen einer importierten Open-Source-Anwendung mit dem Namen "WinAudit". Sie verschlüsselt die gestohlenen Daten mit der elliptische-Kurven-Kryptographie.
Schlussfolgerung
Nicht nur der Selbstschutz der mehrstufigen Malware macht den USB-Datendieb zu einem mächtigen Werkzeug, sondern auch die (relativ simple) Daten-stehlende Payload. Sobald der USB-Stick aus dem Computersystem gezogen wurde, gibt es keine Hinweise mehr für einen Datendiebstahl. Zudem wäre es nicht sehr schwierig, die Daten-stehlende Payload gegen einen anderen Schädling auszutauschen.
Wie ESET Statistiken zeigen, ist die Malware nicht sehr weit verbreitet. Andererseits hat sie das Potenzial, für zielgerichtete Attacken verwendet zu werden – besonders gefährdet sind Computersysteme, die aus Sicherheitsgründen nicht mit dem Internet verbunden sind.
Unser Erkennungsname:
Payload: Win32/PSW.Stealer.NAI trojan
Loader: Win32/TrojanDropper.Agent.RFT trojan
SHA1-Hashes der verschlüsselten Binärprogramme:
2C188C395AB32EAA00E6B7AA031632248FF38B2E
B03ABE820C0517CCEF98BC1785B7FD4CDF958278
66D169E1E503725A720D903E1DFAF456DB172767
4B2C60D77915C5695EC9D3C4364E6CD6946BD33C
76471B0F34ABB3C2530A16F39E10E4478CB6816D