LoadLibrary, et lag for å laste Windows DLL-er til Linux-applikasjoner

Tavis Ormandy (Tavis ormandy), en sikkerhetsforsker hos Google som utvikler prosjektet Loadlibrary, rettet mot portering av DLL-er kompilert for Windows for bruk i Linux-applikasjoner. Prosjektet gir et lagbibliotek som du kan laste inn en DLL-fil i PE/COFF-format med og kalle opp funksjonene som er definert i den. PE/COFF bootloader er basert på kode ndiswrapper. Prosjektkode distribuert av lisensiert under GPLv2.

LoadLibrary tar seg av å laste biblioteket inn i minnet og importere eksisterende symboler, og gir Linux-applikasjonen et API i dlopen-stil. Plug-in-koden kan feilsøkes ved å bruke gdb, ASAN og Valgrind. Det er mulig å justere den kjørbare koden under utførelse ved å koble til kroker og bruke patcher (runtime patching). Støtter unntakshåndtering og avvikling for C++.

Målet med prosjektet er å organisere skalerbar og effektiv distribuert fuzzing-testing av DLL-biblioteker i et Linux-basert miljø. På Windows er fuzzing og dekningstesting lite effektivt og krever ofte å kjøre en separat virtualisert forekomst av Windows, spesielt når man prøver å analysere komplekse produkter som antivirusprogramvare som spenner over kjernen og brukerområdet. Ved å bruke LoadLibrary søker Google-forskere etter sårbarheter i videokodeker, virusskannere, datadekompresjonsbiblioteker, bildedekodere, etc.

For eksempel, ved hjelp av LoadLibrary var vi i stand til å portere Windows Defender-antivirusmotoren for å kjøre på Linux. Studiet av mpengine.dll, som danner grunnlaget for Windows Defender, gjorde det mulig å analysere et stort antall sofistikerte prosessorer for ulike formater, filsystememulatorer og språktolkere som potensielt gir vektorer for mulig angrep.

LoadLibrary ble også brukt til å identifisere ekstern sårbarhet i Avast antivirus-pakken. Når du studerte DLL-en fra dette antivirusprogrammet, ble det avslørt at nøkkelprivilegert skanningsprosess inkluderer en fullverdig JavaScript-tolk som brukes til å emulere kjøringen av tredjeparts JavaScript-kode. Denne prosessen er ikke isolert i et sandkassemiljø, tilbakestiller ikke privilegier og analyserer ubekreftede eksterne data fra filsystemet og avlyttet nettverkstrafikk. Siden enhver sårbarhet i denne komplekse og ubeskyttede prosessen potensielt kan føre til ekstern kompromittering av hele systemet, ble et spesielt skall utviklet basert på LoadLibrary avscript å analysere sårbarheter i Avast antivirusskanner i et Linux-basert miljø.

Kilde: opennet.ru

Legg til en kommentar