LoadLibrary, plast za nalaganje Windows DLL v aplikacije Linux

Tavis Ormandy (Tavis ormandy), varnostni raziskovalec pri Googlu, ki razvija projekt Loadlibrary, ki je namenjen prenosu DLL-jev, prevedenih za Windows, za uporabo v aplikacijah Linux. Projekt ponuja knjižnico plasti, s katero lahko naložite datoteko DLL v formatu PE/COFF in pokličete funkcije, ki so v njej definirane. Zagonski nalagalnik PE/COFF temelji na kodi ndiswrapper. Koda projekta distributer licenciran pod GPLv2.

LoadLibrary skrbi za nalaganje knjižnice v pomnilnik in uvoz obstoječih simbolov ter aplikaciji Linux zagotavlja API v slogu dlopen. Kodo vtičnika je mogoče odpraviti z gdb, ASAN in Valgrind. Izvedljivo kodo je mogoče prilagoditi med izvajanjem s povezovanjem kavljev in uporabo popravkov (krpanje med izvajanjem). Podpira obravnavanje izjem in odvijanje za C++.

Cilj projekta je organizirati razširljivo in učinkovito porazdeljeno fuzzing testiranje knjižnic DLL v okolju, ki temelji na Linuxu. V sistemu Windows preizkušanje zamegljenosti in pokritosti ni zelo učinkovito in pogosto zahteva izvajanje ločenega virtualiziranega primerka sistema Windows, zlasti ko poskušate analizirati kompleksne izdelke, kot je protivirusna programska oprema, ki zajema jedro in uporabniški prostor. Z uporabo LoadLibrary Googlovi raziskovalci iščejo ranljivosti v video kodekih, iskalnikih virusov, knjižnicah za dekompresijo podatkov, dekodirnikih slik itd.

Na primer, s pomočjo LoadLibrary nam je uspelo prenesti protivirusni mehanizem Windows Defender za delovanje v sistemu Linux. Študija mpengine.dll, ki je osnova programa Windows Defender, je omogočila analizo velikega števila sofisticiranih procesorjev za različne formate, emulatorjev datotečnega sistema in jezikovnih tolmačev, ki potencialno zagotavljajo vektorje za možno napadi.

LoadLibrary je bil uporabljen tudi za identifikacijo oddaljena ranljivost v protivirusnem paketu Avast. Pri proučevanju DLL iz tega protivirusnega programa je bilo ugotovljeno, da ključni postopek privilegiranega skeniranja vključuje poln tolmač JavaScript, ki se uporablja za posnemanje izvajanja kode JavaScript tretjih oseb. Ta proces ni izoliran v okolju peskovnika, ne ponastavi privilegijev in analizira nepreverjene zunanje podatke iz datotečnega sistema in prestrežen omrežni promet. Ker bi vsaka ranljivost v tem zapletenem in nezaščitenem procesu lahko povzročila oddaljeno ogrožanje celotnega sistema, je bila razvita posebna lupina, ki temelji na LoadLibrary. avscript za analizo ranljivosti protivirusnega bralnika Avast v okolju, ki temelji na Linuxu.

Vir: opennet.ru

Dodaj komentar