LoadLibrary — slānis Windows DLL ielādei Linux lietojumprogrammās

Tāviss Ormandijs (Tavis ormandy), Google drošības pētnieks, kurš izstrādā projektu LoadLibrary, kuras mērķis ir pārnēsāt operētājsistēmai Windows kompilētos DLL izmantošanai Linux lietojumprogrammās. Projekts nodrošina slāņu bibliotēku, ar kuru var ielādēt DLL failu PE/COFF formātā un izsaukt tajā definētās funkcijas. PE/COFF sāknēšanas programmas pamatā ir kods ndiswrapper. Projekta kods izplata licencēts saskaņā ar GPLv2.

LoadLibrary rūpējas par bibliotēkas ielādi atmiņā un esošo simbolu importēšanu, nodrošinot Linux lietojumprogrammu ar dlopen stila API. Spraudņa kodu var atkļūdot, izmantojot gdb, ASAN un Valgrind. Izpildes laikā ir iespējams pielāgot izpildāmo kodu, savienojot āķus un uzliekot ielāpus (runtime patching). Atbalsta izņēmumu apstrādi un attīšanu C++.

Projekta mērķis ir organizēt mērogojamu un efektīvu izplatītu DLL bibliotēku izplūdes testēšanu Linux vidē. Operētājsistēmā Windows izplūdes un pārklājuma pārbaude nav ļoti efektīva, un bieži vien ir nepieciešams palaist atsevišķu virtualizētu Windows gadījumu, īpaši, mēģinot analizēt sarežģītus produktus, piemēram, pretvīrusu programmatūru, kas aptver kodolu un lietotāja vietu. Izmantojot LoadLibrary, Google pētnieki meklē ievainojamības video kodekos, vīrusu skeneros, datu dekompresijas bibliotēkās, attēlu dekodētājos utt.

Piemēram, ar LoadLibrary palīdzību mēs varējām portēt Windows Defender pretvīrusu dzinēju, lai tas darbotos operētājsistēmā Linux. Mpengine.dll, kas veido Windows Defender pamatu, izpēte ļāva analizēt lielu skaitu sarežģītu procesoru dažādiem formātiem, failu sistēmas emulatoru un valodu tulku, kas potenciāli nodrošina vektorus iespējams uzbrukumiem.

Identifikācijai tika izmantota arī LoadLibrary attālā ievainojamība Avast pretvīrusu pakotnē. Pētot šī antivīrusa DLL, atklājās, ka galvenais priviliģētās skenēšanas process ietver pilnvērtīgu JavaScript tulku, ko izmanto, lai emulētu trešās puses JavaScript koda izpildi. Šis process nav izolēts smilškastes vidē, neatiestata privilēģijas un analizē nepārbaudītus ārējos datus no failu sistēmas un pārtverto tīkla trafiku. Tā kā jebkura ievainojamība šajā sarežģītajā un neaizsargātajā procesā potenciāli var izraisīt visas sistēmas attālu kompromitēšanu, tika izstrādāts īpašs apvalks, pamatojoties uz LoadLibrary. avscript lai analizētu Avast pretvīrusu skenera ievainojamības Linux vidē.

Avots: opennet.ru

Pievieno komentāru