Hjemmeside » hvordan » Hva er ASLR, og hvordan holder datamaskinen din trygg?

    Hva er ASLR, og hvordan holder datamaskinen din trygg?

    Address Space Layout Randomization (ASLR) er en sikkerhetsteknikk som brukes i operativsystemer, som først ble implementert i 2001. Den nåværende versjonen av alle de viktigste operativsystemene (iOS, Android, Windows, MacOS og Linux) har ASLR-beskyttelse. Men i den siste uken er det funnet en ny metode for å omgå ASLR. Så burde du være bekymret?

    For de som ikke har en lav programmeringsbakgrunn, kan ASLR være forvirrende. For å forstå det må du først forstå det virtuelle minnet.

    Hva er virtuelt minne?

    Virtual Memory er en minnehåndteringsteknikk med mange fordeler, men det ble først og fremst opprettet for å gjøre programmeringen enklere. Tenk deg at du har Google Chrome, Microsoft Word og flere andre programmer åpne på en datamaskin med 4 GB RAM. Som helhet bruker programmene på denne datamaskinen mye mer enn 4 GB RAM. Men ikke alle programmene vil være aktive til enhver tid, eller trenger samtidig tilgang til RAM.

    Operativsystemet tildeler biter av minne til programmer som kalles sider. Hvis det ikke er nok RAM til å lagre alle sidene samtidig, lagres sidene som sannsynligvis er nødvendig, på den langsommere (men mer romslige) harddisken. Når de lagrede sidene trengs, bytter de mellomrom med mindre nødvendige sider i øyeblikket i RAM. Denne prosessen kalles personsøking, og låner navnet til pagefile.sys-filen på Windows.

    Virtuelt minne gjør det enklere for programmer å administrere sitt eget minne, og gjør dem også mer sikre. Programmer trenger ikke å bekymre seg om hvor andre programmer lagrer data, eller hvor mye RAM som er igjen. De kan bare spørre operativsystemet for ekstra minne (eller returnere ubrukt minne) etter behov. Alt programmet ser er en enkelt kontinuerlig del av minneadresser for eksklusiv bruk, kalt virtuelle adresser. Programmet har ikke lov til å se på et annet programs minne.

    Når et program trenger tilgang til minne, gir operativsystemet en virtuell adresse. Operativsystemet kontakter CPUs minnehåndteringsenhet (MMU). MMU oversetter mellom virtuelle og fysiske adresser, og returnerer den informasjonen til operativsystemet. På noe tidspunkt går programmet ikke direkte sammen med RAM.

    Hva er ASLR?

    Adresseplassering Randomisering (ASLR) er primært brukt til å beskytte mot overfall angrep på buffer. I en bufferoverflyt, gir angriperne en funksjon så mye søppeldata som det kan håndtere, etterfulgt av en ondsinnet nyttelast. Nyttelastet vil overskrive data programmet har til hensikt å få tilgang til. Instruksjoner for å hoppe til et annet punkt i koden er en felles nyttelast. Den berømte JailbreakM-metoden for jailbreaking iOS 4, for eksempel, brukte et bufferoverløbsangrep, og Apple ble bedt om å legge til ASLR i iOS 4.3.

    Bufferoverløp krever at en angriper vet hvor hver del av programmet er plassert i minnet. Å regne ut dette er vanligvis en vanskelig prøveprosess. Etter å ha bestemt seg for det, må de lage en nyttelast og finne et passende sted å injisere det. Hvis angriperen ikke vet hvor målkoden er plassert, kan det være vanskelig eller umulig å utnytte det.

    ASLR fungerer sammen med virtuell minnehåndtering for å randomisere plasseringen av ulike deler av programmet i minnet. Hver gang programmet kjøres, flyttes komponenter (inkludert stakken, bunken og bibliotekene) til en annen adresse i virtuelt minne. Attackers kan ikke lenger lære hvor målet deres er gjennom prøve og feil, fordi adressen vil være annerledes hver gang. Generelt må applikasjoner kompileres med ASLR-støtte, men dette blir standard, og er til og med nødvendig på Android 5.0 og senere.

    Så beskytter ASLR deg fortsatt?

    I fjor presenterte forskere fra SUNY Binghamton og University of California, Riverside, et dokument som heter Jump Over ASLR: Attacking Branch Predictors for å bypass ASLR. Papiret beskriver en måte å angripe Branch Target Buffer (BTB) på. BTB er en del av prosessoren som øker hvis uttalelser ved å forutsi utfallet. Ved hjelp av forfatterens metode, er det mulig å finne steder av kjente greninstruksjoner i et løpende program. Angrepet i spørsmålet ble utført på en Linux-maskin med en Intel Haswell-prosessor (først utgitt i 2013), men kunne sannsynligvis brukes på ethvert moderne operativsystem og prosessor.

    Når det er sagt, bør du ikke nødvendigvis fortvile. Papiret ga noen måter som maskinvare- og operativsystemutviklere kan redusere denne trusselen. Nyere, fine korn ASLR teknikker vil kreve mer innsats fra angriperen, og økning av mengden entropi (tilfeldighet) kan gjøre Jump Over-angrepet umulig. Mest sannsynlig vil nyere operativsystemer og prosessorer være immun mot dette angrepet.

    Så hva er igjen for du å gjøre? Hopp over bypass er ny, og har ennå ikke blitt oppdaget i naturen. Når angripere utnytter det, vil feilen øke den potensielle skaden som en angriper kan forårsake på enheten. Dette nivået av tilgang er ikke enestående; Microsoft og Apple implementerte bare ASLR i operativsystemene som ble utgitt 2007 og senere. Selv om denne typen angrep blir vanlig, vil du ikke være noe verre enn du var tilbake i dagene i Windows XP.

    Husk at angripere fortsatt trenger å få sin kode på enheten for å gjøre noen skade. Denne feilen gir dem ikke noen ekstra måter å infisere deg på. Som alltid bør du følge sikkerhetspraksis for sikkerhet. Bruk antivirus, hold deg unna sketchy nettsteder og programmer, og hold programvaren oppdatert. Ved å følge disse trinnene og holde skadelige skuespillere av datamaskinen, blir du så trygg som du noen gang har vært.

    Bildekreditt: Steve / Flickr