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

Tavis Ormandy (Tavis ormandy), sigurnosni istraživač u Googleu koji razvija projekt Učitaj knjižnicu, s ciljem prijenosa DLL-ova kompiliranih za Windows za korištenje u Linux aplikacijama. Projekt pruža biblioteku slojeva s kojom možete učitati DLL datoteku u PE/COFF formatu i pozvati funkcije definirane u njoj. PE/COFF bootloader temelji se na kodu rasmatač. Šifra projekta distribuira licenciran pod GPLv2.

LoadLibrary se brine za učitavanje biblioteke u memoriju i uvoz postojećih simbola, pružajući Linux aplikaciji API u dlopen stilu. Kod plug-ina može se otkloniti pogreške pomoću gdb-a, ASAN-a i Valgrinda. Moguće je prilagoditi izvršni kod tijekom izvođenja povezivanjem kuka i primjenom zakrpa (krpanje vremena izvođenja). Podržava rukovanje iznimkama i odmotavanje za C++.

Cilj projekta je organizirati skalabilno i učinkovito distribuirano fuzzing testiranje DLL biblioteka u Linux-baziranom okruženju. U sustavu Windows testiranje fuzzinga i pokrivenosti nije vrlo učinkovito i često zahtijeva pokretanje zasebne virtualizirane instance sustava Windows, posebno kada se pokušavaju analizirati složeni proizvodi kao što je antivirusni softver koji obuhvaća kernel i korisnički prostor. Koristeći LoadLibrary, Googleovi 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 prenijeti antivirusni mehanizam Windows Defender za rad na Linuxu. Studija o mpengine.dll, koja čini osnovu Windows Defendera, omogućila je analizu velikog broja sofisticiranih procesora za različite formate, emulatore sustava datoteka i jezične tumače koji potencijalno pružaju vektore za moguće napad.

LoadLibrary je također korišten za identifikaciju udaljena ranjivost u antivirusnom paketu Avast. Prilikom proučavanja DLL-a iz ovog antivirusnog programa otkriveno je da ključni proces privilegiranog skeniranja uključuje potpuni JavaScript tumač koji se koristi za emulaciju izvršavanja JavaScript koda treće strane. Ovaj proces nije izoliran u sandbox okruženju, ne resetira privilegije i analizira neprovjerene vanjske podatke iz datotečnog sustava i presretnuti mrežni promet. Budući da svaka ranjivost u ovom složenom i nezaštićenom procesu potencijalno može dovesti do udaljene kompromitacije cijelog sustava, razvijena je posebna ljuska temeljena na LoadLibrary avscript za analizu ranjivosti u antivirusnom skeneru Avast u okruženju temeljenom na Linuxu.

Izvor: opennet.ru

Dodajte komentar