Trotz seines Alters ist Emotet noch sehr lebendig. Erstmals trat der Schädling 2014 als Banking-Trojaner in Erscheinung. Er verbreitet sich im großen Stil weiter über Spam, Netzwerkfreigaben und das Rig Exploit Kit, warnt Andreas Müller, Enterprise Sales Manager bei Check Point Software Technologies, im nachfolgenden Gastkommentar.

„Emotet ist äußert wandlungsfähig“, warnt Andreas Müller, Enterprise Sales Manager bei Check Point. Bild: Check Point Software Technologies

„Emotet ist äußert wandlungsfähig“, warnt Andreas Müller, Enterprise Sales Manager bei Check Point. Bild: Check Point Software Technologies

Emotet ist äußert wandlungsfähig, hatte aber über die Jahre ein gleichbleibendes Feature: Er hängt sich nicht an den Web-Browser des Opfers, sondern greift direkt in die Netzwerk-API-Funktionen ein. Ein weiteres Markenzeichen ist sein modularer Aufbau. Dies erlaubt eine flexible Anpassung, beispielsweise wurde im letzten Jahr das Banking-Modul entfernt.

Damit das Modell funktioniert, muss es der Schadsoftware erlaubt sein, eigene Dateien auszuführen. Die Module sollten dann über den C&C-Server gesteuert werden. Emotet lässt sich daher am besten als Dropper kategorisieren.

Aus technischer Sicht ist das ein großer Entwicklungsaufwand. Deshalb macht sich nicht jedes Botnet die Mühe, ein Ökosystem aus Modulen aufzubauen, das sogar das Konzept einer „Version“ kennt. Emotet macht das, erstellt diesbezüglich auch ein Kommunikationsprotokoll. Dieses basiert auf Googles Protobuf (Protocol Buffer – erstellt sprachneutrale, plattformneutrale, erweiterbare Mechanismen zur Serialisierung strukturierter Daten) und nutzt dafür LZMA-Kompression und asymmetrische Verschlüsselung. Das ist untypische für Malware, da die wenigsten Autoren darauf erpicht sind, einen Versionsüberblick über vorhandene Problemlösungen zu erstellen.

Emotet enthält sogar buchstäblich einen Open-Source-Ordner. Neben dem auf Googles Protobuf aufbauenden Kommunikationsprotokollen umfasst Emotet Web-Server, die in Libevent geschrieben sind, sowie eine Verschlüsselung auf OpenSSL-Basis.

Hauptfunktionen des Emotet-Droppers
Die Hauptfunktion des Droppers ist die Aktualisierung der Malware auf die neueste Version, die Sicherung der operativen Funktion auf dem System des Opfers und das Herunterladen und Ausführen der Module, die als Haupt-Payload der Malware dienen. Emotet aktualisiert sich selbst mit hoher Frequenz und ständigem Wechsel der C&C-Server.

Das gleiche Prinzip gilt für die ausführbare Programmdatei des Droppers, die auf dem C&C-Server von Emotet gehostet wird. Häufiges Wechseln und Begleitmodule sorgen dafür, dass AV-Signaturen zumindest während der ersten Stunden nicht in der Lage sind, die Dateien per Mustervergleich als bösartig zu identifizieren. Nötig wären hierzu fortschrittlichere und sensiblere Methoden, etwa Verhaltensanalysen. Die übrigen Funktionen hingegen bleiben meist konstant und verändern sich nur gering.

Wie für diese Art Malware üblich, sammelt der Dropper Informationen wie Computer- und Nutzernamen, OS-Version und Prozesse, die auf der infizierten Maschine laufen und darauf gespeichert sind. Sobald dies Informationen gesammelt und die Malware aktualisiert wurde, wird eine Anfrage an den C&C-Server gesendet.

Adressen potenzieller, aktiver C&C-Server und des RSA Public Key des Emotet-Servers sind in der ausführbaren Datei der Malware hart kodiert. Sie sind in einem einfachen IP-Format hinterlegt, gefolgt von einer Port-Nummer – auch wieder untypisch für Malware-Autoren, da diese normalerweise Domain-Namen favorisieren. Die Kommunikation ist mit einem zufällig erzeugten AES-Schlüssels kodiert, der über einen öffentlichen Schlüssel des Servers nochmals verschlüsselt an die Nachricht angehängt wird.

Dieses Protokoll ist kryptografisch gesehen ungewöhnlich präzise. Selbst eine Person mit vollem Zugriff auf das Malware-Muster und einem Traffic-Protokoll ist nicht in der Lage, die ursprüngliche Kommunikation wiederherzustellen, es sei denn, der Prozess, der den AES-Schlüssel hervorgebracht hat, läuft noch.

Geht die Anfrage durch, reagiert der Server mit einer aktuellen Liste der Module. Infizierte Clients erhalten in der Regel während dieser Transaktion zwei bis fünf Module. Die Anfragemethode wechselt dabei zwischen einem GET und einem POST – vermutlich ein weiterer Versuch, die direkte Kommunikation mit dem Server zu vermeiden.

Über die Anfrage wird zusätzlich ein aktueller Malware-Datei-Hash gesendet, den der Server für die Entscheidung nutzt, ob die Emotet-Version, die die Anfrage gestellt hat, aktualisiert werden muss. Gehört der Hash zu einer alten Version, wir eine neue Emotet Version versandt, bevor die Module ausgeführt werden.

Emotet-Module
Die bisher bekannten Emotet-Module verfügen über den gleichen allgemeinen Aufbau: Es handelt sich immer um DLL-Dateien, die nicht gepackt, aber geringfügig verschleiert sind. Mit Hilfe dezidierter Funktionen wird ein Import Table erstellt, der anhand einer selbsterstellten Hash-Funktion mit dem Hash-Wert der Funktionen verglichen wird. Die Methode ähnelt der der vollständigen dynamischen Auflösung, die man üblicherweise bei Malware vorfindet – ist aber nicht identisch.

Bei der vollständigen dynamischen Auflösung läuft jeder Aufruf einer Funktion durch einen Filter, der mittels Hash nach dieser Funktion sucht. DLL- und Funktionsnamen und andere verfängliche Strings werden mithilfe einer rotierenden XOR-Verschlüsselung verschleiert. Nach Auflösung dieser Funktion geht das Modul typischerweise zu seiner Hauptfunktion über.

Die Module kann man in zwei Typen unterteilen: Wrapper- und Originalmodule. Wrapper-Module dienen zur Umhüllung einer oder mehrerer Softwarekomponenten und werden bei Emotet für vorgefertigte ausführbare Data-Mining-Dateien zur Verfügung gestellt. Original-Module werden im Gegensatz dazu vom Emotet-Autor von Grund auf implementiert.

Das Ziel ist hier nicht ganz klar, aber man kann davon ausgehen, dass die meisten Kriminellen die Opfer nicht monetarisieren wollen wie etwa Crypto-Währungs-Miner, Backdoors oder Ransomware, um nur drei Beispiel zu nennen. Der Fokus liegt vielmehr darauf, möglichst viele Nutzer mit Emotet zu infizieren. So nutzt eines der Module die veraltete Schnittstelle Simple MAPI beispielsweise, um die lokal gespeicherte Kontaktliste von MS-Outlook abzugreifen, die später wiederum dazu dient, Emotet zu versenden. Hierzu zählt auch das Worm-Modul, das über eine integrierte Passwort-Tabelle Brute-Force-Angriffe auf zugängliche SMB-Freigaben durchführt. So kann man noch mehr Stationen im LAN mit Emotet infizieren.

Die letzte Kuriosität dieses Trojaners ist ein Modul, das mit der Libevent-Bibliothek und der UPnP-Funktion verbunden ist. UPnP (Universal Plug and Play) dient zur Port-Weiterleitung sowie dazu, die Maschine des Opfers vom WAN aus zugänglich zu machen. Libevent kommt zum Einsatz, um einen einfachen Server einzurichten, der eingehende Pakete mit einem EHLO-Befehl zur Übertragung von E-Mails beantwortet. So wird kontrolliert, ob der Zugriff von außen auf die kompromittierte Maschine erfolgreich ist und der C&C-Server Kontakt aufnehmen kann.

Fazit
Durch langjährige Erfahrung und ein hochentwickeltes Ökosystem scheint Emotet dauerhaft zu bestehen. Die bevorzugte Nutzung von Open-Source-Bibliotheken ist alarmierend. Durch einfachen Zugang zu Bibliotheken Dritter werden Entwicklungsprozesse vorangetrieben. Cyberkriminielle arbeiten zunehmend professioneller und entsprechend verbessern sich ihre Werkzeuge. Wegen Malware wie Emotet ist proaktives Handeln gefordert: präventives Blockieren von Bedrohungen, bevor sie Geräte infizieren und Schaden anrichten können. Durch den Einsatz von Threat Intelligence zur Durchsetzung konsolidierter, einheitlicher Sicherheitsmaßnahmen können sich Unternehmen automatisch vor neuen und sich entwickelnden Angriffstypen in allen Umgebungen schützen. Proaktivität in Verbindung mit Innovation stellt die Weichen für den Rüstungswettlauf in der Cybersicherheit.