Malware

DLL-kaping van kwetsbaarheidsaanvallen, preventie en detectie

DLL-kaping van kwetsbaarheidsaanvallen, preventie en detectie

DLL staat voor Dynamic Link Libraries en zijn externe onderdelen van applicaties die op Windows of een ander besturingssysteem draaien. De meeste applicaties zijn op zichzelf niet compleet en slaan code op in verschillende bestanden. Als de code nodig is, wordt het gerelateerde bestand in het geheugen geladen en gebruikt. Dit verkleint de bestandsgrootte van de applicatie terwijl het gebruik van RAM wordt geoptimaliseerd. Dit artikel legt uit wat is DLL-kaping en hoe u het kunt detecteren en voorkomen?.

Wat zijn DLL-bestanden of Dynamic Link-bibliotheken?

DLL-bestanden zijn Dynamic Link Libraries en, zoals de naam al aangeeft, extensies van verschillende applicaties. Elke applicatie die we gebruiken, kan bepaalde codes al dan niet gebruiken. Dergelijke codes worden opgeslagen in verschillende bestanden en worden alleen aangeroepen of in het RAM geladen wanneer de bijbehorende code vereist is. Het zorgt er dus voor dat een applicatiebestand niet te groot wordt en voorkomt dat de applicatie veel resources nodig heeft.

Het pad voor DLL-bestanden wordt ingesteld door het Windows-besturingssysteem. Het pad wordt ingesteld met behulp van Global Environmental Variables. Als een toepassing een DLL-bestand aanvraagt, kijkt het besturingssysteem standaard in dezelfde map waarin de toepassing is opgeslagen. Als het daar niet wordt gevonden, gaat het naar andere mappen zoals ingesteld door de globale variabelen. Er zijn prioriteiten verbonden aan paden en het helpt Windows bij het bepalen naar welke mappen de DLL's moeten worden gezocht. Dit is waar de DLL-kaping van pas komt.

Wat is DLL-kaping?

Aangezien DLL's extensies zijn en nodig zijn om bijna alle toepassingen op uw machines te gebruiken, zijn ze aanwezig op de computer in verschillende mappen, zoals uitgelegd. Als het originele DLL-bestand wordt vervangen door een nep-DLL-bestand dat kwaadaardige code bevat, staat het bekend als DLL-kaping.

Zoals eerder vermeld, zijn er prioriteiten met betrekking tot waar het besturingssysteem naar DLL-bestanden zoekt. Eerst kijkt het in dezelfde map als de toepassingsmap en gaat vervolgens zoeken, op basis van de prioriteiten die zijn ingesteld door de omgevingsvariabelen van het besturingssysteem. Dus als een goede.dll-bestand staat in de map SysWOW64 en iemand plaatst een fout.dll in een map die een hogere prioriteit heeft in vergelijking met de SysWOW64-map, gebruikt het besturingssysteem de slechte.dll-bestand, omdat het dezelfde naam heeft als het DLL-bestand dat door de toepassing wordt gevraagd. Eenmaal in het RAM kan het de kwaadaardige code in het bestand uitvoeren en uw computer of netwerken in gevaar brengen.

Hoe DLL-kaping te detecteren

De eenvoudigste methode om DLL-kaping te detecteren en te voorkomen, is door tools van derden te gebruiken. Er zijn enkele goede gratis tools op de markt die helpen bij het detecteren en voorkomen van een DLL-hackpoging.

Een zo'n programma is DLL Hijack Auditor, maar het ondersteunt alleen 32-bits toepassingen. U kunt het op uw computer installeren en al uw Windows-applicaties scannen om te zien welke applicaties kwetsbaar zijn voor DLL-kaping. De interface is eenvoudig en spreekt voor zich. Het enige nadeel van deze applicatie is dat je geen 64-bit applicaties kunt scannen.

Een ander programma om DLL-kaping te detecteren, DLL_HIJACK_DETECT, is beschikbaar via GitHub. Dit programma controleert applicaties om te zien of een van deze kwetsbaar is voor DLL-kaping. Als dat zo is, informeert het programma de gebruiker. De applicatie heeft twee versies - x86 en x64, zodat je ze beide kunt gebruiken om respectievelijk 32-bits en 64-bits applicaties te scannen.

Opgemerkt moet worden dat de bovenstaande programma's de applicaties op het Windows-platform alleen scannen op kwetsbaarheden en het kapen van DLL-bestanden niet daadwerkelijk voorkomen.

Hoe DLL-kaping te voorkomen?

Het probleem moet in de eerste plaats door de programmeurs worden aangepakt, omdat u niet veel kunt doen, behalve uw beveiligingssystemen verbeteren. Als programmeurs in plaats van een relatief pad een absoluut pad gaan gebruiken, wordt de kwetsbaarheid verminderd. Het lezen van het absolute pad, Windows of een ander besturingssysteem is niet afhankelijk van systeemvariabelen voor het pad en gaat rechtstreeks naar de beoogde DLL, waardoor de kans wordt uitgesloten dat DLL met dezelfde naam in een pad met een hogere prioriteit wordt geladen. Ook deze methode is niet feilloos, want als het systeem is gecompromitteerd en de cybercriminelen het exacte pad van DLL kennen, zullen ze de originele DLL vervangen door de nep-DLL. Dat zou het bestand overschrijven, zodat de originele DLL wordt veranderd in kwaadaardige code. Maar nogmaals, de cybercrimineel moet het exacte absolute pad weten dat wordt vermeld in de applicatie die de DLL vraagt. Het proces is zwaar voor cybercriminelen en er kan daarom op worden gerekend.

Om terug te komen op wat u kunt doen: probeer uw beveiligingssystemen op te schalen om uw Windows-systeem beter te beveiligen. Gebruik een goede firewall. Gebruik indien mogelijk een hardwarefirewall of schakel de firewall van de router in. Gebruik goede inbraakdetectiesystemen, zodat u weet of iemand met uw computer probeert te spelen.

Als u problemen met computers wilt oplossen, kunt u ook het volgende doen om uw beveiliging te verbeteren:

  1. Schakel het laden van DLL's uit externe netwerkshares uit
  2. Schakel het laden van DLL-bestanden uit WebDAV uit
  3. Schakel de WebClient-service volledig uit of stel deze in op handmatig
  4. Blokkeer de TCP-poorten 445 en 139 omdat deze het meest worden gebruikt voor compromitterende computers
  5. Installeer de nieuwste updates voor het besturingssysteem en de beveiligingssoftware.

Microsoft heeft een tool uitgebracht om DLL-ladingskapingaanvallen te blokkeren. Deze tool verkleint het risico van DLL-kapingaanvallen door te voorkomen dat applicaties op onveilige wijze code uit DLL-bestanden laden.

Als je iets aan het artikel wilt toevoegen, reageer dan hieronder comment.

OpenTTD-zelfstudie
OpenTTD is een van de meest populaire simulatiegames voor bedrijven die er zijn. In dit spel moet je een geweldig transportbedrijf creƫren. U begint e...
SuperTuxKart voor Linux
SuperTuxKart is een geweldige titel die is ontworpen om je de Mario Kart-ervaring gratis te bieden op je Linux-systeem. Het is behoorlijk uitdagend en...
Strijd om Wesnoth Zelfstudie
The Battle for Wesnoth is een van de meest populaire open source strategiespellen die je op dit moment kunt spelen. Dit spel is niet alleen al heel la...