(Tavis Ormandy), ein Sicherheitsforscher von Google, entwickelt ein Projekt , das darauf abzielt, für Windows gesammelte DLL-Bibliotheken für die Verwendung in Anwendungen für Linux zu portieren. Das Projekt stellt eine Zwischenschichtbibliothek zur Verfügung, die es ermöglicht, eine DLL-Datei im PE/COFF-Format zu laden und bestimmte Funktionen darin aufzurufen. Der PE/COFF-Lader basiert auf dem Code . Der Code des Projekts unter der GPLv2-Lizenz.
LoadLibrary übernimmt die Funktionen zum Laden von Bibliotheken in den Speicher und zum Import vorhandener Symbole und bietet der Linux-Anwendung eine API im Stil von dlopen. Eingebundener Code kann mithilfe von gdb, ASAN und Valgrind debuggt werden. Es besteht die Möglichkeit, den ausführbaren Code zur Laufzeit durch das Einfügen von Hooks und das Anwenden von Patches (Runtime-Patching) zu ändern. Ausnahmen werden für C++ verarbeitet und aufgerollt (unwinding).
Ziel des Projekts ist es, ein skalierbares und effektives verteiltes Fuzzing-Testing von DLL-Bibliotheken in einer Linux-Umgebung zu organisieren. Unter Windows ermöglicht die Durchführung von Fuzzing- und Coverage-Tests nicht die gewünschte Effizienz und erfordert häufig den Betrieb einer separaten virtualisierten Windows-Instanz, insbesondere bei dem Versuch, komplexere Produkte zu analysieren, wie z. B. Antivirensoftware, die Arbeiten auf Kernel- und Benutzerspace-Niveau abdeckt. Mit LoadLibrary suchen Forscher von Google nach Sicherheitsanfälligkeiten in Videocodecs, Antivirus-Scannern, Datenextraktionsbibliotheken, Bilddecodern usw.
Zum Beispiel konnte mit LoadLibrary die Antiviren-Engine Windows Defender für die Ausführung unter Linux portiert werden. Die Untersuchung von mpengine.dll, die die Grundlage von Windows Defender bildet, ermöglichte es, eine große Anzahl komplexer Handler für verschiedene Formate, Dateisystememulatoren und Sprachinterpretern zu analysieren, die potenziell Vektoren für .
LoadLibrary wurde auch zur Identifizierung Im Antiviruspaket Avast. Bei der Analyse von DLLs dieses Antivirenprogramms wurde festgestellt, dass der zentrale privilegierte Scan-Prozess einen vollständigen JavaScript-Interpreter umfasst, der verwendet wird, um die Ausführung von externem JavaScript-Code zu emulieren. Dieser Prozess ist nicht in einer Sandbox-Umgebung isoliert, entzieht keine Privilegien und analysiert unbestätigte externe Daten aus dem Dateisystem und dem abgefangenen Netzwerkverkehr. Da jede Schwachstelle in diesem komplexen und ungeschützten Prozess potenziell zu einer Remote-Kompromittierung des gesamten Systems führen kann, wurde auf Basis von LoadLibrary eine spezielle оболочка разработана. zur Analyse von Schwachstellen im Antiviren-Scanner Avast in einer Umgebung auf Basis von Linux.
Quelle: opennet.ru
