Neue Gefahren für Windows-Systeme Wie Hacker DLL-Sideloading für ihre Zwecke kapern
Anbieter zum Thema
Dynamic Link Libraries (DLL) spielen in Microsoft-Windows-Umgebungen eine zentrale Rolle, um sowohl für das Betriebssystem als auch für Drittanbieter-Software notwendige Funktionalitäten bereitzustellen. So muss nicht jede Applikation ihre eigenen Bibliotheken mitbringen. Hacker können diesen Mechanismus für sich nutzen und Malware-Code dort unterbringen, wo eine Anwendung nach der gewünschten Funktion sucht.

Beim Aufruf einer via DLL bereitgestellten Programmfunktion weist die ausführbare Datei das Betriebssystem an, die benötigte Library in den Speicher zu laden. Sie bezeichnet nur den Namen der Bibliothek, nennt aber nicht den vollständigen Pfad. Das Betriebssystem legt die dynamische Bibliothek am gewünschten Ort im für den Call-Prozess bereitstehenden Adressraum ab. Für die Libraries sind nur einige bestimmte Speicherorte festgelegt. Das Betriebssystem wird diese in einer exakt definierten Reihenfolge abgehen, bis es die benötigte Datei findet (Abbildung 1).
Die dafür vorgesehene Reihenfolge ist im Windows-Betriebssystem hart codiert. Es gibt aber Möglichkeiten, neue Orte anzugeben, um die Anwendungen zu laden –DLL Redirection, Manifest Files oder Isolationstools wie MSIX app attach oder das ältere App-V. Bei neueren Betriebssystemen legt default der Safe-DLL-Modus die Abfragereihenfolge (Abbildung 2) fest.
Mechanismen des DLL-Sideloading
Die Call-Reihenfolge, um ausführbaren Code aus den DLL-Libraries abzurufen, lässt sich im Guten wie im Bösen nutzen. Entwickler beheben mögliche Kompatibilitätsprobleme von Libraries damit am einfachsten und effektivsten. Ein Entwickler eines Codes, der auf einer nicht mehr aktuellen Version einer Library aufbaut und diesen in einer Lokation teilt (wie zum Beispiel C:\Windows\System32) kann die sich daraus ergebenden Folgeprobleme einfach beheben: Er kopiert einfach die alte Library in denselben Ordner, in dem sich auch der ausführbare Code befindet. So kann die Anwendungen die benötigte ältere Version der Library nutzen, während alle anderen Applikationen die aktuelle Library von der geteilt verfügbaren Lokation bezieht.
Letztlich ist das bereits ein Hack. Bösartige Angreifer können dieses Prinzip für ihre Absichten nutzen und die DLL-Suchreihenfolge kapern. Dafür gibt es zwei Möglichkeiten, den passiven und den aktiven Exploit:
- Passiver Exploit: Die Hacker laden eine eigenständige, höchst vertrauenswürdige Binary (Binärdatei) auf das Zielsystem hoch und nutzen sie zum Sideload einer bösartigen Library.
- Aktiver Exploit: Hier nutzen die Angreifer die vorinstallierte Applikationen und Komponenten, deren Schwachstellen es ermöglichen, bösartige Bibliotheken von einem unsicheren Ort aus zu laden.
Passiver Exploit
Diese Angriffe sind am verbreitetsten. Ihre Effekte sind weniger schwerwiegend. In der Öffentlichkeit genießen solche Attacken aber eine hohe Aufmerksamkeit, weil die Hacker auf diese Weise Libraries sehr bekannter Hersteller angreifen.
Die Urheber der Angriffe bevorzugen in der Regel ältere Bibliotheken mit einer Signatur von Legacy-Betriebssystemen oder aus anderen vertrauenswürdigen Quellen. Die Kopie dieser Binary platzieren sie gemeinsam mit dem Schadcode in einen Ordner, für den die Angreifer einen Schreibzugriff haben. Nachdem die eigentliche Binary gestartet ist, lädt sie per Sideload die bösartige Library aus demselben Ordner an den Zielort. Diese Schwachstelle ist in der Vergabe der Orte für die Libraries durch Windows OS angelegt. Die Softwarehersteller haben hierauf keinen Einfluss (Abbildung 3).
Die nachgeladene Library erbt dieselben Zugriffsrechte wie die Binary, die der Angreifer ausführen muss. Eine solche Methode nutzen die Hacker aber nur bei bereits kompromittierten Systemen. Sie hat allein den Zweck, zu verhindern, dass die Abwehr den eigentlichen Angriff nicht entdeckt. Dafür unterbindet sie, dass Richtlinien zur Applikationskontrolle oder andere grundlegende Cyberabwehrmöglichkeiten zum Tragen kommen. Dies könnte der Fall sein, weil die gestartete Binary über eine digitale Signatur verfügt, die eine Abwehr erkennen kann. Meistens nutzen die Angreifer veraltete Binary-Versionen, von denen zahlreiche zur Auswahl bereitstehen. Hacker nutzen meistens verschiedene ausführbare Dateien, um ihre bösartige Library nachzuladen. Bei einem passiven Exploit müssen sie keine Software installieren, um den DLL-Sideload auszulösen. Üblicherweise verwenden sie nur eine selbständige Binary.
Aktive Exploits
Hier müssen die Angreifer eine vorinstallierte Anwendung oder Betriebssystemkomponente identifizieren, deren DLL-Suchreihenfolge sich kapern lässt. Im Calling-Prozess wird die bösartige Library dann automatisch geladen: als Library unter dem eigentlich korrektem Namen an einer Stelle, die Teil der Suchreihenfolge ist. Man kann sich diese Attacke auch als Man-in-the-Middle-Attacke vorstellen, wobei das Betriebssystem versucht, die verlangte Library zu lokalisieren.
Im schlimmsten Fall eskalieren die Angreifer die Privilegien kompromittierter Identitäten. Denn die bösartige Library verfügt über die identischen Zugriffsrechte wie der Calling-Prozess. Das können Administrator- oder Systemrechte sein. Wenn die Anwendung eine Library regelmäßig aufruft – etwa um einen täglich angesetzten Check nach Updates durchzuführen – haben die Hacker eine persistente Präsenz im angegriffenem Netz erreicht.
Zudem tarnt der Exploit die Hardware vor der Abwehr. Die böswillige Library kann als Proxy vor der ersetzten legitimen DLL fungieren. Die verwundbare Applikation verhält sich unauffällig und der bösartige Code bleibt im Verborgenem (Abbildung 4).
Ein aktuelles Beispiel für Kryptojacking durch DLL-Sideloading in Microsoft OneDrive
Diese Gefahr ist präsent. In den Monaten Mai und Juni 2022 haben Sicherheitsexperten von Bitdefender weltweit eine Angriffskampagne entdeckt, in der Cyberkriminelle bekannte DLL-Sideloading-Schwachstellen in Microsoft OneDrive ausnutzen, um Kryptomining-Malware auf den Systemen der Opfer zu installieren. Prinzipiell könnten sie über die Schwachstelle jede Malware herunterladen – auch Malware.
In der Attacke schreiben die Angreifer ohne besondere Rechte eine falsche secure32.dll in den Pfad %appdata%\Local\Microsoft\OneDrive\. Die OneDrive Prozesse OneDrive.exe oder OneDriveStandaloneUpdater.exe laden diese dann. Weil %appdata%\Local\Microsoft\OneDrive\OneDriveStandaloneUpdater.exe planmäßig jeden Tag laufen soll, sind die falschen DLL-files nun persistent im System des Opfers. Zusätzlich verankern die Angreifer die falsche DLL im System über %appdata%\Local\Microsoft\OneDrive\OneDrive.exe. Die Angreifer legen per Konfiguration fest, dass die OneDrive.exe bei jedem Reboot unter Verwenden der Windows Registry startet. Nach dem Laden der falschen secure32.dll über diese OneDrive-Prozesse lädt diese die Software zum Kryptomining nach und infiziert sie in legitime Windows-Prozesse. Auf dieselbe Art und Weise könnten die Angreifer genauso gut Ransomware oder Spyware auf den Systemen installieren.
Sideloading-Abwehr
Einfachere Sicherheitstechnologien oder Richtlinien, die Softwarerechte einschränken, lassen sich so umgehen. Die Hacker müssen nur die Lücken erkennen und einen bösartigen Code an einen der Orte für die Libraries bringen. Eine Endpoint Detection and Response erkennt diese Tarnung. Zudem verraten sich auch getarnte falsche Libraries während des Downloads, beim Speichern auf einen Datenträger oder beim Laden in den Arbeitsspeicher. Indizien für einen Alarm sind eine verdächtige IP, Domäne oder auch eine URL mit zweifelhafter Reputation. Algorithmen zur Analyse des Speicherverhaltens können ein solches Verhalten präventiv erkennen. Abwehrlösungen halten bei einem passiven Exploit zudem nach den Aktivitäten ausführbarer Dateien wie rundll32.exe oder regsvr32.exe Ausschau. Denn über sie können Hacker in bereits infizierten Systemen jede DLL nachladen.
Für eine vorbeugende Abwehr müssen sich IT-Administratoren zudem darum bemühen, die Angriffsfläche ihrer IT-Infrastruktur zu verringern. Ebenso wichtig ist es, Systeme immer auf aktuellem Stand zu halten und nicht nur Betriebssysteme zu aktualisieren, sondern auch die verschiedenen Anwendungen von Drittanbietern. Bei einem aktiven Exploit ist die wichtigste Aufgabe, zu analysieren, wie Angreifer den Schreibzugriff erlangten. Denn das ist die Grundlage eines jeden DLL-Angriffs. Eine Managed Detection and Response hilft, solche Angriffe für die Zukunft zu verhindern. Eine ebenso wichtige Rolle spielen bereits im Vorfeld die Entwickler. Microsoft bietet zahlreiche Best Practices für ein sicheres Laden von Binaries.
Über den Autor: Martin Zugec ist Technical Solutions Director bei Bitdefender.
(ID:48768307)