Der Spionage-Ring Sednit, auch bekannt als Sofacy-Gruppe, APT28 oder „Fancy Bear”, treibt schon seit einiger Zeit sein Unwesen und hat bereits eine Vielzahl an Institutionen angegriffen. Vor kurzem haben wir einen Angriff entdeckt, im Zuge dessen die Gruppe physikalisch isolierte Computer-Netzwerke angreift, um mithilfe von Wechseldatenträgern sensible Dateien abzugreifen.

Einleitung

Im vergangenen Monat hat ESET über einen Watering-Hole-Angriff der Sednit-Gruppe berichtet, bei dem ein individualisiertes Exploit Kit zum Einsatz kam. Über die letzten Wochen gab es unter den Sicherheitsexperten einen regen Austausch über die Gruppe, einschließlich der von Trend Micro thematisierten Operation Pawn Storm sowie des ART28-Berichts von FireEye.

In diesem Artikel teilen wir unsere Kenntnisse über ein Tool, das die Gruppe nutzt, um sensible Informationen von isolierten Netzwerken abzugreifen. ESET erkennt dieses als Win32/USBStealer.

Wir gehen davon aus, dass der Sednit-Ring dieses Tool schon (mindestens) seit 2005 nutzt und auch heute noch bei Angriffen gegen ihre Opfer einsetzt - häufig staatliche Institutionen in Osteuropa. In den vergangenen Jahren wurden hierbei mehrere verschiedene Versionen des Tools genutzt, die sich in ihrem Grad an Komplexität unterscheiden.

Win32/USBStealer Strategie

Es ist eine gängige Sicherheitspraxis, sensible Computer-Netzwerke über eine sogenannte Air Gap komplett von der Außenwelt abzuschotten. Wie der Name impliziert, besitzen diese Netzwerke keine direkten Verbindungen zum Internet.

Über einen Wechseldatenträger kann allerdings eine Verbindung zur Außenwelt erzeugt werden, vor allem, wenn er abwechselnd mit einer internetfähigen Maschine und einer isolierten Maschine verbunden wird. Dies wird beispielsweise getan, um Dateien zu übertragen.

Diese Tatsache wird von Win32/USBStealer genutzt, um isolierte Netzwerke anzugreifen. Die folgende Abbildung zeigt einen Überblick über die Strategie, im vereinfachten Fall von nur zwei betroffenen Rechnern. Zunächst wird der mit dem Internet verbundene Computer A mit dem Win32/USBStealer Dropper infiziert. Im Verlauf des Angriffsszenarios wird dann der isolierte Computer B mit Win32/USBStealer infiziert.

ataque_diagrama

In diesem Szenario wird ein Wechselträger abwechselnd in den mit dem Internet verbundenen Computer A und den isolierten Computer B eingeführt. Im Folgenden werden die einzelnen Schritte des Angriffs detaillierter erläutert. Hierbei konzentrieren wir uns auf die Win32/USBStealer-Version mit der höchsten Komplexität, den wir entdeckt haben.

Schritt 1: Wechseldatenträger wird erstmals mit Computer A verbunden

Computer A wird mit dem Win32/USBStealer Dropper infiziert, den ESET als Win32/USBStealer.D erkennt. Der Dateiname des Droppers lautet USBSRService.exe. Wie nachfolgend zu sehen, ahmt er ein legitimes russisches Programm namens USB Disk Security nach.

metadatos_dropper

Grundlegende Strategie des Droppers:

  • Er überwacht das Anschließen von Wechseldatenträgern in die Maschine. Dazu wird ein Fenster erzeugt, welches via Callback über derartige Ereignisse informiert wird.
  • Sobald ein Wechseldatenträger eingeführt wird, entschlüsselt der Dropper zwei seiner Komponenten und stellt diese im Speicher zur Ausführung bereit. Die erste legt unter dem Namen „USBGuard.exe“ das Programm Win32/USBStealer im Wechselträger ab. Die zweite Komponente ist eine AUTORUN.INF-Datei, deren Inhalt unten zu sehen ist

[autorun]

open=

shell\open=Explore

shell\open\command=”System Volume Information\USBGuard.exe” install

