15Sep

Kaj je ASLR in kako ohranja vaš računalnik varen?

aslr_cpu

Nasumitvena razmestitev naslova( ASLR) je varnostna tehnika, ki se uporablja v operacijskih sistemih, prvič izvedena leta 2001. Trenutne različice vseh glavnih operacijskih sistemov( iOS, Android, Windows, MacOS in Linux) vsebujejo zaščito ASLR.Toda v zadnjem tednu je bila najdena nova metoda zaobiti ASLR.Torej, bi vas morala skrbeti?

Za tiste brez nizkega nivoja programskega ozadja je ASLR lahko zmeden. Da bi to razumeli, morate najprej razumeti navidezni pomnilnik.

Kaj je navidezni pomnilnik?

Virtual Memory je tehnika za upravljanje pomnilnika z veliko prednosti, vendar je bila prvotno ustvarjena, da bi olajšala programiranje. Predstavljajte si, da imate v računalniku s 4 GB pomnilnika nameščen Google Chrome, Microsoft Word in več drugih programov. Kot celota programi na tem računalniku uporabljajo veliko več kot 4 GB RAM-a. Vendar pa vsi programi ne bodo vedno aktivni ali potrebujejo hkraten dostop do RAM-a.

Operacijski sistem namesti bone pomnilnika v programe, imenovane

strani .Če ni dovolj RAM-a za shranjevanje vseh strani hkrati, bodo najverjetneje potrebne strani shranjene na počasnejšem( a bolj prostornem) trdem disku. Ko so shranjene strani potrebne, bodo preklopili presledke z manj potrebnimi stranmi, ki so trenutno v RAM-u. Ta postopek se imenuje paging, in njegovo ime daje v datoteko pagefile.sys v sistemu Windows.

Virtualni pomnilnik olajša programe za upravljanje lastnega pomnilnika in jih naredi bolj varen. Programom ni treba skrbeti, kje ostali programi shranjujejo podatke ali koliko RAM-a ostane. Samo operacijski sistem lahko zahtevajo dodaten pomnilnik( ali vrnejo neuporabljen pomnilnik), kot je potrebno. Celoten program vidi enoten kontinuirni del pomnilniških naslovov za svojo izključno uporabo, imenovan virtualni naslovi. Programu ni dovoljeno gledati na pomnilnik drugega programa.

Ko program potrebuje dostop do pomnilnika, daje operacijski sistem navidezni naslov. Operacijski sistem stopi v stik z enoto za upravljanje pomnilnika CPU( MMU).MMU prevaja med navideznimi in fizičnimi naslovi, vrne te podatke v operacijski sistem. V nobenem trenutku program neposredno ne deluje z RAM-om.

Kaj je ASLR?

Naslavljanje prostorskih postavitev( ASLR) se uporablja predvsem za zaščito pred napadi prekrivanja puferja. V prevelikem medpomnilniku napadalci hranijo funkcijo toliko neželenih podatkov, kot jih lahko obvlada, sledi zlonamerna korist. Obremenitev bo prepisala podatke, do katerih namerava dostopati program. Navodila za skok na drugo točko kode so skupna korist. Znani JailbreakMe metoda jailbreaking iOS 4, na primer, je uporabil preusmeritveni napad, zato Apple je dodal ASLR v iOS 4.3.

Overflow ob bufferu zahteva, da napadalec ve, kje je vsak del programa v pomnilniku. To je navadno težak proces poskusov in napak. Po določitvi tega morajo nositi tovor in najti primeren kraj za injiciranje.Če napadalec ne ve, kje je ciljna koda, ga je težko ali nemogoče izrabiti.

ASLR deluje skupaj z navideznim upravljanjem pomnilnika, da randomizira lokacije različnih delov programa v pomnilniku. Vsakič, ko se program zažene, so komponente( vključno s kupom, kupom in knjižnicami) premaknjene na drug naslov v navideznem pomnilniku. Napadalci se ne morejo več naučiti, kje je njihov cilj skozi poskus in napako, ker bo naslov vsakič drugačen. Na splošno je treba programe zbirati z ASLR podporo, vendar to postaja privzeto, in je celo potrebno za Android 5.0 in novejše.

Torej Ali vas ASLR še vedno ščiti?

Raziskovalci iz SUNY Binghamton in Kalifornijske univerze v Riversideju so v torek predstavili članek, ki se imenuje Jump Over ASLR: Napadalci pred napadalci, ki prehajajo v ASLR.V prispevku je opisan način napada napadalnega bančnega podružnice( BTB).BTB je del procesorja, ki pospeši, če izjave napovedujejo izid. Z metodo avtorjev je mogoče določiti lokacije znanih podružničnih navodil v tekočem programu. Zadevni napad je bil izveden na napravi Linux z Intel Haswellovim procesorjem( prvič objavljen leta 2013), vendar bi se verjetno lahko uporabljal za vsak sodoben operacijski sistem in procesor.

Torej, ne bi smeli nujno obupati.Članek ponuja nekaj načinov, da lahko razvijalci strojne opreme in operacijskega sistema ublažijo to grožnjo. Novejše, fino zrnate tehnike ASLR bi zahtevale več napora pri napadalcu in povečanje količine entropije( naključnost) lahko naredi Jump Over napad neizvedljiv. Najverjetneje bodo novejši operacijski sistemi in procesorji imuni na ta napad.

Torej, kaj ostane za , ki ga naredi? Prekrivna skakalnica je nova in še ni bila vidna v divjini. Ko jo napadalci izkoristijo, bo napaka povečala potencialno škodo, ki jo lahko povzroči napadalec na vaši napravi. Ta raven dostopa ni brez primere;Microsoft in Apple sta uvedla le ASLR v svojih operacijskih sistemih, objavljenih leta 2007 in kasneje. Tudi če ta slog napada postane običajen, vam ne bo slabše, kot ste bili v dnevih operacijskega sistema Windows XP.

Upoštevajte, da morajo napadalci še vedno dobiti kodo v napravi in ​​storiti kakršno koli škodo. Ta napaka jim ne daje nobenih dodatnih načinov za okužbo. Kot vedno, morate upoštevati najboljše prakse varnosti. Uporabite protivirusni program, se držite proč od spletnih spletnih strani in programov ter posodobite programsko opremo.Če sledite tem korakom in hranite zlonamerne akterje iz računalnika, boste tako varni, kot ste bili kdaj prej.

Image Credit: Steve / Flickr