Säkerhetsproblem för DLL-kapning, förebyggande och upptäckt
DLL står för dynamiska länkbibliotek och är externa delar av program som körs på Windows eller något annat operativsystem. De flesta applikationer är inte fullständiga i sig och lagras i olika filer. Om det behövs koden laddas den relaterade filen i minnet och används. Detta minskar applikationsfilens storlek samtidigt som man optimerar användningen av RAM. Denna artikel förklarar vad som är DLL-kapning och hur man upptäcker och förhindrar det.
Vad är DLL-filer eller bibliotek med dynamisk länk?
DLL-filer är dynamiska länkbibliotek och som framgår av namnet, är tillägg av olika applikationer. Alla tillämpningar som vi använder kan eller kanske inte använda vissa koder. Sådana koder lagras i olika filer och påkallas eller laddas endast till RAM när den relaterade koden krävs. Sålunda sparar det en applikationsfil från att bli för stor och för att förhindra att resursen svängs av applikationen.
Banan för DLL-filer ställs in av operativsystemet Windows. Banan är inställd med Global Environmental Variables. Som standard, om en applikation begär en DLL-fil, ser operativsystemet ut i samma mapp som programmet lagras. Om den inte hittas finns den till andra mappar enligt de globala variablerna. Det finns prioriteringar kopplade till sökvägar och det hjälper Windows att bestämma vilka mappar som ska leta efter DLL: erna. Det här är där DLL-kapringen kommer in.
Vad är DLL-kapring
Eftersom DLL-filer är tillägg och nödvändiga för att använda nästan alla program på dina maskiner, är de närvarande på datorn i olika mappar som förklaras. Om den ursprungliga DLL-filen ersätts med en falsk DLL-fil som innehåller skadlig kod, är den känd som DLL-kapning.
Som tidigare nämnts finns det prioriteringar om var operativsystemet söker efter DLL-filer. Först ser det ut i samma mapp som applikationsmappen och söker sedan, baserat på prioriteringarna som fastställs av miljövariablerna i operativsystemet. Således om en good.dll-fil finns i SysWOW64-mappen och någon placerar en bad.dll i en mapp som har högre prioritet jämfört med SysWOW64-mappen, kommer operativsystemet att använda filen bad.dll, eftersom den har samma namn som DLL-filen begärt av ansökan. En gång i RAM kan den köra den skadliga kod som finns i filen och kan äventyra din dator eller nätverk.
Så här upptäcker du DLL-kapning
Den enklaste metoden för att upptäcka och förhindra DLL-kapning är att använda verktyg från tredje part. Det finns några bra gratis verktyg tillgängliga på marknaden som hjälper till att upptäcka ett DLL-hackförsök och förhindra det.
Ett sådant program är DLL Hijack Auditor men stöder endast 32-bitars applikationer. Du kan installera den på din dator och skanna alla dina Windows-program för att se vad alla program är sårbara för DLL-kapning. Gränssnittet är enkelt och självförklarande. Den enda nackdelen med den här applikationen är att du inte kan skanna 64-bitars applikationer.
Ett annat program, för att upptäcka DLL-kapning, DLL_HIJACK_DETECT, är tillgänglig via GitHub. Detta program kontrollerar program för att se om någon av dem är sårbar för DLL-kapning. Om så är fallet informerar programmet användaren. Applikationen har två versioner - x86 och x64 så att du kan använda var och en för att skanna både 32 bitar och 64 bitars applikationer.Det bör noteras att ovanstående program bara skannar programmen på Windows-plattformen för sårbarheter och inte faktiskt förhindrar kapning av DLL-filer.
Hur förhindra DLL-kapning
Frågan bör hanteras av programmerarna i första hand eftersom det inte finns mycket du kan göra förutom att sätta upp dina säkerhetssystem. Om, istället för en relativ sökväg, programmerare börjar använda en absolut sökväg, kommer sårbarheten att minskas. Om du läser den absoluta sökvägen, kommer Windows eller något annat operativsystem inte att bero på systemvariablerna för sökvägen och kommer att gå rakt på den avsedda DLL-enheten och därigenom avvisa chanserna att ladda samma DLL-namn i en högre prioritetsväg. Den här metoden är inte felsäker eftersom om systemet kompromissas och cyberkriminella känner till den exakta sökvägen för DLL, kommer de att ersätta den ursprungliga DLL med den falska DLL. Det skulle skriva över filen så att den ursprungliga DLL-filen ändras till skadlig kod. Men igen, den cybercriminal måste veta exakt den absoluta vägen som nämns i programmet som kräver DLL. Processen är hård för cyberkriminella och kan därmed räknas.
Kommer tillbaka till vad du kan göra, försök bara att skala upp dina säkerhetssystem för att bättre säkra ditt Windows-system. Använd en bra brandvägg. Om det är möjligt, använd en hårdvarubrandväg eller sätt på routerns brandvägg. Använd bra system för intrångsdetektering så att du vet om någon försöker spela med datorn.
Om du befinner dig i felsökningsdatorer kan du också göra följande för att öka säkerheten:
- Inaktivera DLL-laddning från fjärrnätverksandelar
- Inaktivera laddning av DLL-filer från WebDAV
- Inaktivera WebClient-tjänsten helt eller sätt den till manuellt
- Blockera TCP-portarna 445 och 139 eftersom de används mest för att kompromissa med datorer
- Installera de senaste uppdateringarna till operativsystemet och säkerhetsprogrammet.
Microsoft har släppt ett verktyg för att blockera DLL-laddningshackningsattacker. Detta verktyg minimerar risken för DLL-kapningsattacker genom att förhindra applikationer från otryggt laddningskod från DLL-filer.
Om du vill lägga till något till artikeln, vänligen kommentera nedan.