LoadLibrary, 'n laag om Windows DLL's in Linux-toepassings te laai

Tavis Ormandy (Tavis ormandy), 'n sekuriteitsnavorser by Google wat die projek ontwikkel Laai Biblioteek, wat daarop gemik is om DLL's wat vir Windows saamgestel is, oor te dra vir gebruik in Linux-toepassings. Die projek verskaf 'n laagbiblioteek waarmee jy 'n DLL-lêer in PE/COFF-formaat kan laai en die funksies wat daarin gedefinieer is, kan oproep. PE/COFF selflaaiprogram is gebaseer op kode ndiswrapper. Projek kode versprei deur gelisensieer onder GPLv2.

LoadLibrary sorg daarvoor om die biblioteek in die geheue te laai en bestaande simbole in te voer, wat die Linux-toepassing van 'n dlopen-styl API voorsien. Die inpropkode kan met gdb, ASAN en Valgrind ontfout word. Dit is moontlik om die uitvoerbare kode tydens uitvoering aan te pas deur hake te koppel en pleisters toe te pas (runtime patching). Ondersteun uitsonderingshantering en afwikkeling vir C++.

Die doel van die projek is om skaalbare en doeltreffende verspreide fuzzing-toetsing van DLL-biblioteke in 'n Linux-gebaseerde omgewing te organiseer. Op Windows is fuzzing en dekkingstoetsing nie baie doeltreffend nie en vereis dit dikwels dat 'n aparte gevirtualiseerde instansie van Windows uitgevoer word, veral wanneer jy probeer om komplekse produkte soos antivirusprogrammatuur wat oor die kern en gebruikersruimte strek, te ontleed. Deur LoadLibrary te gebruik, soek Google-navorsers na kwesbaarhede in videokodeks, virusskandeerders, data-dekompressiebiblioteke, beelddekodeerders, ens.

Byvoorbeeld, met die hulp van LoadLibrary kon ons die Windows Defender-antivirus-enjin oordra om op Linux te loop. Die studie van mpengine.dll, wat die basis van Windows Defender vorm, het dit moontlik gemaak om 'n groot aantal gesofistikeerde verwerkers vir verskeie formate, lêerstelsel-emulators en taaltolke te ontleed wat moontlik vektore vir moontlik aanvalle.

LoadLibrary is ook gebruik om te identifiseer afgeleë kwesbaarheid in die Avast-antiviruspakket. Toe u die DLL vanaf hierdie antivirus bestudeer het, is dit aan die lig gebring dat die sleutelbevoorregte skanderingsproses 'n volwaardige JavaScript-tolk insluit wat gebruik word om die uitvoering van derdeparty-JavaScript-kode na te boots. Hierdie proses is nie geïsoleer in 'n sandbox-omgewing nie, stel nie voorregte terug nie, en ontleed ongeverifieerde eksterne data van die lêerstelsel en onderskepte netwerkverkeer. Aangesien enige kwesbaarheid in hierdie komplekse en onbeskermde proses moontlik kan lei tot afgeleë kompromie van die hele stelsel, is 'n spesiale dop ontwikkel gebaseer op LoadLibrary avskrip om kwesbaarhede in die Avast-antivirusskandeerder in 'n Linux-gebaseerde omgewing te ontleed.

Bron: opennet.ru

Voeg 'n opmerking