shell\open\Default=1

  • Diese Datei wird in das Root-Verzeichnis des Wechseldatenträgers abgelegt. Sie stellt sicher, dass sowohl bei einem Doppelklick auf das Laufwerk als auch bei einem Klick auf die oberste Option im Kontextmenü, das sich nach einem Rechtsklick öffnet (umbenannt von „Öffnen“ zu „Explore“), die Datei USBGuard.exe ausgeführt wird. Dies funktioniert nur auf Computern mit aktivierter Windows AutoRun-Funktion, die im August 2009 durch das Windows Update KB971029 deaktiviert wurde. Zwar scheint das eine lange Zeit her zu sein, aber wir glauben, dass Win32/USBStealer schon mindestens vier Jahre davor verbreitet wurde. Außerdem kommt es häufig vor, dass Geräte in einem isolierten Netzwerk nicht immer auf dem aktuellen Stand sind, weil es unter Umständen schwierig ist, ein Update durchzuführen. Zudem geht man häufig davon aus, dass Angreifer sowieso keinen Zugriff auf diese Geräte erlangen können.
  • Zuletzt wird eine leere Datei namens „desktop.in“ auf den Wechseldatenträger platziert. Sie wird anderen infizierten Maschinen als ein Zeichen dafür dienen, dass dieses Laufwerk zu einem gewissen Zeitpunkt mit einem internetfähigen Rechner verbunden war. Mit anderen Worten: Das Laufwerk ist ein potenzieller Pfad zur Außenwelt für isolierte Maschinen.

Der Dropper ist sehr darum bemüht, keine Aufmerksamkeit zu erregen. Sowohl die AUTORUN.INF- als auch die USBGuard.exe-Dateien haben die Zeitstempel des letzten Zugriffs und der letzten Änderung, die von einer gewöhnlichen Bibliothek der Windows-Installation übernommen wurden. Zudem werden die zwei entschlüsselten Komponenten im Speicher wieder verschlüsselt, sobald sie auf das Wechselmedium gespielt wurden. Zuletzt werden alle abgelegten Dateien mit den Dateiattributen „Versteckt“ und „System“ versehen, sodass sie von normalen Nutzern nicht entdeckt werden.

Schritt 2: Wechseldatenträger wird erstmals mit Computer B verbunden

Wenn das USB-Gerät in Computer B eingeführt wird, bei dem AutoRun aktiviert ist, installiert sich Win32/USBStealer selbst. Dann listet die Malware alle Laufwerke auf, die mit dem Rechner verbunden sind und führt, je nach Typ des Laufwerks, eine der folgenden Angriffsstrategien aus:

  • Wenn es sich um einen Wechseldatenträger handelt, der markiert wurde als zuvor mit einer internetfähigen Maschine verbunden (dank der in Schritt 1 abgelegten desktop.in-Datei), registriert sich der nun infizierte Computer B selbst auf dem Laufwerk, indem ein Ordner mit dem Computer-Namen angelegt wird. Diese Registrierung erlaubt es den Kriminellen, die erreichbaren Maschinen zu kartieren, wenn der Wechseldatenträger wieder mit Computer A verbunden wird.

Die Hardware-ID des Wechseldatenträgers wird zudem auf Computer B aufgezeichnet. Selbst wenn die Datei desktop.in durch den Nutzer vom Laufwerk entfernt wird, erkennt Computer B hierdurch, dass dieses Laufwerk als Pfad zur Außenwelt genutzt werden kann.

  • Wenn das Laufwerk kein Wechseldatenträger ist oder keine Markierung vorhanden ist, dass er mit mit einer internetfähigen Maschine verbunden war, führt Win32/USBStealer eine automatische Datenausleitung aus (im Gegensatz zur manuellen Datenausleitung, die wir später beschreiben werden).

Mit diesem Schritt sollen interessante Dateien von allen Laufwerken in einem lokalen Verzeichnis gespeichert werden. Das tatsächliche Ausschleusen findet dann statt, wenn das nächste Mal ein „markierter“ Wechseldatenträger in Computer B eingeführt wird. „Interessante Dateien“ sind hier definiert als:

  • Dateien mit den Endungen „.skr”, „.pkr” oder „.key”. Die ersten beiden korrespondieren mit den Standardendungen für die „Keyrings“ der Verschlüsselungssoftware PGP Desktop. In dieser Schlüsseldatei werden die privaten oder öffentlichen Schlüssel abgelegt. Die Endung „.key“ wird oftmals von Verschlüsselungssystemen für das Speichern von generierten Schlüsseln genutzt.
  • Dateien, deren Namen zu einer fest kodierten Liste gehören. Wir haben zwei verschiedene Listen entdeckt, die in der folgenden Tabelle beschrieben werden.

