UEFI-Rootkits werden allgemein hin als sehr gefährliche Tools für die Vorbereitung von Cyberattacken gesehen. Sie sind schwer aufzuspüren und in der Lage selbst Sicherheitsmaßnahmen wie die Re-Installation eines Betriebssystems oder ein Festplattenaustausch zu überstehen.
UEFI-Rootkits wurden von Forschenden bereits in Machbarkeitsstudien vorgestellt. Andere Rootkits sind dafür bekannt, staatlichen Behörden zu dienen. Allerdings ist bisher noch kein UEFI-Rootkit in freier Wildbahn gesehen worden. Nun entdeckten wir eine Malware-Kampagne der Sednit APT-Gruppe, mit dessen Hilfe UEFI-Rootkits erfolgreich auf die PCs von Opfer aufgespielt werden.
Microsoft BlueHat Conference
Die Entdeckung des ersten UEFI-Rootkits in freier Wildbahn ist aus zwei Gründen erwähnenswert.
Erstens zeigt es, dass UEFI-Rootkits nicht mehr bloß ein interessantes Thema für Konferenzen ist, sondern tatsächlich eine echte Bedrohung darstellt.
Zum Zweiten dient es als Alarmierung all derjenigen, die im Fadenkreuz von Sednit stehen. Die APT-Gruppe, welche auch die Pseudonyme APT28, STRONTIUM, Sofacy oder Fancy Bear trägt, ist vielleicht noch viel gefährlicher als bereits angenommen.
Unsere Analysen über die neue Sednit Malware-Kampagne mit UEFI-Rootkit wurden am 27.9. 2018 auf der Microsoft BlueHat Conference dargelegt. Eine detaillierte Ausführung haben wir in unserem Whitepaper „LoJax: First UEFI rootkit found in the wild, courtesy of the Sednit group” niedergeschrieben.
Rückblick – Sednit-Cybergang
Die Sednit-Cybergang ist seit mindestens 2004 aktiv und sorgt immer wieder für Schlagzeilen. Mehrere hochkarätige Angriffe werden ihnen zugeschrieben. Die US Justizbehörde macht die Gruppe für den Democratic National Committee (DNC) Hack verantwortlich, welcher vor den US Wahlen 2016 stattfand.
Man vermutet die Gruppe auch hinter dem Hack auf das globale Televisions-Netzwerk TV5Monde, dem E-Mail-Leak der WADA (World Anti-Doping Agency), und vielen mehr. Die Cybergang wartet mit diversen Malware-Tools auf. Einige Beispiele haben wir bereits in einem Sednit-Whitepaper 2016 aufgezeigt.
ESET Research: UEFI-Rootkit von Sednit
Unsere Untersuchungen ergaben, dass es den Cyberkriminellen erfolgreich gelungen ist, ein schädliches UEFI-Modul in den SPI Flah Memory eines Computersystems zu programmieren. Es ermöglicht das Ablegen und Ausführen von Malware während des Boot-Prozesses. Diese Methode der Persistenz ist besonders invasiv, da nicht nur eine Neuinstallation des Betriebssystems überlebt werden kann, sondern auch der komplette Austausch der Festplatte.
Die Säuberung der UEFI eines Systems würde ein erneutes Flashen bedeuten, was allgemein hin nicht gebräuchlich ist und dessen Durchführung einem typischen User nicht bekannt sein dürfte.
Unsere Untersuchungen zeigten auch, dass die Sednit-Operatoren unterschiedliche Komponenten der LoJax-Malware verwendeten, um ausgewählte Regierungsorganisationen in den Balkan-Staaten sowie in Zentral und Ost-Europa zu attackieren.
LoJack wird zu LoJax
Im Mai 2018 beschrieb ein Arbor Networks Blog-Beitrag mehrere kompromittierte Samples der Absolute Software LoJack Small Agent rpcnetp.exe. Die schadhaften Samples kommunizierten mit anstelle von legitimen Absolute Software Servern mit einem kompromittierten C&C-Server, weil die festgeschriebenen Konfigurationseinstellungen verändert worden waren.
Einige in den LoJax-Samples gefundenen Domains kannten wir bereits. Diese wurden schon Ende 2017 als C&C-Server Domains für die berüchtigte Sednit First-Stage Backdoor SedUploader verwendet.
Aufgrund der boshaften Verwendung des LoJack Small Agents tauften wir die Malware LoJax.
LoJack ist eigentlich eine Anti-Diebstahl-Software – frühere Versionen findet man unter dem Namen Computrace. Wie der einstige Name bereits andeutet, kommunizierte ein Computer mit einem C&C-Server und bei einem Diebstahl oder Verlust benachrichtigt die Software den Besitzer. Computrace erregte Aufmerksamkeit in der Computer Security Branche, da die Methode der Persistenz sehr ungewöhnlich war.
Da die Software Hardware-Diebstahl entgegenwirken soll, muss sie auch einer Neuinstallation des Betriebssystems und einem Festplattenwechsel standhalten. Deshalb wird die Software als UEFI/BIOS-Modul in das System integriert. Diese Lösung ist in der Firmware vieler Laptops bereits werksseitig vorinstalliert und wartet auf die Aktivierung durch den User.
Während der Untersuchung der LoJax-Malware fanden wir einige interessante Artefakte, welche uns darauf schließen ließen, dass Sednit die Persistenz-Methode von Computrace versuchte, nachzuahmen.
Verknüpfen von SPI Flash Memory mit der LoJax-Malware
Auf Systemen, die von der LoJax-Malware-Kampagne betroffen waren, fanden wir verschiedene Tools, mit Hilfe derer man Zugang zu den UEFI/BIOS-Einstellungen erlangt und sich Veränderungen vornehmen lassen.
Alle verwendeten den Kernel-Treiber RwDrv.sys, um in die UEFI/BIOS-Einstellungen zu gelangen. Dieser Kernel-Treiber ist mit RWeverything gebündelt. Das frei erhältliche Werkzeug ermöglicht das Auslesen von nahezu allen Low-Level Settings des Computers, wie PCI Express, Memory, PCI Option ROMs, etc. Da dieser Kernel-Treiber zu legaler Software gehört, ist er mit einer gültigen digitalen Signatur versehen.
Neben LoJax Userland Agents fanden wir drei unterschiedliche Tool-Typen. Das erste Werkzeug fasst Low-Level Systemeinstellungen in einer Textdatei zusammen. Da der Schutz einer Plattform vor nicht legitimen Firmware-Updates sehr plattformabhängig ist, ist es wichtig, Informationen über die System-Plattform zu sammeln.
Der Zweck des zweiten Tools bestand darin, ein Abbild der System-Firmware in eine Datei zu speichern, indem der Inhalt des SPI-Flash-Speichers ausgelesen wurde, in dem sich das UEFI/BIOS befindet.
Das dritte Tool war dafür zuständig, dem Firmware-Image das schädliche UEFI-Modul hinzuzufügen und es zurück in den SPI Flash-Memory zu schreiben (= Installieren des UEFI-Rootkits im System). Das Patch-Tool verwendet verschiedene Techniken, um falsch konfigurierte Plattformen auszunutzen oder den Schreibschutz des SPI-Flash-Speichers zu umgehen.
In der folgenden Abbildung ist dargestellt, dass die LoJax-Malware die Schreibrechte – insofern sie eingeräumt sind – ausnutzt. Wenn keine Schreibrechte vorliegen, setzt LoJax ein Exploit gegen eine bekannte Schwachstelle ein.
Das zur neuen Firmware hinzugefügte UEFI-Rootkit besitzt nur eine einzige Aufgabe. Es soll die Userland-Malware in die Windows-SystempaFunktionrtition einschleusen und sicherstellen, dass sie beim Starten ausgeführt wird.
Wie schütze ich mich vor dem LoJax-Rootkit?
Sednits UEFI-Rootkit ist nicht richtig signiert, sodass beispielsweise ein erster Sicherheitsmechanismus wie Secure Boot die Rootkit-Attacke abwehren kann. Wenn Secure Boot aktiviert ist, müssen Firmware-Komponenten, die geladen werden sollen, richtig signiert sein. Wir empfehlen die Aktivierung dieses Sicherheitsfeatures im BIOS-Setup. Damit besteht ein ganz grundlegender Schutz gegen Angriffe gegen die UEFI-Firmware.
Die Aktualisierung der System-Firmware ist keine triviale Angelegenheit für Cyberkriminelle. Es gibt verschiedene Schutzmechanismen, die von der UEFI-Plattform bereitgestellt werden, um unautorisierte Schreibvorgänge im SPI Flash Memory zu verhindern. Das oben beschriebene Tool kann die Firmware des Systems nur überschreiben, wenn die SPI-Flash-Speicherschutzfunktionen anfällig oder falsch konfiguriert sind.
Daher sollten Computeruser sicherstellen, dass sie immer die neuesten UEFI/BIOS-Updates für ihre Motherboard installiert haben. Die Sicherheitslücke betrifft zwar eher ältere Chipsätze. Allerdings sollten kritische Systeme auf moderne Chipsets mit Platform Controller Hub (vorgestellt mit Intel Series 5 Chipsets in 2008) überprüft werden.
Die Korrektur einer UEFI-Firmware-basierten Kompromittierung ist kompliziert. Es gibt keinen einfachen Weg, die Gefahr automatisch vom Computersystem zu entfernen.
Im oben beschriebenen Fall kann das Rootkit gelöscht werden, in dem der SPI Flash Memory mit einer zum Motherboard passenden, sauberen Firmware überschrieben wird. Dieses anspruchsvolle Eingreifen muss manuell vorgenommen werden. Mit dieser Prozedur sind nur die wenigsten Computeruser vertraut. Eine Alternative zum Flashen der Firmware wäre der komplette Austausch des Motherboards des kompromittierten Systems.
Die Verbindung zur Sednit APT-Gruppe
Wie oben bereits erwähnt wurden einige der LoJax Small Agent C&C-Server bereits von SedUploader verwendet (die First-Stage Backdoor der Sednit Operatoren). Wir konnten für den Fall der obigen Kompromittierung auch andere Spuren von Sednit finden. Von LoJax angegriffene Systeme, zeigten in der Regel auch Anzeichen der folgenden Sednit-Malware Beispiele:
- SedUploader, eine First-Stage Backdoor
- XAgent, Sednits Flagship-Backdoor
- Xtunnel, ein Netzwerk-Proxy Tool, das jede Art von Netzwerkverkehr zwischen einem C&C-Server im Internet und einem Endpoint-Computer in einem lokalen Netzwerk weiterleiten kann.
Diese Beispiele erlauben uns, die LoJax-Malware der Sednit-Gruppe zuzuschreiben.
Unser Fazit zur LoJax-Malware
Über den Verlauf der vergangenen Jahre hinweg haben wir viele Beiträge über die Aktivitäten der Sednit-Cybergang veröffentlicht. Beispiele dafür sind das Ausnutzen von Zero-Day Exploits und die Entwicklung von maßgeschneiderter Malware wie Zebrocy.
Die schädliche UEFI-Rootkit-Komponente spielt in aller Hinsicht noch mal in einer ganz anderen Liga.
Die LoJax Malware-Kampagne zeigt einmal mehr, dass besonders hochkarätige Ziele mit erlesener, zuweilen auch seltener Malware kompromittiert werden. Unsere Forschung hat uns einmal mehr bewiesen, dass es sich lohnt, tiefgründige Forschungen anzustellen.
Eine vollständige Liste der Indicators of Compromise (IOCs) und Samples befinden sich auf GitHub.
Die detaillierte Analyse der LoJax-Malware von Sednit kann in unserem Whitepaper nachgelesen werden.