LoadLibrary, një shtresë për ngarkimin e Windows DLL në aplikacionet Linux

Tavis Ormandy (Tavis ormandy), një studiues sigurie në Google që po zhvillon projektin Libraria e ngarkesës, që synon transferimin e DLL-ve të përpiluara për Windows për përdorim në aplikacionet Linux. Projekti ofron një bibliotekë shtresash me të cilën mund të ngarkoni një skedar DLL në formatin PE/COFF dhe të thërrisni funksionet e përcaktuara në të. Ngarkuesi PE/COFF bazohet në kod zbërthyes. Kodi i projektit shperndare nga licencuar sipas GPLv2.

LoadLibrary kujdeset për ngarkimin e bibliotekës në memorie dhe importimin e simboleve ekzistuese, duke i siguruar aplikacionit Linux një API të stilit dlopen. Kodi i shtojcës mund të korrigjohet duke përdorur gdb, ASAN dhe Valgrind. Është e mundur të rregulloni kodin e ekzekutueshëm gjatë ekzekutimit duke lidhur hooks dhe duke aplikuar arna (runtime patching). Mbështet trajtimin dhe shthurjen e përjashtimeve për C++.

Qëllimi i projektit është të organizojë testimin e shkallëzuar dhe efikas të fuzzimit të shpërndarë të bibliotekave DLL në një mjedis të bazuar në Linux. Në Windows, fuzzimi dhe testimi i mbulimit nuk është shumë efikas dhe shpesh kërkon ekzekutimin e një shembulli të veçantë të virtualizuar të Windows, veçanërisht kur përpiqeni të analizoni produkte komplekse si softueri antivirus që përfshin kernelin dhe hapësirën e përdoruesit. Duke përdorur LoadLibrary, studiuesit e Google janë duke kërkuar për dobësi në kodekët e videove, skanerët e viruseve, bibliotekat e dekompresimit të të dhënave, dekoduesit e imazheve, etj.

Për shembull, me ndihmën e LoadLibrary ne mundëm të portonim motorin antivirus të Windows Defender për të funksionuar në Linux. Studimi i mpengine.dll, i cili përbën bazën e Windows Defender, bëri të mundur analizimin e një numri të madh procesorësh të sofistikuar për formate të ndryshme, emulatorë të sistemit të skedarëve dhe përkthyes gjuhësh që potencialisht ofrojnë vektorë për të mundshme sulm.

LoadLibrary u përdor gjithashtu për të identifikuar cenueshmëri në distancë në paketën antivirus Avast. Gjatë studimit të DLL-së nga ky antivirus, u zbulua se procesi kryesor i skanimit të privilegjuar përfshin një interpretues të plotë JavaScript të përdorur për të imituar ekzekutimin e kodit JavaScript të palës së tretë. Ky proces nuk është i izoluar në një mjedis sandbox, nuk rivendos privilegjet dhe analizon të dhënat e jashtme të paverifikuara nga sistemi i skedarëve dhe trafiku i rrjetit të përgjuar. Meqenëse çdo dobësi në këtë proces kompleks dhe të pambrojtur mund të çojë potencialisht në kompromis të largët të të gjithë sistemit, një guaskë speciale u zhvillua bazuar në LoadLibrary avscript për të analizuar dobësitë në skanerin antivirus Avast në një mjedis të bazuar në Linux.

Burimi: opennet.ru

Shto një koment