* Liste 1 Liste 2
Möglicher Zeitraum der Nutzung 2005 2011-2014
Dateinamen, nach denen gesucht wird Win32Negah.dll
Ssers.dat
Settings.dat
Negah2.exe
DtInt.dat
Audit.dat
key.in
key.out
z_box.exe
talgar.exe

Für die meisten dieser Dateinamen haben wir im Internet nur wenige Referenzen gefunden. Wahrscheinlich, weil sie zu einer privaten Software gehören. Interessanterweise ist Talghar (von „talgar.exe“) eine Stadt im Gebiet Almaty im Südosten Kasachstans.

Die Malware sucht überall auf der Maschine nach diesen Dateien, außer in Ordnern, die den folgenden Antiviren-Namen entsprechen: Symantec, Norton, McAfee, ESET Smart Security, AVG9, Kaspersky Lab und Doctor Web.

Schritt 3: Wechseldatenträger wird erneut mit Computer A verbunden

Die Kriminellen erfassen den Computer-Namen, der vom infizierten Computer B auf das Wechselmedium geschrieben wurde. Da der Dropper auf Computer A abgesehen von den zuvor beschriebenen Komponenten keine weiteren Funktionen besitzt, gehen wir davon aus, dass über den Dropper hinaus noch weitere schädliche Komponenten auf Computer A existieren, um dieses Ziel zu erreichen.

Nun platzieren die Kriminellen auf dem Wechseldatenträger eine verschlüsselte Datei namens „COMPUTER_NAME.in“, die Befehle für Computer B enthält.

Schritt 4: Wechseldatenträger wird erneut mit Computer B verbunden

Wenn der Wechseldatenträger wieder mit Computer B verbunden wird, legt Win32/USBStealer hier die Dateien ab, die, wie in Schritt 2 beschrieben, während der automatischen Datenausleitung gesammelt wurden. Bei erneuter Einführung des Wechseldatenträgers in Computer A sind die Kriminellen in der Lage, diese Dateien trotz der Air Gap abzugreifen.

Win32/USBStealer entschlüsselt die Befehlsdateien, die die Kriminellen für Computer B vorgesehen haben. Es gibt eine Reihe an Befehlen, die nacheinander ausgeführt werden. Jeder Befehl besteht hierbei aus einer Zahl mit einer Länge von zwei Byte, gefolgt von einem Parameter.

Befehlsnummer Parameter Zweck
0x0001 Windows path Kopiert Dateien, die in diesem Pfad liegen, auf das Wechselmedium
0x0002 Root = Path = Day Kopiert Dateien, die auf dem Pfad „Root \Path“ liegen, auf das Wechselmedium, aber nur, wenn sie vor weniger als den im Parameter übergebenen Tagen (Day) modifiziert wurden
0x0003 Root = Path = Day Das gleiche wie Befehl 0x0002, allerdings wird der Parameter auch in die Startup-Monitoring-Datei geschrieben (siehe Paragraph unten)
0x0004 Should be set to “!” Startet die automatische Datenausleitung (Schritt 2) auf allen verbundenen Laufwerken
0x0005 None Entfernt die Startup-Monitoring-Datei (siehe Paragraph unten)
0x0006 Windows path Führt eine Kopie der Datei namens „taskrel.exe“ aus, die im Pfad liegt, auf den der Parameter verweist
0x0007 None Entfernt Dateien namens „taskrel.exe“
0x0008 Root = Path = Day Schreibt Dateinamen, die auf dem Pfad „Root \Path“ liegen, auf das Wechselmedium, aber nur, wenn sie vor weniger als den im Parameter übergebenen Tagen (Day) modifiziert wurden, in eine Datei namens „inres.in“
0x0009 None Entfernt die Datei namens „inres.in“

