Mi az ASLR, és hogyan védi a számítógépet?
Az Address Space Layout Randomization (ASLR) az operációs rendszerekben alkalmazott biztonsági technika, amelyet először 2001-ben valósítottak meg. A főbb operációs rendszerek (iOS, Android, Windows, MacOS és Linux) jelenlegi verziói ASLR védelmet nyújtanak. Az elmúlt héten azonban új módszert találtak az ASLR megkerülésére. Szóval, aggódjon?
Azok számára, akiknek nincs alacsony szintű programozási háttere, az ASLR zavaró lehet. Ennek megértéséhez először meg kell értenie a virtuális memóriát.
Mi a virtuális memória?
A virtuális memória sokféle előnyös memóriakezelési technika, de elsősorban a programozás megkönnyítésére készült. Képzeld el, hogy van egy Google Chrome, a Microsoft Word és számos más program, amely 4 GB RAM-mal rendelkezik a számítógépen. Összességében a számítógépen futó programok több mint 4 GB RAM-ot használnak. Azonban nem minden program lesz aktív, vagy szükség van egyidejű hozzáférésre.
Az operációs rendszer memóriákat oszt meg a hívott programokhoz oldalak. Ha nincs elegendő RAM az összes oldal egyszerre történő tárolására, akkor a legkevésbé valószínűsíthető oldalak a lassabb (de tágasabb) merevlemezen tárolódnak. Amikor a tárolt oldalakra szükség van, a RAM-ban jelenleg kevésbé szükséges oldalakkal váltanak helyet. Ezt a folyamatot személyhívónak nevezik, és a nevét a pagefile.sys fájlba helyezi a Windows rendszeren.
A virtuális memória megkönnyíti a programok számára a saját memória kezelését, és biztonságosabbá teszi őket. A programoknak nem kell aggódniuk arról, hogy hol vannak más programok adatai, vagy hogy mennyi RAM van. Csak szükség esetén kérhetik az operációs rendszert további memóriáról (vagy vissza nem használt memóriáról). Az összes program egyetlen folytonos darabja a memóriacímeknek az exkluzív használatra, amit virtuális címeknek hívnak. A program nem nézhet más program memóriájába.
Amikor egy programnak memóriara van szüksége, virtuális címet ad az operációs rendszernek. Az operációs rendszer kapcsolatba lép a CPU memóriakezelő egységével (MMU). Az MMU a virtuális és a fizikai címek között fordítja át az információt az operációs rendszerhez. A program semmilyen módon nem lép kapcsolatba a RAM-mal.
Mi az ASLR?
A címtartomány elrendezésének randomizálása (ASLR) elsősorban a puffer túlcsordulási támadások elleni védelemre szolgál. Egy puffer túlcsordulásnál a támadók olyan sok szemétadatot szolgáltatnak, amennyit csak tudnak kezelni, amit egy rosszindulatú hasznos terhelés követ. A hasznos terhelés felülírja a program által elérni kívánt adatokat. A kód másik pontjára ugráshoz használt utasítások általánosan hasznosak. A híres JailbreakMe módszer az iOS 4 ésilbreaking használatakor például puffer túlcsordulási támadást használt, ami arra késztette az Apple-t, hogy adjon hozzá ASLR-t az iOS 4.3-hoz.
A puffer túlcsordulás megköveteli, hogy a támadó tudja, hol található a program minden része a memóriában. Ennek kiszámítása általában nehéz próbálkozás és hiba. Miután meghatároztuk, hogy meg kell adniuk egy hasznos rakományt, és találniuk kell egy megfelelő helyet az injekció beadására. Ha a támadó nem tudja, hol található a célkód, nehéz vagy lehetetlen kihasználni.
Az ASLR a virtuális memóriakezelés mellett működik, hogy a program különböző részeinek helyét randomizálja a memóriában. Minden alkalommal, amikor a program fut, a komponensek (beleértve a verem, a halom és a könyvtárakat) egy másik címre kerülnek a virtuális memóriába. A támadók már nem tudják megtudni, hogy a céljuk a próba és a hiba útján történik, mert a cím minden alkalommal más lesz. Általában az alkalmazásokat ASLR-támogatással kell fordítani, de ez az alapértelmezett, és még az Android 5.0-s és újabb verzióiban is szükséges..
Tehát az ASLR még mindig védi Önt?
Tavaly kedden a SUNY Binghamton és a Kaliforniai Egyetem, a Riverside kutatói egy Jump Over ASLR nevű papírt mutattak be: az ASLR elkerülő ágak előjelzői. A papír részletesen ismerteti a Branch Target Buffer (BTB) támadását. A BTB része a processzornak, amely felgyorsítja a kijelentéseket az eredmény előrejelzésével. A szerzők módszerével az ismert ági utasítások helyét lehet meghatározni egy futó programban. A szóban forgó támadást egy Linux gépen végeztük, amelynek Intel Haswell processzora volt (először 2013-ban jelent meg), de valószínűleg bármely modern operációs rendszerre és processzorra alkalmazható..
Ez azt jelenti, hogy nem feltétlenül kétségbe kell vennie. A papír néhány módszert kínál, amellyel a hardver és az operációs rendszerfejlesztők enyhíthetik ezt a veszélyt. Az újabb, finom szemcsés ASLR-technikák több erőfeszítést igényelnek a támadótól, és az entrópia (véletlenszerűség) növelése megteheti a Jump Over támadást. A legvalószínűbb, hogy az újabb operációs rendszerek és a processzorok mentesek lesznek a támadásnak.
Tehát mi maradt Ön csinálni? Az átugrott áthidalás új, és még nem volt észrevehető a vadon. Amikor a támadók kihasználják, a hiba növeli a támadó által a készülékre okozott esetleges károkat. Ez a hozzáférés szintje nem példa nélküli; A Microsoft és az Apple az ASLR-t csak 2007-ben és később kiadott operációs rendszereiben hajtotta végre. Még ha ez a támadási stílus is megszokott, akkor nem lesz rosszabb, mint a Windows XP napjaiban.
Ne feledje, hogy a támadóknak még mindig meg kell kapniuk a kódjukat a készüléken, hogy kárt okozzanak. Ez a hiba nem nyújt további lehetőséget arra, hogy megfertőzze Önt. Mint mindig, kövesse a biztonsági legjobb gyakorlatokat. Használjon víruskereső programot, maradjon távol a vázlatos weboldalaktól és programoktól, és tartsa naprakészen a szoftvert. Az alábbi lépések követésével és a rosszindulatú szereplők megtartásával a számítógépből biztonságban lesz, mint valaha.
Képhitel: Steve / Flickr