Tavis Ormandy (), bezpečnostní výzkumník z Google, rozvíjí projekt , zaměřený na portování knihoven DLL navržených pro Windows pro použití v aplikacích pro Linux. Projekt poskytuje překryvnou knihovnu, pomocí které je možné načíst DLL soubor ve formátu PE/COFF a vyvolat v něm definované funkce. Načítací modul PE/COFF je založen na kódu . Kód projektu pod licencí GPLv2.
LoadLibrary se ujímá funkcí načítání knihovny do paměti a importu dostupných symbolů, poskytující aplikaci pro Linux API ve stylu dlopen. Připojený kód lze ladit pomocí gdb, ASAN a Valgrind. Je možné provádět úpravy spustitelného kódu za běhu prostřednictvím připojování háků a aplikace patchů (runtime patching). Podpora pro zpracování a tvrdé ukončení (unwinding) výjimek pro C++.
Cílem projektu je organizování škálovatelného a efektivního distribuovaného fuzzing testování knihoven DLL v prostředí Linuxu. V systému Windows realizace fuzzing a coverage testování nedává požadovanou efektivitu a často vyžaduje spuštění samostatné virtualizované instance Windows, zejména při analýze komplikovaných produktů, jako je antivirový software, které zasahují na úrovni jádra a uživatelského prostoru. Pomocí LoadLibrary se vědci z Google zabývají vyhledáváním zranitelností ve video kodecích, antivirových skenerech, knihovnách pro dekompresi dat, dekodérech obrazů atd.
Například pomocí LoadLibrary se podařilo portovat antivirový motor Windows Defender pro spuštění v Linuxu. Analýza mpengine.dll, což je základ Windows Defender, umožnila prověřit velké množství komplikovaných zpracovatelů různých formátů, emulátorů FS a interpreterů jazyků, které potenciálně poskytují vektory pro .
LoadLibrary byl také použit při odhalení v antivirovém balíčku Avast. Při zkoumání DLL tohoto antiviru bylo zjištěno, že klíčový privilegovaný proces skenování zahrnuje plnohodnotný JavaScript interpret, který se používá k emulaci provádění externího JavaScript kódu. Tento proces není izolován v sandboxovém prostředí, nesnižuje privilegium a provádí analýzu neověřených externích dat z FS a zachyceného síťového provozu. Jakákoli zranitelnost v tomto složitém a nezabezpečeném procesu může potenciálně vést k vzdálenému kompromitování celého systému, na základě LoadLibrary byl vyvinut speciální wrapper. pro analýzu zranitelností v antivirovém skeneru Avast v prostředí založeném na Linuxu.
Zdroj: opennet.ru
