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 bijbehorende bestand in het geheugen geladen en gebruikt. Dit verkleint de bestandsgrootte van de applicatie terwijl het gebruik van RAM wordt geoptimaliseerd . In dit artikel wordt uitgelegd wat DLL-kaping(DLL Hijacking) is en hoe u dit kunt detecteren en voorkomen.

Wat zijn DLL- bestanden(Files) of Dynamic Link-bibliotheken ?(Dynamic Link Libraries)

DLL-kaping

DLL- bestanden zijn Dynamic Link Libraries en, zoals de naam al aangeeft, zijn extensies van verschillende applicaties. Elke applicatie die we gebruiken, kan al dan niet bepaalde codes 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 bepaald 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 in welke mappen de DLL's moeten worden gezocht . Dit is waar de DLL -kaping binnenkomt.

Wat is DLL-kaping?

Aangezien DLL(DLLs) 's extensies zijn en noodzakelijk 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 dit bekend als DLL-kaping(DLL Hijacking) .

Zoals eerder vermeld, zijn er prioriteiten met betrekking tot waar het besturingssysteem naar DLL - bestanden zoekt. Eerst(First) 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 good.dll-bestand zich in de SysWOW64-(SysWOW64) map bevindt en iemand plaatst een bad.dll in een map met een hogere prioriteit in vergelijking met de SysWOW64- map, dan zal het besturingssysteem het bad.dll-bestand gebruiken, omdat het dezelfde naam heeft als de DLL . gevraagd door de applicatie. 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(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-toepassingen scannen om te zien welke toepassingen kwetsbaar zijn voor DLL - kapingen. 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 dit het geval 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 pad en gaat rechtstreeks naar de beoogde DLL , waardoor de kans wordt uitgesloten dat (DLL)DLL met dezelfde naam in een pad met een hogere prioriteit wordt geladen. Ook deze methode is niet feilloos, want als het systeem wordt 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 oorspronkelijke DLL wordt gewijzigd in kwaadaardige code. Maar nogmaals, de cybercrimineel moet het exacte absolute pad weten dat wordt vermeld in de toepassing die de DLL(DLL) vraagt . Het proces is zwaar voor cybercriminelen en er kan daarom op worden gerekend.

Om terug te komen op wat u kunt doen, probeert u gewoon uw beveiligingssystemen op te schalen om uw Windows-systeem beter te beveiligen(secure your Windows system) . 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(WebDAV)
  3. Schakel de WebClient -service volledig uit of stel deze in op handmatig
  4. Blokkeer(Block) de TCP -poorten 445 en 139 omdat deze het meest worden gebruikt voor compromitterende computers
  5. Installeer de laatste updates voor het besturingssysteem en de beveiligingssoftware.

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

Als u iets aan het artikel wilt toevoegen, kunt u hieronder reageren.(If you would like to add anything to the article, please comment below.)



About the author

Ik ben een computerwetenschapper met meer dan 10 jaar ervaring in softwareontwikkeling en beveiliging. Ik heb een sterke interesse in Firefox-, Chrome- en Xbox-games. Ik ben vooral geïnteresseerd in hoe ik ervoor kan zorgen dat mijn code veilig en efficiënt is.



Related posts