Windows

Sikkerhetsproblem i DLL-kapasitet Angrep, forebygging og deteksjon

TG17: Lecture - NSM NorCERT presenterer "Temmelig Hemmelig"

TG17: Lecture - NSM NorCERT presenterer "Temmelig Hemmelig"

Innholdsfortegnelse:

Anonim

DLL står for dynamiske koblingsbiblioteker og er eksterne deler av applikasjoner som kjører på Windows eller andre operativsystemer. De fleste applikasjoner er ikke ferdige i seg selv og lagre kode i forskjellige filer. Hvis det er behov for koden, lastes den tilhørende filen i minnet og brukes. Dette reduserer applikasjonsfilstørrelsen mens du optimaliserer bruken av RAM. Denne artikkelen forklarer hva som er DLL-kapring og hvordan du oppdager og forhindrer det.

Hva er DLL-filer eller dynamiske koblingsbiblioteker

DLL-filer er dynamiske koblingsbiblioteker og det fremgår av navnet, er utvidelser av forskjellige applikasjoner. Eventuelle programmer vi bruker kan eller ikke kan bruke bestemte koder. Slike koder lagres i forskjellige filer og påberopes eller lastes bare inn i RAM når den tilhørende koden er nødvendig. Dermed sparer den en applikasjonsfil fra å bli for stor og for å forhindre at ressursen smelter av applikasjonen.

Stien for DLL-filer er satt av Windows-operativsystemet. Banen er satt med Global Environmental Variables. Som standard, hvis et program ber om en DLL-fil, ser operativsystemet ut i samme mappe der applikasjonen er lagret. Hvis det ikke finnes der, går det til andre mapper som angitt av de globale variablene. Det er prioriteringer knyttet til stier, og det hjelper Windows med å bestemme hvilke mapper som skal lete etter DLL-er. Dette er hvor DLL-kapringen kommer inn.

Hva er DLL-kapring

Siden DLL er utvidelser og er nødvendig for å bruke nesten alle programmer på maskinene dine, er de til stede på datamaskinen i forskjellige mapper som forklart. Hvis den opprinnelige DLL-filen er erstattet med en falsk DLL-fil som inneholder skadelig kode, kalles den DLL Hijacking.

Som nevnt tidligere, er det prioriteringer hvor operativsystemet ser etter DLL-filer. Først ser det inn i samme mappe som applikasjonsmappen og går deretter etter, basert på prioriteringene som er satt av miljøvariabler av operativsystemet. Dermed hvis en good.dll-fil er i SysWOW64-mappen, og noen plasserer en bad.dll i en mappe som har høyere prioritet i forhold til SysWOW64-mappen, vil operativsystemet bruke filen bad.dll, da den har samme navn som DLL-filen. forespurt av søknaden. En gang i RAM kan den utføre den ondsinnede koden som er inneholdt i filen, og det kan kompromittere datamaskinen eller nettverket.

Slik oppdager du DLL-kapring

Den enkleste metoden for å oppdage og forhindre DLL-kapring er å bruke tredjepartsverktøy. Det er noen gode gratis verktøy tilgjengelig i markedet som hjelper til med å oppdage et DLL-hackforsøk og forhindre det.

Et slikt program er DLL Hijack Auditor, men det støtter bare 32-biters applikasjoner. Du kan installere den på datamaskinen og skanne alle Windows-programmer for å se hva alle applikasjoner er sårbare for DLL-kapring. Grensesnittet er enkelt og selvforklarende. Den eneste ulempen ved denne applikasjonen er at du ikke kan skanne 64-biters applikasjoner.

Et annet program, for å oppdage DLL-kapring, DLL_HIJACK_DETECT, er tilgjengelig via GitHub. Dette programmet sjekker programmer for å se om noen av dem er sårbare for DLL-kapring. Hvis det er, informerer programmet brukeren. Programmet har to versjoner - x86 og x64 slik at du kan bruke hver til å skanne både 32 bit og 64 bit applikasjoner.

Det skal bemerkes at de ovennevnte programmene bare skanner programmene på Windows-plattformen for sårbarheter og egentlig ikke forhindre kapring av DLL-filer.

Slik forhindrer du DLL-kapring

Problemet bør håndteres av programmene i utgangspunktet, da det ikke er mye du kan gjøre unntatt for å bøte opp sikkerhetssystemene dine. Hvis, i stedet for en relativ bane, programmerer begynner å bruke absolutt bane, vil sårbarheten bli redusert. Hvis du leser den absolutte banen, vil Windows eller et annet operativsystem ikke avhenge av systemvariabler for sti og vil gå rett til den påtatte DLL, og dermed avvise sjansene for å laste inn samme navn DLL i en høyere prioritetssti. Også denne metoden er ikke feilsikker fordi hvis systemet er kompromittert, og cyberkriminelle kjenner den eksakte banen til DLL, erstatter de den opprinnelige DLL med den falske DLL. Det ville være å overskrive filen slik at den opprinnelige DLL ble endret til ondsinnet kode. Men igjen, den cybercriminal vil trenge å vite den eksakte absolutt banen nevnt i programmet som krever DLL. Prosessen er tøff for cyberkriminelle og kan derfor regnes med.

Kommer tilbake til hva du kan gjøre, bare prøv å skalere sikkerhetssystemene dine for å bedre sikre ditt Windows-system. Bruk en god brannmur. Hvis det er mulig, bruk en maskinvarebrannmur eller slå på ruteren brannmur. Bruk gode inntrengingsdeteksjonssystemer slik at du vet om noen prøver å leke med datamaskinen.

Hvis du er i feilsøkingsdatamaskiner, kan du også gjøre følgende for å oppnå sikkerhet:

  1. Deaktiver DLL-lasting fra eksterne nettverksaktier
  2. Deaktiver ikke lasting av DLL-filer fra WebDAV
  3. Deaktiver WebClient-tjenesten helt eller sett den til manuell
  4. Blokker TCP-porter 445 og 139 som de brukes mest for å ødelegge datamaskiner
  5. Installer de nyeste oppdateringene til operativsystemet system og sikkerhetsprogramvare.

Microsoft har gitt ut et verktøy for å blokkere DLL-lastkapsler. Dette verktøyet reduserer risikoen for DLL-kapringangrep ved å hindre applikasjoner fra usikker lastingskode fra DLL-filer.

Hvis du vil legge til noe i artikkelen, vennligst kommenter nedenfor.