Neuer Trojaner Seaduke im Netz
Forschungsteam Unit 42 von Palo Alto Networks liefert detaillierte Analyse zu Seaduke
München – 23. Juli 2015 – Die Malware-Familie „Duke“ nutzt einen neuen Trojaner, wie in Blogs der Sicherheitsbranche kürzlich berichtet wurde. Dabei wurde auch eine Funktion namens „forkmeiamfamous“ erwähnt. Der Forschungsabteilung Unit 42 von Palo Alto Networks gelang es nun, ein Sample zu identifizieren, das seitdem von einer Reihe von Anti-Virus-Unternehmen als „Trojan.Win32.Seadask“ bezeichnet wird. Die Analyse von Unit 42 hat weitere technische Details hervorgebracht, die bislang nicht bekannt waren. So nutzt die Malware zwei Ebenen der Verschleierung.
Die erste Verschleierungsebene: Sobald der UPX-Packer vom Malware-Sample entfernt wird, zeigt sich, dass das Sample unter Verwendung von PyInstaller zusammengestellt worden ist. Diese Software ermöglicht es, ein Programm mit der Skriptsprache Python zu schreiben und dieses in eine ausführbare Datei für die Plattformen Microsoft Windows, Linux, Mac OS X, Solaris oder AIX umzuwandeln. Eine Untergruppe von Zeichenketten, die in der UPX-entpackten Binärdatei gefunden wurde, bestätigte den Verdacht von Unit 42. Da das Sample ursprünglich in Python geschrieben wurde, war Unit 42 in der Lage, den zugrunde liegenden Code zu extrahieren und zurück in den ursprünglichen Quellcode zu konvertieren. Auf diese Weise wurde schnell ersichtlich, dass der zugrunde liegende Python-Code verschleiert wurde.
Die zweite Verschleierungsebene: Bei der Analyse des verschleierten Codes identifizierte Unit 42 die Zeile „exec(ZxkBDKLakV)“, die vermutlich zur Ausführung von Python-Code dient. Diese wurde generiert durch das Anhängen einer Reihe von Zeichenfolgen an die Variable „ZxkBDKLakV“. Der verbleibende Python-Code scheint noch verschleiert zu sein, wobei trotzdem die Gesamtfunktionalität identifiziert werden konnte.
Alle Variablen- und Klassennamen wurden mit langen einzigartigen Strings verschleiert. Eine bereinigte Version des Codes ist auf GitHub zu finden. Auffallend war eine große Menge an base64-kodierten Daten, die zusätzlich mit ZLIB dekomprimiert wurden. Nach der Entschlüsselung kam ein JSON-Objekt zum Vorschein, das Konfigurationsdaten und damit eine Reihe von Indizien und Indikatoren für diese Malware enthielt. Nun konnte Unit 42 nachstellen, wie die Malware von Anfang an funktioniert: Wenn die Malware anfänglich ausgeführt wird, wird zunächst bestimmt, unter welchem Betriebssystem sie ausgeführt wird. Sollte sie auf einem Nicht-Windows-System ausgeführt werden, kommt die berüchtigte „forkmeiamfamous“-Methode zum Einsatz. Diese Methode ist für die Konfiguration einer Reihe von Unix-spezifischen Einstellungen verantwortlich.
Die weitere Analyse ergab, dass die Malware einer der folgenden Techniken nutzt, um Persistenz zu erreichen:
1. Persistenz via Powershell
2. Persistenz über den Run-Registrierungsschlüssel
3. Persistenz über eine im Autostart-Verzeichnis gespeicherte LNK-Datei
Die Malware kopiert sich in einen Dateinamen, der sich auf die JSON-Konfiguration bezieht. Nach dem sich die Malware installiert hat, startet sie mit Netzwerkanfragen. Bei diesem Sample erfolgte die gesamte Netzwerkkommunikation über HTTP. Allerdings scheint sie auch HTTPS zu unterstützen. Wenn die Malware erstmals eine ausgehende Verbindung nutzt, wird ein bestimmter Cookie-Wert verwendet, der verschlüsselte Daten enthält. Wenn die entschlüsselten Daten keine verwertbaren JSON-Daten liefern, verwirft Seaduke diese und begibt sich in einen Schlafzyklus.
Insgesamt erscheint Seaduke recht anspruchsvoll. Die Malware ist in Python geschrieben, nutzt aber eine Reihe von interessanten Techniken zur Verschlüsselung von Daten im Netzwerk und zur Persistenz auf dem infizierten Computer. Kunden von Palo Alto Networks, die WildFire nutzen, sind vor dieser Bedrohung geschützt. Zusätzlich hat Palo Alto Networks die URL von Seaduke als bösartig kategorisiert.