Úvodná » ako » Čo je ASLR a ako udržuje váš počítač bezpečný?

    Čo je ASLR a ako udržuje váš počítač bezpečný?

    Usporiadanie náhodného rozloženia rozmiestnenia adresy (ASLR) je bezpečnostná technika používaná v operačných systémoch, ktorá bola prvýkrát 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, mali by ste sa obávať?

    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 technika správy pamäte s mnohými výhodami, ale bola vytvorená predovšetkým na uľahčenie programovania. Predstavte si, že máte v počítači s prehliadačom RAM 4 GB otvorený prehliadač Google Chrome, program Microsoft Word a niekoľko ďalších programov. Programy v tomto počítači ako celok využívajú oveľa viac ako 4 GB pamäte RAM. Avšak nie všetky programy budú vždy aktívne alebo potrebujú súčasný prístup k tejto pamäti RAM.

    Operačný systém prideľuje kazety pamäte programom nazvaným stránky. 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 zostávajú RAM. 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 do pamäte, poskytuje operačný systém virtuálnu adresu. Operačný systém je v kontakte 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 komunikuje s pamäťou RAM.

    Čo je ASLR?

    Usporiadanie náhodného usporiadania rozmiestnenia adries (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ť, čo je následkom škodlivého užitočného zaťaženia. Užitočné zaťaženie 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. Zisťovanie toho je zvyčajne náročný proces skúšok a omylov. Po tom, ako to určia, musia vynaložiť užitočné zaťaženie a nájsť vhodné miesto na injekciu. Ak útočník nevie, kde sa nachádza cieľový kód, môže byť ťažké alebo nemožné ho využiť.

    ASLR spolupracuje s virtuálnou správou 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ž nemôžu naučiť, kde sú ich ciele prostredníctvom skúšok a chýb, pretože adresa bude vždy iná. Vo všeobecnosti je potrebné kompilovať aplikácie 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 ASLR stále chráni vás?

    Minulý utorok, výskumníci z SUNY Binghamton a Kalifornskej univerzity, Riverside, predstavili dokument nazvaný Jump Over ASLR: Útočiaci predkovia pobočiek na vynechanie ASLR. Tento dokument podrobne popisuje spôsob napadnutia vyrovnávacej pamäte pobočiek (BTB). BTB je súčasťou procesora, ktorý urýchľuje, či vyhlásenie predpovedá výsledok. Pomocou metódy autorov je možné v bežiacom programe určiť miesta známych pobočkových pokynov. Dotknutý útok bol vykonaný na stroji Linux s procesorom Intel Haswell (prvýkrát vydaný v roku 2013), ale pravdepodobne by sa mohol použiť 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 techniky ASLR s jemným zrnom 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 vy robiť? Obchádzka cez skok je nová a zatiaľ sa nestala v divočine. 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 stane samozrejmý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 neumožňuje žiadne ďalšie spôsoby infikovania. Ako vždy, mali by ste dodržiavať osvedčené postupy 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ť zlomyseľných hercov mimo vášho počítača, budete tak bezpeční, ako ste kedy boli.

    Obrazový kredit: Steve / Flickr