Tavis Ormandy (), sikkerhedsforsker fra Google, udvikler et projekt , der sigter mod at porte DLL-biblioteker opbygget til Windows til brug i applikationer til Linux. Projektet leverer et lag-bibliotek, som gør det muligt at indlæse en DLL-fil i PE/COFF-format og kalde definerede funktioner i den. PE/COFF-laderen er baseret på kode . Projektkoden er under GPLv2-licensen.
LoadLibrary håndterer opgaverne med at indlæse biblioteker i hukommelsen og importere eksisterende symboler, hvilket giver Linux-applikationen et API i dlopen-stil. Den understøttede kode kan fejlsøges ved hjælp af gdb, ASAN og Valgrind. Der er mulighed for at justere den eksekverbare kode under kørslen ved hjælp af tilkobling af hooks og patching (runtime patching). Undtagelser for C++ understøttes.
Projektets mål er at organisere skalerbar og effektiv distribueret fuzzing-testning af DLL-biblioteker i et Linux-baseret miljø. I Windows gør fuzzing- og coverage-testning det svært at opnå den nødvendige effektivitet og kræver ofte, at der køres en særskilt virtualiseret Windows-forekomst, især når man forsøger at analysere komplekse produkter som antivirussoftware, der dækker funktioner på kernel- og brugerrum-niveau. Ved hjælp af LoadLibrary søger forskere fra Google efter sårbarheder i videokodeker, antivirus-scannere, dataudpakningsbiblioteker, billeddecoders osv.
For eksempel har LoadLibrary gjort det muligt at porte antivirusmotoren Windows Defender til at køre på Linux. Undersøgelsen af mpengine.dll, som udgør grundlaget for Windows Defender, har gjort det muligt at analysere et stort antal komplekse håndteringsenheder af forskellige formater, filsystememulatorer og sprogfortolkere, der potentielt giver vektorer for .
LoadLibrary er også blevet brugt til at identificere i antiviruspakken Avast. Ved analyse af DLL fra denne antivirus blev det afsløret, at den centrale privilegerede scanningsproces omfatter en fuld JavaScript-fortolker, der bruges til at emulere udførelsen af tredjeparts JavaScript-kode. Denne proces er ikke isoleret i et sandbox-miljø, opgiver ikke privilegier og analyserer upålidelige eksterne data fra filsystemet og opsnappet netværkstrafik. Da enhver sårbarhed i denne komplicerede og usikrede proces potentielt kan føre til fjernkompromittering af hele systemet, blev der udviklet et særligt lag baseret på LoadLibrary. til analyse af sårbarheder i antivirusprogrammet Avast i et Linux-baseret miljø.
Kilde: opennet.ru
