15Sep
Randomization Layout Address Space Layout( ASLR) je bezpečnostná technika používaná v operačných systémoch, najskôr implementovaná v roku 2001. Aktuálne verzie všetkých hlavných operačných systémov( iOS, Android, Windows, MacOS a Linux) obsahujú ochranu ASLR.Ale minulý týždeň sa našla nová metóda obchádzania ASLR.Takže, ak máte strach?
Pre tých, ktorí nemajú pozadie programovania na nízkej úrovni, môže byť ASLR mätúce. Aby ste to pochopili, musíte najprv porozumieť virtuálnej pamäti.
Čo je virtuálna pamäť?Virtuálna pamäť
je technológiou správy pamäte s mnohými výhodami, ale bola vytvorená predovšetkým na uľahčenie programovania. Predstavte si, že v počítači s 4 GB pamäte RAM máte otvorené prehliadače Google Chrome, Microsoft Word a niekoľko ďalších programov. Programy na tomto počítači ako celok využívajú oveľa viac ako 4 GB RAM.Avšak nie všetky programy budú aktívne po celý čas, alebo potrebujú súčasný prístup do tejto pamäte RAM.
Operačný systém prideľuje bloky pamäte programom
.Ak nie je k dispozícii dostatok pamäte RAM na ukladanie všetkých strán naraz, stránky s najmenšou pravdepodobnosťou budú uložené na pomalší( ale priestrannejší) pevný disk. Keď sú uložené uložené stránky, prepínajú sa medzerami s menej potrebnými stránkami, ktoré sú v súčasnosti v pamäti RAM.Tento proces sa nazýva stránkovanie a jeho názov sa zapisuje do súboru pagefile.sys v systéme Windows. Virtuálna pamäťuľahčuje programom spravovať vlastnú pamäť a zvyšuje ich bezpečnosť.Programy sa nemusia obávať, kde iné programy ukladajú údaje, alebo koľko pamäte RAM zostáva. Môžu len požiadať operačný systém o dodatočnú pamäť( alebo vrátiť nepoužitú pamäť) podľa potreby. Celý program vidí jediný nepretržitý kus pamäťových adries pre jeho exkluzívne použitie, tzv. Virtuálne adresy. Program sa nesmie pozerať na pamäť iného programu.
Keď program potrebuje prístup k pamäti, poskytuje operačnému systému virtuálnu adresu. Operačný systém sa skontaktuje s jednotkou správy pamäte procesora( MMU).MMU sa prekladá medzi virtuálnymi a fyzickými adresami a vráti tieto informácie do operačného systému. V žiadnom momente program priamo nereaguje s pamäťou RAM.
Čo je ASLR?
Náhodná rozloženie usporiadania priestorov( ASLR) sa primárne používa na ochranu pred útokmi pretečenia vyrovnávacej pamäte. V pretečeniu vyrovnávacej pamäte, útočníci dávkujú funkciu toľko nevyžiadaných údajov, ako to dokáže spracovať, po ktorom nasleduje škodlivé užitočné zaťaženie. Užitočná záťaž prepíše údaje, ktoré má program v úmysle získať.Pokyny na preskočenie na iné miesto v kóde sú spoločné užitočné zaťaženie. Slávna metóda jailbreakMe útek z väzenia iOS 4 napríklad použila útok pretečenia vyrovnávacej pamäte, čo prinútilo Apple pridať ASLR do iOS 4.3.
Pretečenie vyrovnávacej pamäte vyžaduje, aby útočník vedel, kde je každá časť programu umiestnená v pamäti. Zistenie toho je zvyčajne náročný proces skúšok a chýb. Po tom, ako to určia, musia vynaložiť užitočné zaťaženie a nájsť vhodné miesto na jeho podanie. Ak útočník nevie, kde sa nachádza jeho cieľový kód, môže byť ťažké alebo nemožné ho využiť.
ASLR pracuje vedľa správy virtuálnej pamäte, aby randomizovala umiestnenia rôznych častí programu v pamäti. Zakaždým, keď je program spustený, sú komponenty( vrátane stohu, haldy a knižníc) presunuté do inej adresy vo virtuálnej pamäti.Útočníci sa už nedokážu naučiť, kde sú ich ciele prostredníctvom pokusov a omylov, pretože adresa bude vždy iná.Vo všeobecnosti je potrebné, aby aplikácie boli kompilované s podporou ASLR, ale toto sa stáva predvoleným a je dokonca vyžadované v systémoch Android 5.0 a novších.
Takže vás ASLR stále chráni?
Minulý utorok predstavitelia SUNY Binghamton a Kalifornskej univerzity, Riverside, predstavili dokument nazvaný "Jump Over ASLR: Útočiaci predkovci pobočiek na vynechanie ASLR.Tento dokument popisuje spôsob útoku na vyrovnávaciu pamäť pobočky( BTB).BTB je súčasťou procesora, ktorý urýchľuje, či vyhlásenie predpovedá výsledok. Pomocou metódy autorov je možné určiť miesta známych pobočkových pokynov v bežiacom programe. Dotknutý útok bol vykonaný na systéme Linux s procesorom Intel Haswell( prvýkrát bol vydaný v roku 2013), ale pravdepodobne by sa mohol vzťahovať na akýkoľvek moderný operačný systém a procesor.
To znamená, že by ste nemali nevyhnutne zúfalo. Dokument ponúkol niekoľko spôsobov, ako môžu vývojári hardvéru a operačného systému zmierniť túto hrozbu. Novšie, jemné zrnité techniky ASLR by vyžadovali od útočníka väčšie úsilie a zvýšenie množstva entropie( náhodnosť) môže spôsobiť, že útok Jump Over nie je možný.S najväčšou pravdepodobnosťou budú novšie operačné systémy a procesory odolné voči tomuto útoku.
Takže čo zostalo pre , čo ste urobili ?Skok cez skok je nový a zatiaľ nebol zaznamenaný vo voľnej prírode. Keď to útočníci zneužijú, chyba zvýši potenciálne poškodenie, ktoré môže útočník spôsobiť na vašom zariadení.Táto úroveň prístupu nie je bezprecedentná;Spoločnosti Microsoft a Apple implementovali ASLR iba vo svojich operačných systémoch, ktoré boli vydané v roku 2007 a neskôr. Dokonca aj vtedy, keď sa tento štýl útoku stáva bežným, nebudete horšie, ako ste boli v dňoch Windows XP.
Majte na pamäti, že útočníci stále musia dostať svoj kód do vášho zariadenia, aby uškodili. Táto chyba im neposkytuje žiadne ďalšie spôsoby infikovania. Ako vždy, mali by ste dodržiavať osvedčené postupy v oblasti bezpečnosti. Používajte antivírus, nezdržujte sa od skrytých webových stránok a programov a aktualizujte softvér. Tým, že budete postupovať podľa týchto krokov a udržiavať škodlivých hercov mimo vášho počítača, budete tak bezpeční, ako ste kedy boli.
Image Credit: Steve / Flickr