Tavis Ormandy (), ein Sicherheitsforscher bei Google, entwickelt ein Projekt , das darauf abzielt, für Windows gesammelte DLL-Bibliotheken für die Verwendung in Linux-Anwendungen zu portieren. Das Projekt stellt eine Wrapper-Bibliothek zur Verfügung, mit der eine DLL-Datei im PE/COFF-Format geladen und bestimmte Funktionen daraus aufgerufen werden können. Der PE/COFF-Lader basiert auf dem Code von . Der Code des Projekts steht unter der GPLv2-Lizenz.
LoadLibrary übernimmt die Funktionen für das Laden der Bibliothek in den Speicher und für den Import vorhandener Symbole und bietet der Linux-Anwendung eine API im Stil von dlopen. Der eingebundene Code kann mit gdb, ASAN und Valgrind debuggt werden. Es ist möglich, den ausführbaren Code zur Laufzeit durch das Einfügen von Hooks und das Patchen (Runtime Patching) zu modifizieren. Die Unterstützung für das Verarbeiten und Aufrollen (Unwinding) von Ausnahmen in C++ ist ebenfalls vorgesehen.
Ziel des Projekts ist es, ein skalierbares und effektives verteiltes Fuzzing-Testing von DLL-Bibliotheken in einer Linux-basierten Umgebung zu organisieren. Unter Windows führt das Fuzzing- und Coverage-Testing oft nicht zu den gewünschten Ergebnissen und erfordert häufig den Betrieb einer separaten virtualisierten Windows-Instanz, insbesondere bei der Analyse komplexer Produkte wie Antiviren-Software, die auf Kern- und Benutzerebene agiert. Mit Hilfe von LoadLibrary suchen Google-Forscher nach Schwachstellen in Video-Codecs, Antiviren-Scannern, Daten-Dekompressionsbibliotheken, Bilddekodierern usw.
So ist es beispielsweise gelungen, die Windows Defender Antiviren-Engine für den Einsatz unter Linux zu portieren. Die Untersuchung von mpengine.dll, die das Herzstück von Windows Defender bildet, erlaubte es, eine Vielzahl komplexer Handler für verschiedene Formate sowie Dateisystememulatoren und Sprachinterpretatoren zu analysieren, die potenziell Angriffsvektoren bieten. .
LoadLibrary wurde auch zur Identifizierung verwendet Im Antivirus-Paket Avast wurde beim Studium von DLLs dieser Antiviruslösung festgestellt, dass der zentrale privilegierte Scan-Prozess einen vollwertigen JavaScript-Interpreter umfasst, der zur Emulation der Ausführung von externem JavaScript-Code verwendet wird. Dieser Prozess ist nicht in einer Sandbox-Umgebung isoliert, setzt keine Privilegien zurück und analysiert unüberprüfte externe Daten aus dem Dateisystem und erfasstem Netzwerkverkehr. Da jede Schwachstelle in diesem komplizierten und ungeschützten Prozess potenziell zu einer Remote-Komprimierung des gesamten Systems führen kann, wurde auf Basis von LoadLibrary eine spezielle Shell entwickelt. zur Analyse von Schwachstellen im Antivirus-Scanner Avast in einer Linux-basierten Umgebung.
Quelle: opennet.ru
