Tavis Ormandy (), expert na bezpečnosť z Google, rozvíja projekt , zameraný na portovanie knižníc DLL zostavených pre Windows na ich použitie v aplikáciách pre Linux. Projekt poskytuje knižnicu-vrstvu, pomocou ktorej je možné načítať DLL súbor vo formáte PE/COFF a zavolať definované v ňom funkcie. Načítač PE/COFF je založený na kóde . Kód projektu pod licenciou GPLv2.
LoadLibrary sa stará o funkcie načítania knižnice do pamäte a importovania existujúcich symbolov, poskytujúc aplikácii Linux API v štýle dlopen. Pripojený kód môže byť laditeľný pomocou gdb, ASAN a Valgrind. Predpokladá sa možnosť úpravy vykonávacieho kódu počas behu prostredníctvom pripojenia hookov a nanášania patchov (runtime patching). Podporuje sa spracovanie a rozmotávanie (unwinding) výnimiek pre C++.
Cieľom projektu je organizácia škálovateľného a efektívneho distribuovaného fuzzing-testovania knižníc DLL v prostredí založenom na Linuxe. Na Windows uskutočnenie fuzzing- a coverage-testovania nedosahuje požadovanú efektívnosť a často vyžaduje spustenie samostatného virtualizovaného inštancie Windows, najmä pri pokuse analyzovať zložitý softvér, ako je antivírusový softvér, pokrývajúci prácu na úrovni jadra a užívateľského priestoru. Pomocou LoadLibrary sa výskumníci z Google zaoberajú vyhľadávaním zraniteľností vo video kodekoch, antivírusových skeneroch, knižniciach na rozbaľovanie dát, dekodéroch obrázkov a podobne.
Napríklad pomocou LoadLibrary sa podarilo portovať na spustenie v Linuxe antivírusový motor Windows Defender. Výskum mpengine.dll, ktorý tvorí základ Windows Defender, umožnil analyzovať veľké množstvo zložitých spracovateľov rôznych formátov, emulátorov FS a interpretátorov jazykov, potenciálne poskytujúcich vektory pre .
LoadLibrary sa taktiež využíval pri odhaľovaní v antivírusovom balíku Avast. Pri skúmaní DLL tohto antivírusu bolo zistené, že kľúčový privilegovaný proces skenovania zahŕňa plnohodnotný JavaScript interpreter, ktorý sa používa na emuláciu vykonávania externého JavaScript kódu. Tento proces nie je izolovaný v sandboxovom prostredí, neznižuje privilegiality a vykonáva analýzu neoverených externých údajov z FS a zachytenej sieťovej prevádzky. Keďže akákoľvek zraniteľnosť v tomto zložitom a nezabezpečenom procese môže potenciálne viesť k vzdialenej kompromitácii celého systému, na základe LoadLibrary bola vyvinutá špeciálna vrstva. na analýzu zraniteľností v antivírusovom skeneri Avast v prostredí založenom na Linuxe.
Zdroj: opennet.ru
