Die Analyse stützt sich auf eine einzige Binärdatei, die ohne jeden Kontext zur Herkunft übergeben wurde. Reichel konnte das Sample keinem bekannten Akteur zuordnen, weder Opfer noch Branche oder Land bestimmen und auch nicht klären, ob die Backdoor jemals eingesetzt wurde.

Die eingebettete Konfiguration wird mit AES-256-CCM entschlüsselt und enthält eine einzige Anweisung: sämtliche Netzwerkschnittstellen unbegrenzt auf das Auslösepaket zu überwachen. Der Mitschnitt erfasst alles, was über die beobachteten Schnittstellen läuft, auch Verkehr, der an andere Rechner adressiert ist. Ein Gateway, ein VPN-Server oder ein Host, der zwei Netzsegmente verbindet, kann so einen Auslöser sehen, der für eine ganz andere Maschine bestimmt war.

Befehle treffen nicht als lesbarer Text ein, sondern als Bytecode. Wer den Schlüssel gewinnt, erhält Opcodes in einem Format, das ausschließlich innerhalb dieser einen Datei existiert. Die 23 Instruktionen decken Zeitsteuerung, mehrere Wege zum Datentransport, gestaffelte Dateiübergabe mit Prüfung gegen einen SHA-256-Hash vor der Ausführung sowie das direkte Ausführen von Code im Arbeitsspeicher ab. Als Transportwege dienen sechs Kanäle: TCP, UDP, ICMP, SMB-Named-Pipes mit Lateral Movement per Zugangsdaten, rohe Mitschnitte im Promiscuous-Modus sowie VMwares Virtual Machine Communication Interface (VMCI). VMCI-Verkehr läuft über die Virtualisierungsschicht statt über einen Netzwerkadapter, ein Mitschnitt zwischen zwei Maschinen erfasst ihn also nicht. UNC3886 nutzte VMCI-Sockets laut von Mandiant dokumentierten Einbrüchen zur Persistenz zwischen kompromittierten ESXi-Hosts und deren Gastsystemen.

Anzeige

Keine der Instruktionen schreibt auf die Festplatte — alles, was die Backdoor auf einem Rechner vorzufinden erwartet, muss eine andere Komponente dort ablegen. Zwei Instruktionen achten auf den Auslöser: Der im untersuchten Sample gespeicherte Opcode aktiviert nur den Rohpaket-Lauscher, während ein zweiter Opcode einen ebenfalls implementierten, in diesem Build aber inaktiven DNS-Auslöser einschaltet.

SLEEPWALKER prüft nur den Namen des Wirtsprozesses, nicht dessen Signatur oder Pfad. Um die Datei in das betreffende Verzeichnis zu schreiben, braucht ein Angreifer lokale Administratorrechte, die er bereits besitzen muss; die Backdoor nutzt den Sicherheitskontext ihres Wirtsprozesses, statt sich die Rechte selbst zu verschaffen. Sie ist damit ein Implantat nach der Kompromittierung, kein Einstiegspunkt — wie ein Betreiber die Maschine zuerst erreichte, bleibt offen. Side-Loading ist zugleich der einzige Persistenzmechanismus: Die DLL wird bei jedem Start des ESET-Management-Agent-Dienstes erneut geladen.

Das Side-Loading nutzt die Windows-DLL-Suchreihenfolge und keine Lücke in ESET-Software, es gibt also nichts zu patchen; auf einen bestätigten Fund folgen Incident Response und Neuaufsetzen. ESET-Produkte wurden schon früher für Side-Loading missbraucht, etwa von ToddyCat, das laut Kaspersky einen Fehler in der Suchreihenfolge des Kommandozeilen-Scanners ausnutzte, um eine schädliche DLL zu laden. The Hacker News hat ESET um eine Stellungnahme zu möglicher Telemetrie gebeten; ein Advisory oder eine öffentliche Äußerung von ESET zu der Schadsoftware lag mit Stand 26. August nicht vor.

Um unauthentifizierte Aufrufer an ihren Named-Pipe-Kanal zu lassen, setzt SLEEPWALKER den Registry-Wert EveryoneIncludesAnonymous und trägt ihren Pipe-Namen in NullSessionPipes ein. Die Aufräumroutine merkt sich nur, ob der eigene Schreibvorgang erfolgreich war, nicht ob bereits ein Eintrag vorhanden war — eine Entfernung kann daher einen legitimen, älteren Eintrag löschen. Die beiden Registry-Werte sind nur gegen eine bekannte Referenzkonfiguration aussagekräftig.

Reichel veröffentlichte Host-Indikatoren sowie eine YARA-Regel und einen nur lesenden PowerShell-Scanner zur Prüfung ganzer Umgebungen. Die Erkennungsrate für die Datei sei zum Zeitpunkt der Veröffentlichung gering gewesen, sagte er, ohne eine Grundlage dafür zu nennen. Die YARA-Regel greife teils auf einen statischen AES-Schlüssel und kompilierten Protokollcode zurück — ein Neubau mit anderen Compiler-Einstellungen könnte sie unbrauchbar machen. Ein öffentlich verfügbares Analyse-Toolkit oder den beschriebenen Leitfaden fand The Hacker News mit Stand 26. August weder auf Reichels Website noch in seinem GitHub-Profil; Betroffene sollen ihn direkt kontaktieren.

Vergleichbare Implantate mit Magic-Paket-Auslöser sind bereits unter Linux aufgetreten, etwa der passive Backdoor BPFDoor der Gruppe Red Menshen in Netzen von Telekommunikationsanbietern, wie Rapid7 dokumentierte.