LoadLibrary, kerros Windowsin DLL-tiedostojen lataamiseen Linux-sovelluksiin

Tavis Ormandy (Tavis ormandy), Googlen tietoturvatutkija, joka kehittää projektia LoadLibrary, jonka tarkoituksena on siirtää Windowsille koottuja DLL-tiedostoja käytettäväksi Linux-sovelluksissa. Projekti tarjoaa kerroskirjaston, jolla voit ladata PE/COFF-muodossa olevan DLL-tiedoston ja kutsua siinä määritettyjä toimintoja. PE/COFF-käynnistyslatain perustuu koodiin ndiswrapper. Projektin koodi jakelija lisensoitu GPLv2:lla.

LoadLibrary huolehtii kirjaston lataamisesta muistiin ja olemassa olevien symbolien tuomisesta tarjoamalla Linux-sovellukselle dlopen-tyyppisen API:n. Laajennuskoodin virheenkorjaus onnistuu gdb:n, ASAN:n ja Valgrindin avulla. On mahdollista säätää suoritettavaa koodia suorituksen aikana yhdistämällä koukkuja ja asentamalla korjauksia (runtime patching). Tukee poikkeusten käsittelyä ja purkamista C++:lle.

Projektin tavoitteena on järjestää skaalautuva ja tehokas hajautettu DLL-kirjastojen fuzzing-testaus Linux-pohjaisessa ympäristössä. Windowsissa fuzzing- ja peittotestaus ei ole kovin tehokasta ja vaatii usein erillisen virtualisoidun Windows-esiintymän käyttämisen, varsinkin kun yritetään analysoida monimutkaisia ​​tuotteita, kuten virustorjuntaohjelmistoja, jotka kattavat ytimen ja käyttäjätilan. Googlen tutkijat etsivät LoadLibraryn avulla haavoittuvuuksia videokoodekeista, virustarkistuksista, tiedonpurkukirjastoista, kuvanpurkuohjelmista jne.

Esimerkiksi LoadLibraryn avulla pystyimme siirtämään Windows Defenderin virustorjuntamoottorin toimimaan Linuxissa. Windows Defenderin perustan muodostavan mpengine.dll-tiedoston tutkiminen mahdollisti suuren määrän kehittyneitä prosessoreita eri muodoille, tiedostojärjestelmäemulaattoreita ja kielitulkkeja, jotka mahdollisesti tarjoavat vektoreita mahdollista hyökkäyksiä.

LoadLibraryä käytettiin myös tunnistamiseen etähaavoittuvuus Avast-virustorjuntapaketissa. Kun tutkittiin tämän viruksentorjuntaohjelman DLL-tiedostoa, paljastettiin, että tärkeimmät etuoikeutetut tarkistusprosessit sisältävät täysimittaisen JavaScript-tulkin, jota käytetään emuloimaan kolmannen osapuolen JavaScript-koodin suorittamista. Tätä prosessia ei ole eristetty hiekkalaatikkoympäristössä, se ei nollaa oikeuksia ja analysoi vahvistamattomia ulkoisia tietoja tiedostojärjestelmästä ja siepattua verkkoliikennettä. Koska kaikki tämän monimutkaisen ja suojaamattoman prosessin haavoittuvuudet voivat johtaa koko järjestelmän etäturvallisuuteen, LoadLibraryyn perustuen kehitettiin erityinen kuori. avscript analysoida Avast-virustorjuntaohjelmiston haavoittuvuuksia Linux-pohjaisessa ympäristössä.

Lähde: opennet.ru

Lisää kommentti