LoadLibrary, et lag til at indlæse Windows DLL'er i Linux-applikationer

Tavis Ormandy (Tavis ormandy), en sikkerhedsforsker hos Google, der udvikler projektet Indlæs bibliotek, rettet mod portering af DLL'er kompileret til Windows til brug i Linux-applikationer. Projektet giver et lagbibliotek, hvormed du kan indlæse en DLL-fil i PE/COFF-format og kalde de funktioner, der er defineret i den. PE/COFF bootloader er baseret på kode indpakning. Projektkode distribueret af licenseret under GPLv2.

LoadLibrary sørger for at indlæse biblioteket i hukommelsen og importere eksisterende symboler, hvilket giver Linux-applikationen en API i dlopen-stil. Plug-in-koden kan debugges ved hjælp af gdb, ASAN og Valgrind. Det er muligt at justere den eksekverbare kode under udførelse ved at forbinde hooks og anvende patches (runtime patching). Understøtter undtagelseshåndtering og afvikling for C++.

Målet med projektet er at organisere skalerbar og effektiv distribueret fuzzing-test af DLL-biblioteker i et Linux-baseret miljø. På Windows er fuzzing og dækningstest ikke særlig effektiv og kræver ofte at køre en separat virtualiseret forekomst af Windows, især når man prøver at analysere komplekse produkter såsom antivirussoftware, der spænder over kernen og brugerrummet. Ved hjælp af LoadLibrary søger Google-forskere efter sårbarheder i video-codecs, virusscannere, datadekompressionsbiblioteker, billeddekodere osv.

For eksempel var vi ved hjælp af LoadLibrary i stand til at porte Windows Defender-antivirusmotoren til at køre på Linux. Undersøgelsen af ​​mpengine.dll, som danner grundlaget for Windows Defender, gjorde det muligt at analysere et stort antal sofistikerede processorer for forskellige formater, filsystememulatorer og sprogfortolkere, der potentielt leverer vektorer til muligt angreb.

LoadLibrary blev også brugt til at identificere fjernsårbarhed i Avast antivirus-pakken. Da man studerede DLL'en fra dette antivirus, blev det afsløret, at den nøgleprivilegerede scanningsproces inkluderer en fuldgyldig JavaScript-fortolker, der bruges til at emulere udførelsen af ​​tredjeparts JavaScript-kode. Denne proces er ikke isoleret i et sandkassemiljø, nulstiller ikke privilegier og analyserer ikke-verificerede eksterne data fra filsystemet og opsnappet netværkstrafik. Da enhver sårbarhed i denne komplekse og ubeskyttede proces potentielt kan føre til fjernkompromittering af hele systemet, blev der udviklet en speciel shell baseret på LoadLibrary avscript at analysere sårbarheder i Avast antivirusscanneren i et Linux-baseret miljø.

Kilde: opennet.ru

Tilføj en kommentar