Die Befehle 0x0003 und 0x0005 beziehen sich auf die Startup-Monitoring-Datei, welche lokal auf Computer B gespeichert ist. Diese Datei beinhaltet ein Suchmuster im bereits bekannten Format „Root = Path = Day“. Jedes Mal, wenn die Maschine startet, wird der Befehl 0x0002 lokal auf dieses Muster bzw. mit diesem Parameter ausgeführt. Dies erlaubt eine Langzeitüberwachung der interessanten Dateien.

Befehl 0x0008 dient der Entdeckung potenziell interessanter Dateien. Wir können nur spekulieren, dass die Kriminellen mit Befehl 0x0008 beginnen und dann die Befehle 0x0002 oder 0x0003 ausführen, um potenziell interessante Dateien zu sammeln.

Für alle Befehle, die Dateien auf den Wechseldatenträger kopieren, gibt es Sicherungsmechanismen. Wenn das Kopieren fehlschlägt, zum Beispiel weil der richtige Zugang zum Laufwerk nicht gewährt wird, wird die Datei stattdessen in einem lokalen Verzeichnis gespeichert. Sie werden auf das nächste „markierte" Wechselmedium kopiert, das mit der Maschine verbunden wird.

Zusammenfassung

Die Angriffe mit Win32/USBStealer werden mit viel Einsatz vonseiten der Sednit-Gruppe ausgeführt. Während unserer Untersuchungen sind wir auf ein paar überraschende Dinge gestoßen:

  • Nahezu zehn Jahre im Einsatz: Wie in folgender Abbildung zu sehen ist, ist das früheste Erstellungsdatum, das wir für die Win32/USBStealer-Payload gefunden haben, Mai 2005. Da die Compiler-Version, die für die Erstellung der Schadsoftware genutzt wurde, gut zu dem Erstellungsdatum passt, glauben wir, dass dies der Beginn der Angriffe ist. Dafür spricht zudem, dass es andere Samples mit realistischen Zeitstempeln gibt.

Fecha de compilación

  • Zielgenauer Angriff: Die Namen der von der automatischen Datenausleitung gesuchten Dateien lassen auf eine präzise Kenntnis der Opfer schließen.

Einige Fragen bleiben allerdings noch offen: Zum Beispiel ist zurzeit unklar, wie die Infizierung von Computer A erfolgt. Wir können nur spekulieren, dass die Kriminellen eine klassische Spear-Phishing-Technik angewendet haben. Der kürzlich erschienene FireEye-Bericht thematisiert eine Spear-Phishing-Kampagne  der Gruppe mit dem Thema „USB Disk Security is the best software to block threats that can damage your PC or compromise your personal information via USB storage".

In dem von uns beschriebenen Angriffsszenario muss Computer A bereits von Kriminellen kontrolliert werden. Der Win32/USBStealer Dropper hat nicht die Fähigkeit, über das Internet zu kommunizieren, deshalb gehen wir davon aus, dass es noch andere schädliche Komponenten gibt, die auf diesem Rechner existieren.

Indikatoren für ein kompromittiertes System (IOC)

Dropper

  • Registriert Dienst namens „USB Stick Security” mit der Beschreibung „Provide protection against threats via USB drive“
  • Registriert sich alternativ unter dem Registrierungsschlüssel „HKEY_CURRENT_USER \Software\Microsoft\Windows\CurrentVersion\Run”, unter dem Namen „USB Disk Security“
  • Öffnet Mutex namens “ZXCVMutexHello”
  • Ressourcen des Typs X:
    • ID=109 für die Nutzlast
    • ID=106 für die INF-Datei

Payload

  • Registriert Dienst namens „USBGuard“ mit der Beschreibung „Protects removable media from becoming infected with malware".
  • Registriert sich alternativ unter dem Registrierungsschlüssel „HKEY_CURRENT_USER \Software\Microsoft\Windows\CurrentVersion\Run”, unter dem Namen „USBGuard“
  • Öffnet Mutex namens „USB_Flash“.

Hashes

SHA1 Zweck Wird von ESET erkannt als
BB63211E4D47344514A8C79CC8C310352268E731 Dropper
(USBSRService.exe)
Win32/USBStealer.D
776C04A10BDEEC9C10F51632A589E2C52AABDF48 Payload
(USBGuard.exe)
Win32/USBStealer.A