LoadLibrary, vrstva pro načítání Windows DLL do aplikací Linux

Tavis Ormandy (Tavis Ormandy), bezpečnostní výzkumník z Google, rozvíjí projekt LoadLibrary, 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 ndiswrapper. Kód projektu distribuováno 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 možných útoků.

LoadLibrary byl také použit při odhalení vzdálené zranitelnosti 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. avscript pro analýzu zranitelností v antivirovém skeneru Avast v prostředí založeném na Linuxu.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster