Tavis Ormandy (), cercetător în domeniul securității de la Google, dezvoltă proiectul , destinat portării bibliotecilor DLL compilate pentru Windows pentru utilizarea în aplicațiile Linux. Proiectul oferă o bibliotecă de interfață care permite încărcarea fișierelor DLL în format PE/COFF și apelarea funcțiilor definite în acestea. Încărcătorul PE/COFF se bazează pe codul . Codul proiectului sub licența GPLv2.
LoadLibrary se ocupă cu funcțiile de încărcare a bibliotecii în memorie și importul simbolurilor existente, oferind aplicației Linux o API de tip dlopen. Codul dinamic poate fi decodat folosind gdb, ASAN și Valgrind. Este posibilă ajustarea codului executabil în timpul execuției prin conectarea hook-urilor și aplicarea patch-urilor (runtime patching). Suportă procesarea și desfășurarea excepțiilor pentru C++.
Obiectivul proiectului este organizarea unui testare distribuită de fuzzing a bibliotecilor DLL într-un mediu bazat pe Linux. În Windows, efectuarea testelor de fuzzing și coverage nu permite obținerea eficienței dorite și necesită adesea rularea unei copii virtualizate separate de Windows, în special când se analizează produse complexe, cum ar fi software-ul antivirus, care acoperă funcționarea la nivel de kernel și spațiul utilizatorului. Prin intermediul LoadLibrary, cercetătorii de la Google caută vulnerabilități în codec-uri video, scanere antivirus, biblioteci de decomprimare a datelor, decodoare de imagini etc.
De exemplu, prin intermediul LoadLibrary a fost posibilă portarea motorului antivirus Windows Defender pentru a rula în Linux. Analiza mpengine.dll, care este baza Windows Defender, a permis analiza unui număr mare de manipulatoare complexe pentru diverse formate, emulatori de FS și interpreți de limbaje, care pot oferi vectori pentru .
LoadLibrary a fost de asemenea utilizat în identificarea în pachetul antivirus Avast. La examinarea DLL-ului acestui antivirus, s-a constatat că procesul cheie privilegiat de scanare include un interpret JavaScript complet, folosit pentru a emula execuția codului JavaScript terț. Acest proces nu este izolat într-un mediu sandbox, nu își reduce privilegiile și efectuează analiza datelor externe nesigure din sistemul de fișiere și din traficul de rețea interceptat. Deoarece orice vulnerabilitate în acest proces complex și neprotejat poate duce potențial la compromiterea de la distanță a întregului sistem, pe baza LoadLibrary a fost dezvoltată o interfață specială. pentru analiza vulnerabilităților din scannerul antivirus Avast într-un mediu bazat pe Linux.
Sursa: opennet.ro
