DLL-kapning av sårbarhetsattacker, förebyggande och upptäckt

DLL står för Dynamic Link Libraries och är externa delar av applikationer som körs på Windows eller något annat operativsystem. De flesta applikationer är inte kompletta i sig och lagrar kod i olika filer. Om det finns ett behov av koden laddas den relaterade filen in i minnet och används. Detta minskar storleken på programfilen samtidigt som användningen av RAM -minne optimeras . Den här artikeln förklarar vad som är DLL-kapning(DLL Hijacking) och hur man upptäcker och förhindrar det.

Vad är DLL -filer(Files) eller dynamiska länkbibliotek(Dynamic Link Libraries)

DLL-kapning

DLL- filer är Dynamic Link Libraries och som framgår av namnet är de tillägg till olika applikationer. Alla applikationer vi använder får eller kanske inte använder vissa koder. Sådana koder lagras i olika filer och anropas eller laddas i RAM endast när den relaterade koden krävs. Således sparar den en applikationsfil från att bli för stor och för att förhindra att applikationen stör resurserna.

Sökvägen för DLL- filer ställs in av Windows operativsystem. Sökvägen ställs in med hjälp av Global Environmental Variables . Som standard, om ett program begär en DLL -fil, tittar operativsystemet in i samma mapp som programmet är lagrat i. Om den inte hittas där, går den till andra mappar enligt de globala variablerna. Det finns prioriteringar kopplade till sökvägar och det hjälper Windows att avgöra vilka mappar som ska leta efter DLL-filerna(DLLs) . Det är här DLL- kapningen kommer in.

Vad är DLL-kapning

Eftersom DLL-filer(DLLs) är tillägg och nödvändiga för att använda nästan alla applikationer på dina maskiner, finns de på datorn i olika mappar enligt beskrivningen. Om den ursprungliga DLL -filen ersätts med en falsk DLL -fil som innehåller skadlig kod, kallas den DLL Hijacking .

Som nämnts tidigare finns det prioriteringar för var operativsystemet letar efter DLL- filer. Först(First) tittar den in i samma mapp som applikationsmappen och söker sedan, baserat på de prioriteringar som ställts in av operativsystemets miljövariabler. Så om en good.dll-fil finns i mappen SysWOW64 och någon placerar en bad.dll i en mapp som har högre prioritet jämfört med mappen SysWOW64 , kommer operativsystemet att använda filen bad.dll, eftersom den har samma namn som DLL -filen. begärt av ansökan. Väl i RAM kan den köra den skadliga koden som finns i filen och kan äventyra din dator eller ditt nätverk.

Hur man upptäcker DLL-kapning

Den enklaste metoden att upptäcka och förhindra DLL -kapning är att använda tredjepartsverktyg. Det finns några bra gratisverktyg 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 det stöder endast 32-bitars applikationer. Du kan installera det på din dator och skanna alla dina Windows-applikationer för att se vad alla applikationer är sårbara för DLL- kapning. Gränssnittet är enkelt och självförklarande. Den enda nackdelen med denna applikation är att du inte kan skanna 64-bitars applikationer.

Ett annat program, för att upptäcka DLL - kapning,  DLL_HIJACK_DETECT, är tillgängligt via GitHub . Detta program kontrollerar applikationer för att se om någon av dem är sårbara 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-bitars respektive 64-bitars applikationer.

Det bör noteras att ovanstående program bara skannar applikationerna på Windows - plattformen för sårbarheter och faktiskt inte förhindrar kapning av DLL- filer.

Hur man förhindrar DLL-kapning

Problemet bör åtgärdas av programmerarna i första hand eftersom det inte finns mycket du kan göra förutom att förbättra dina säkerhetssystem. Om programmerare istället för en relativ sökväg börjar använda en absolut sökväg, kommer sårbarheten att minska. När du läser den absoluta sökvägen, kommer Windows eller något annat operativsystem inte att bero på systemvariabler för sökväg och kommer att gå direkt till den avsedda DLL -filen , vilket avvisar chanserna att ladda DLL med samma namn i en sökväg med högre prioritet. Den här metoden är inte heller felsäker eftersom om systemet äventyras och cyberbrottslingarna känner till den exakta sökvägen till DLL kommer de att ersätta den ursprungliga DLL :n med den falska DLL :n(DLL). Det skulle vara att skriva över filen så att den ursprungliga DLL -filen ändras till skadlig kod. Men återigen, cyberbrottslingen kommer att behöva veta den exakta absoluta sökvägen som nämns i applikationen som kräver DLL . Processen är tuff för cyberbrottslingar och kan därför räknas med.

För att komma 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(secure your Windows system) . Använd en bra brandvägg(firewall) . Om möjligt, använd en hårdvarubrandvägg eller slå på routerns brandvägg. Använd bra intrångsdetekteringssystem så att du vet om någon försöker leka med din dator.

Om du gillar att felsöka datorer kan du också göra följande för att höja din säkerhet:

  1. Inaktivera DLL - laddning från fjärrnätverksresurser
  2. Inaktivera laddning av DLL - filer från WebDAV
  3. Inaktivera WebClient- tjänsten helt eller ställ in den på manuell
  4. Blockera (Block)TCP- portarna 445 och 139 eftersom de används mest för att kompromissa med datorer
  5. Installera de senaste uppdateringarna av operativsystemet och säkerhetsprogramvaran.

Microsoft har släppt ett verktyg för att blockera DLL - laddningsattacker. Detta verktyg minskar risken för DLL- kapningsattacker genom att förhindra applikationer från att ladda kod från DLL - filer på ett osäkert sätt.

Om du vill lägga till något till artikeln, vänligen kommentera nedan.(If you would like to add anything to the article, please comment below.)



About the author

Jag är en mjukvaruingenjör med erfarenhet av både Chrome och spelapplikationer. Jag har jobbat med lösningar för webbläsaren Google Chrome de senaste 4 åren och har även jobbat med spel för flera olika plattformar. Mina kunskaper ligger i att designa, testa och hantera mjukvaruprojekt. Utöver mitt arbete som mjukvaruingenjör har jag även erfarenhet av sekretess, användarkonton och familjesäkerhetsfrågor.



Related posts