Raspoloženje izgleda prostornog prostora (ASLR) je sigurnosna tehnika korištena u operacijskim sustavima, prvo implementirana 2001. godine. Trenutačne verzije svih glavnih operacijskih sustava (iOS, Android, Windows, macOS i Linux) imaju ASLR zaštitu. Ali u proteklom tjednu pronađena je nova metoda zaobilaznog ASLR-a. Dakle, trebao bi biti zabrinut?
Za one koji nemaju nisku razinu programske pozadine, ASLR može biti zbunjujuće. Da biste ga razumjeli, najprije morate shvatiti virtualnu memoriju.
Virtualna memorija je tehnika upravljanja memorijom s mnogim prednostima, no prvenstveno je stvorena kako bi programiranje olakšalo. Zamislite da imate Google Chrome, Microsoft Word i još nekoliko drugih programa otvorenih na računalu s 4 GB RAM-a. U cjelini, programi na ovom računalu koriste mnogo više od 4 GB RAM-a. Međutim, svi programi neće biti aktivni u svakom trenutku ili trebaju istovremeni pristup tom RAM-u.
Operativni sustav dodjeljuje komade memorije programima koji se zovu stranica, Ako nema dovoljno RAM-a za spremanje svih stranica odjednom, najvjerojatnije će biti potrebne stranice na sporijem (ali prostranijem) tvrdom pogonu. Kada su potrebne pohranjene stranice, prebacuju se prostori s manje potrebnim stranicama trenutno u RAM-u. Ovaj se proces zove paging i daje ime u datoteku pagefile.sys na sustavu Windows.
Virtualna memorija olakšava programima upravljanje vlastitom memorijom, a čini ih i sigurnijima. Programi ne trebaju brinuti o tome gdje drugi programi pohranjuju podatke ili koliko je RAM-a ostalo. Oni mogu samo pitati operativni sustav za dodatnu memoriju (ili vratiti neiskorištenu memoriju) prema potrebi. Sve program vidi je jedan kontinuirani komad memorijskih adresa za njenu ekskluzivnu uporabu, nazvanu virtualne adrese. Program ne smije gledati na memoriju drugog programa.
Kada program treba pristupiti memoriji, operativni sustav daje virtualnoj adresi. Operativni sustav kontaktira jedinicu za upravljanje memorijom CPU-a (MMU). MMU prevodi između virtualnih i fizičkih adresa, vraćajući te informacije u operativni sustav. Program ni u kojem trenutku ne reagira izravno s RAM-om.
Randomizacija izgleda prostornog prostora (ASLR) primarno se koristi za zaštitu od napada overflow-a. U overflowu međuspremnika, napadači hrane funkciju koliko god junk podataka onako kako to može podnijeti, nakon čega slijedi zlonamjeran sadržaj. Opterećenje će prebrisati podatke koje program namjerava pristupiti. Upute za skok na drugu točku kodova su uobičajena nosivost. Poznata JailbreakMe metoda jailbreaking iOS 4, na primjer, koristila je buffer overflow napad, potičući Apple da doda ASLR iOS 4.3.
Pufni preljev zahtijeva od napadača da zna gdje se svaki dio programa nalazi u memoriji. To je obično teško proces suđenja i pogreške. Nakon utvrđivanja toga, oni moraju stvoriti teret i naći odgovarajuće mjesto za ubrizgavanje. Ako napadač ne zna gdje se nalazi njegov ciljani kôd, to može biti teško ili nemoguće iskoristiti.
ASLR radi zajedno s virtualnom upravljanjem memorijom za slučajne raspoređivanje lokacija različitih dijelova programa u memoriju. Svaki put kada se program pokrene, komponente (uključujući stog, gomilu i biblioteke) premještaju se na drugu adresu u virtualnu memoriju. Napadači više ne mogu naučiti gdje je njihov cilj kroz suđenje i pogrešku, jer će adresa uvijek biti drugačija. Općenito, aplikacije moraju biti sastavljene ASLR podrškom, ali to postaje zadano, a čak je potrebno i na Androidu 5.0 i novijima.
Prošlog utorka, istraživači SUNY Binghamton i Kalifornijsko sveučilište, Riverside, predstavili su rad pod nazivom '' Skok preko ASLR-a '': Utjecaj predaka filma za zaobići ASLR. U članku je opisan način napada na Podružni ciljni pufer (BTB). BTB je dio procesora koji ubrzava ako izjave predviđaju ishod. Korištenjem metode autora, moguće je odrediti mjesta poznatih podružnica u pokretnom programu. Napadni napad izvršen je na Linux stroju s procesorom Intel Haswell (prvi put objavljen 2013.), no vjerojatno će se primijeniti na bilo koji moderni operacijski sustav i procesor.
To je rekao, ne treba nužno očajavati. Rad je ponudio nekoliko načina kako hardverski i operacijski sustavi mogu ublažiti ovu prijetnju. Novije ASLR tehnike finih zrna zahtijevalo bi više napora od napadača, a povećanje količine entropije (slučajnost) može učiniti Jump Over napad nemogućim. Najvjerojatnije će novi operacijski sustavi i procesori biti imuni na ovaj napad.
Pa što ostaje vas napraviti? Preskočnica je nova, i još nije uočena u divljini. Kada ga napadači iskoriste, mana će povećati potencijalnu štetu koju napadač može uzrokovati na vašem uređaju. Ova razina pristupa nije bez presedana; Microsoft i Apple implementirali su ASLR samo u svojim operativnim sustavima objavljenim 2007. i kasnije. Čak i ako taj napad napada postaje uobičajen, nećete biti lošiji nego što ste se vratili u danima sustava Windows XP.
Imajte na umu da napadači moraju i dalje morati unijeti kôd na vašem uređaju kako bi učinili bilo kakvu štetu. Ovaj nedostatak ne pruža im dodatne načine za zarazu. Kao i uvijek, trebali biste slijediti najbolje sigurnosne postupke. Koristite protuvirusni program, držite se podalje od skrivenih web stranica i programa i održavajte svoj softver ažuriran. Slijedeći ove korake i čuvanje zlonamjernih glumaca s računala, bit ćete sigurni koliko ste ikada bili.
Slikovni kredit: Steve / Flickr