15Sep
-adresse Space Layout Randomization( ASLR) er en sikkerhetsteknikk som brukes i operativsystemer, som ble implementert i 2001. De nåværende versjonene 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 uten programmeringsbakgrunn med lavt nivå, 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 laget 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 en 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 kalt 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 gir navnet sitt 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 det operativsystemet en virtuell adresse. Operativsystemet kontakter CPUs minnehåndteringsenhet( MMU).MMU oversetter mellom virtuelle og fysiske adresser, og returnerer denne informasjonen til operativsystemet. På noe tidspunkt går programmet ikke direkte sammen med RAM.
Hva er ASLR?
-adresse Mellomromlayout Randomization( ASLR) brukes primært til å beskytte mot overfall angrep på buffer. I en bufferoverflyt, gir angriperne en funksjon så mye søppelpost som det kan håndtere, etterfulgt av en ondsinnet nyttelast. Nybelastningen 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øving og feiling, 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?
Siste tirsdag 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 hastigheten hvis uttalelser ved å forutsi utfallet. Ved hjelp av forfatterens metode er det mulig å fastslå steder av kjente greninstruksjoner i et løpende program. Angrepet angrep 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 sett 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.
Vær oppmerksom på at angripere fortsatt må få sin kode på enheten for å gjøre noen skade. Denne feilen gir dem ingen 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 noensinne har vært.
Image Credit: Steve / Flickr