Adresse Space Layout Randomization (ASLR) er en sikkerhetsteknikk som brukes i operativsystemer, som først 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å bør 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.
Virtual Memory er en minnehåndteringsteknikk med mange fordeler, men det ble først og fremst opprettet for å gjøre programmeringen lettere. 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.
Adresseplassering Randomisering (ASLR) brukes primært til å beskytte mot overfall av bufferoverflate. 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 ligger 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 den.
ASLR fungerer sammen med virtuell minnehåndtering for å randomisere plasseringene til 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 krever selv på Android 5.0 og nyere.
Forskere fra SUNY Binghamton og University av California, Riverside, presenterte 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 i spørsmålet ble utført på en Linux-maskin med en Intel Haswell-prosessor (først utgitt i 2013), men kan 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 deg å 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 angriperne fortsatt trenger å få sin kode på enheten for å gjøre 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
Slik bruker du aktivitetsovervåkning på Apple Watch for å spore treningen din
Hvis du eier en ny Apple Watch, kan du likevel bli vant til aktivitetsmonitoren og lure på hva det er sirkler handler om. I dag vil vi forklare hvordan du bruker og konfigurerer Apple Watchs aktivitetsmonitor. Aktivitetsmonitoren er ikke nødvendigvis et nytt konsept. Det er bare Apples versjon av det, og det er heller ikke en dårlig, men det kan ta litt vant til.
Slik lager du en zip-fil med samme navn som en valgt fil
Hvis du bruker komprimerte mapper som er innebygd i Windows for å lage zip-filer, har du kanskje lagt merke til at den lager filen med samme navn som den valgte filen, som blir rart når du velger flere filer. Slik gjør du det riktig navn. Windows skal i utgangspunktet bruke filnavnet for hvilken fil du høyreklikket på, selv når du har valgt flere filer.