LoadLibrary, een laag voor het laden van Windows DLL in Linux-toepassingen

Tavis Ormandy (Tavis Ormandy), een beveiligingsonderzoeker bij Google, ontwikkelt een project LoadLibrary, gericht op het porteren van DLL-bibliotheken die voor Windows zijn samengebracht, zodat ze kunnen worden gebruikt in applicaties voor Linux. Het project biedt een tussenlaagbibliotheek waarmee een DLL-bestand in PE/COFF-formaat kan worden geladen en waarbij specifieke functies kunnen worden aangeroepen. De PE/COFF-loader is gebaseerd op de code ndiswrapper. De code van het project wordt verspreid onder GPLv2-licentie.

LoadLibrary houdt zich bezig met het laden van de bibliotheek in het geheugen en het importeren van bestaande symbolen, waardoor een Linux-applicatie API's in stijl van dlopen krijgt. De ingebouwde code kan gedebugd worden met behulp van gdb, ASAN en Valgrind. Er is een mogelijkheid om uitvoerbare code tijdens runtime aan te passen door hooks toe te voegen en patches aan te brengen (runtime patching). Ook wordt het afhandelen en unwinden van uitzonderingen voor C++ ondersteund.

Het doel van het project is het organiseren van schaalbare en efficiƫnte gedistribueerde fuzzing-tests van DLL-bibliotheken in een op Linux gebaseerde omgeving. In Windows maakt fuzzing- en coverage-testen het moeilijk om de vereiste efficiƫntie te bereiken en vaak moet er een aparte gevirtualiseerde Windows-instantie worden gestart, vooral bij het analyseren van complexere producten zoals antivirussoftware die zowel op kernel- als gebruikersniveau werkt. Met behulp van LoadLibrary zijn de onderzoekers van Google bezig met het opsporen van kwetsbaarheden in videocodecs, antivirus-scanners, data-ontbindingsbibliotheken, afbeeldingsdecoders, enzovoort.

Bijvoorbeeld, met behulp van LoadLibrary is het gelukt om de Windows Defender-antivirusengine te porteren naar Linux. Het onderzoek naar mpengine.dll, de kern van Windows Defender, maakte het mogelijk om een groot aantal complexe handlers van verschillende formaten, filesystem-emulators en programmeertaalinterpreters te analyseren, die mogelijk vectoren voor zouden kunnen bieden voor mogelijke En op deze vraag is er een oplossing – het is noodzakelijk om moderne filtersystemen te gebruiken en speciale programma's in te schakelen – dan is uw bron.

LoadLibrary is ook gebruikt bij het ontdekken van op afstand kwetsbaarheden in het antiviruspakket Avast. Tijdens de analyse van de DLL van dit antivirusprogramma werd ontdekt dat het belangrijkste bevoorrechte scanproces een volledige JavaScript-interpreter omvat die wordt gebruikt voor het emuleren van de uitvoering van externe JavaScript-code. Dit proces is niet geĆÆsoleerd in een sandbox-omgeving, verliest geen bevoegdheden en voert een analyse uit van niet-gecontroleerde externe gegevens van het bestandssysteem en onderschepte netwerkt verkeer. Aangezien elke kwetsbaarheid in dit complexe en onbeschermde proces potentieel kan leiden tot een externe compromittering van het hele systeem, werd er een speciale shell ontwikkeld op basis van LoadLibrary. avscript voor het analyseren van kwetsbaarheden in de antivirusscanner Avast in een Linux-gebaseerde omgeving.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster