LoadLibrary, sloj za učitavanje Windows DLL-ova u Linux aplikacije

Tavis Ormandy (Tavis ormandy), istraživač sigurnosti u Googleu koji razvija projekat LoadLibrary, koji ima za cilj prenošenje DLL-ova kompajliranih za Windows za upotrebu u Linux aplikacijama. Projekt pruža biblioteku slojeva pomoću koje možete učitati DLL datoteku u PE/COFF formatu i pozvati funkcije definirane u njoj. PE/COFF bootloader je baziran na kodu ndiswrapper. Šifra projekta distribuira licenciran pod GPLv2.

LoadLibrary brine o učitavanju biblioteke u memoriju i uvozu postojećih simbola, pružajući Linux aplikaciji API u dlopen stilu. Plug-in kod se može otkloniti pomoću gdb, ASAN i Valgrind. Moguće je podesiti izvršni kod tokom izvršavanja povezivanjem zakačiva i primjenom zakrpa (runtime patching). Podržava rukovanje izuzetcima i odmotavanje za C++.

Cilj projekta je organizirati skalabilno i efikasno distribuirano fuzzing testiranje DLL biblioteka u Linux okruženju. Na Windows-u, fuzzing i testiranje pokrivenosti nije baš efikasno i često zahteva pokretanje zasebne virtuelizovane instance Windows-a, posebno kada pokušavate da analizirate složene proizvode kao što je antivirusni softver koji obuhvataju kernel i korisnički prostor. Koristeći LoadLibrary, Google istraživači traže ranjivosti u video kodecima, skenerima virusa, bibliotekama za dekompresiju podataka, dekoderima slika itd.

Na primjer, uz pomoć LoadLibrary uspjeli smo portirati Windows Defender antivirusni mehanizam da radi na Linuxu. Studija mpengine.dll, koja čini osnovu Windows Defendera, omogućila je analizu velikog broja sofisticiranih procesora za različite formate, emulatora sistema datoteka i tumača jezika koji potencijalno obezbeđuju vektore za moguće napada.

LoadLibrary je također korišten za identifikaciju udaljena ranjivost u Avast antivirusnom paketu. Prilikom proučavanja DLL-a ovog antivirusa, otkriveno je da ključni proces privilegovanog skeniranja uključuje punopravni JavaScript interpreter koji se koristi za emulaciju izvršavanja JavaScript koda treće strane. Ovaj proces nije izolovan u sandbox okruženju, ne resetuje privilegije i analizira neproverene eksterne podatke iz sistema datoteka i presretnuti mrežni saobraćaj. Budući da bi svaka ranjivost u ovom složenom i nezaštićenom procesu potencijalno mogla dovesti do daljinskog kompromitovanja cijelog sistema, razvijena je posebna ljuska zasnovana na LoadLibrary avscript za analizu ranjivosti u Avast antivirusnom skeneru u okruženju zasnovanom na Linuxu.

izvor: opennet.ru

Dodajte komentar