LoadLibrary, kiht Windowsi DLL-ide laadimiseks Linuxi rakendustesse

Tavis Ormandy (Tavis ormandy), Google'i turvateadlane, kes projekti arendab Laadi raamatukogu, mille eesmärk on Windowsi jaoks kompileeritud DLL-ide teisaldamine Linuxi rakendustes kasutamiseks. Projekt pakub kihiteegi, mille abil saate laadida PE/COFF-vormingus DLL-faili ja kutsuda välja selles määratletud funktsioonid. PE/COFF alglaadur põhineb koodil ndiswrapper. Projekti kood jaotatud litsentsitud GPLv2 alusel.

LoadLibrary hoolitseb teegi mällu laadimise ja olemasolevate sümbolite importimise eest, pakkudes Linuxi rakendusele dlopen-stiilis API-d. Pistikprogrammi koodi saab siluda gdb, ASAN ja Valgrindi abil. Täitmiskoodi on võimalik täitmise ajal reguleerida konksude ühendamise ja paikade paigaldamisega (runtime patching). Toetab C++ erandite käsitlemist ja lahtikerimist.

Projekti eesmärk on korraldada Linuxi-põhises keskkonnas DLL-teekide skaleeritav ja tõhus hajutatud fuzzing-testimine. Windowsis ei ole hägustamise ja katvuse testimine kuigi tõhus ja nõuab sageli Windowsi eraldi virtualiseeritud eksemplari käitamist, eriti kui proovite analüüsida keerulisi tooteid, näiteks viirusetõrjetarkvara, mis hõlmab kerneli ja kasutajaruumi. LoadLibrary abil otsivad Google'i teadlased haavatavusi videokoodekites, viiruseskannerites, andmete lahtipakkimise teekides, pildidekoodrites jne.

Näiteks saime LoadLibrary abil portida Windows Defenderi viirusetõrjemootori, et see töötaks Linuxis. Windows Defenderi aluseks oleva mpengine.dll uurimine võimaldas analüüsida suurt hulka keerukaid protsessoreid erinevate vormingute jaoks, failisüsteemi emulaatoreid ja keeletõlke, mis võivad vektoreid pakkuda võimalik rünnakud.

Tuvastamiseks kasutati ka LoadLibrary kaughaavatavus viirusetõrjepaketis Avast. Selle viirusetõrje DLL-i uurides selgus, et peamine privilegeeritud skannimisprotsess sisaldab täieõiguslikku JavaScripti interpretaatorit, mida kasutatakse kolmanda osapoole JavaScripti koodi täitmise emuleerimiseks. Seda protsessi ei eraldata liivakastikeskkonnas, see ei lähtesta privileege ning analüüsib failisüsteemi kontrollimata välisandmeid ja pealtkuulatud võrguliiklust. Kuna selle keeruka ja kaitsmata protsessi mis tahes haavatavus võib potentsiaalselt viia kogu süsteemi kaugkompromiteerimiseni, töötati LoadLibrary baasil välja spetsiaalne kest. avscript et analüüsida Avast viirusetõrjeskanneri turvaauke Linuxi-põhises keskkonnas.

Allikas: opennet.ru

Lisa kommentaar