Megdőlt a modern operációs rendszerek egyik legfontosabb védővonala, az ASLR. A modern processzorok memóriavezérlője árulja el az adatok elhelyezkedését. Védelem nincs, böngészőn keresztül is támadható.
Gyakorlatilag irrelevánssá vált a modern operációs rendszerek egyik legfontosabb védővonala, az ASLR. A Vrije Universiteit Amsterdam VUSec csapatának kutatói a héten olyan új támadási lehetőséget mutattak be, amely egyrészt roppant nehezen védhető ki, másrészt roppant könnyen véghezvihető - a processzorok hardveres alapjait kikezdő ASLR Cache (AnC) támadás ugyanis akár böngészőben futó JavaScriptből is véghez vihető.
A közzétett kutatási dokumentum konklúziója dermesztő: "az ASLR alapvetően nem biztonságos a modern processzoros architektúrákon". Az alapvető probléma, hogy a modern mikroarchitektúrák lehetővé teszik az architektúrát ismerő támadó számára, hogy precízen megválasztott memóriaelérés-sorozattal kitalálja a memóriacímeket - mondják a kutatók. "Ennek megfelelően azt javasoljuk, hogy az ASLR-ben többé ne bízzunk, mint a memóriahiba-támadások első védelmi vonalában és a következő védelmi architektúrák tervezésénél ne számoljunk hatásával."
Hardveres para
A problémát a CPU-kon található MMU (memóriavezérlő egység) okozza, amelynek feladata a memória-hierarchia felügyelete, a különböző adatok előtöltése és mozgatása a különböző memóriaszintek között, valamint a gyorsítótárak menedzsmentje. Erre szükség van a modern processzorok hatékony működéséhez, a gyorsítótárak lekapcsolása elképzelhetetlen, a mai gyors CPU-magok adattal táplálása lehetetlenné válna.
A VUSec támadása az MMU viselkedését figyeli, és abból próbálja meg kikövetkeztetni az egyes folyamatok által elfoglalt memóriaterületet, rendkívüli hatékonysággal - még a tökéletes ASLR-implementáció sem védett ellene. Az AnC eljárása előbb az utolsó gyorsítótár-szintet üríti, majd megméri, hogy az MMU hogyan járja be a memórialapot, ezzel megállapítva a lapon a fontosabb területeket, majd az AnC próbálgatással végigpróbálgatja ezeket. Az eredményt az alábbi ábra szemlélteti, a Chrome esetében kicsivel több, mint 40 másodperc alatt sikerült nullázni az entrópiát, vagyis kitalálni a memóriaelhelyezkedést.
A támadás azért is különösen problémás, mert a modern MMU-k alapvető viselkedését aknázza ki és fordítja az ASLR ellen, vagyis egyszerű szoftveres javítással ez nem védhető ki. A cache ugyan lekapcsolható lenne, de ez a fent említett okok miatt akkora teljesítményesést jelentene a modern processzorokon, hogy ez a gyakorlatban nem reális megoldás. A kutatók egyébként eddig 22 különböző mikroarchitektúra MMU-jának viselkedését térképezték fel, a biztosan sebezhető chipek között az Intel 2008 és 2015 között kiadott szinte összes lapkája, az AMD-k, és néhány ARM-os modell is szerepel, a probléma jellegéből adódóan azonban ez a lista valószínűleg még ennél is sokkal-sokkal hosszabb, egyelőre ugyanis nem talált a csapat védett MMU-t.
A koronát pedig az teszi fel a támadás tetejére, hogy nem csak natív kóddal lehetséges a támadás, hanem a sok absztrakciós rétegen keresztül futó JavaScriptből is. A támadás jellege miatt fontos a nagyon pontos időzítés, ehhez pedig szükség van egy jó időmérő függvényre is, a kutatás részeként egy ilyent is fejlesztettek a szakemberek, a korábban a böngészőgyártók által (pont veszélyessége miatt) kiiktatott performance.now() helyére. Az időmérő birtokában megfelelően preparált weboldallal a Chrome és a Firefox is támadható, kód- és verem pointerek is megtalálhatóak.
Azt pedig mondani sem kell, hogy a legegyszerűbb támadási forma pont a JavaScript futtatása böngészőben - az ilyen kódot gyakorlatilag minden rendszer automatikusan ellenségesnek bélyegez és a létező legmagasabb védelem mögött hajlandó futtatni. Azonban még ez a kód is megkapja a jogosultságot ahhoz, hogy a CPU gyorsítótáraival babráljon, ezzel pedig az ASLR védelmét is képes hatékonyan kiiktatni.
Mi az és miért fontos ASLR?
Komoly probléma, ha a memóriában tárolt adatok elrendezése kiszámítható vagy kikövetkeztethető. A támadók ugyanis csak akkor tudnak hatékony memória-alapú (például puffertúlcsordulásos) támadásokat indítani, ha tudják, hogy mely területeket érdemes megcélozni. Ez ellen véd a 2000-es évek közepe óta terjedő Address Space Layout Randomization (ASLR).
Az operációs rendszer szintjén implementált megoldás vigyáz arra, hogy az egyes folyamatok memóriafoglalása véletlenszerű, kiszámíthatatlan legyen, így a támadó nem tudja kitalálni, hogy a sebezhető célpontok hol helyezkednek el. Az ASLR kiiktatása ezért nagyon fontos eleme minden támadásnak, erre természetesen már a kezdetektől vannak többé-kevésbé sikeres megoldások, a VUSec által bemutatott probléma azonban sokkal veszélyesebb minden eddiginél.
Az ASLR hatékony megkerülése még nem a világ vége, egy sikeres (például távoli kódfuttatáshoz vezető) támadáshoz ezt még több más sebezhetőséggel kell kombinálni. Az ASLR azonban a modern operációs rendszerek egyik fontos védővonalának számít, így kiiktatása mindenképp veszélyesebbé teszi az informatikát általában. A két mélyütés, miszerint ez egy hardveres (így nem javítható) sebezhetőség, amely ráadásul böngészőben futó JavaScript kóddal is támadható, pedig teljesen padlóra viszi ezt a megoldást.
Kinél pattog a labda?
Ahogy írtuk, a probléma nem orvosolható egy szoftverfrissítéssel, a sebezhetőség magában a gyorsítótárazás koncepciójában van, egész pontosan abban, hogy ahhoz a külső (potenciálisan támadó) kód is hozzá tud férni. Bizonyos javítások azért lehetségesek, például a precíz időzítő működését ki lehet iktatni, az Apple az iOS 10.2.1-ben már eszközölt valamilyen, egyelőre ismeretlen elhárítást.
A kutatók a processzorgyártókat és a böngészőgyártókat is értesítették még tavaly a problémákról, hamarosan megjelenhetnek azok a patchek, amelyek a holland kutatók bemutatott támadását kiküszöbölik. Azonban az alapvető problémát, az árulkodó MMU-t azonban valószínűleg nem lesz lehetséges elhallgattatni, így a támadástípus mostantól a kártékony kódok egyik szabványos kelléke lesz.
A publikáció elérhető az egyetem honlapján, az érthetően megfogalmazott, érdekes dokumentumot mindenkinek javasoljuk olvasásra.
Forrás:
https://www.hwsw.hu/hirek/56848/tamadas-aslr-biztonsag-javascript-chrome...
A kép forrása:
http://2.bp.blogspot.com/-os6D-RcjU4g/VNnrlKhUmtI/AAAAAAAAADY/-Ea5azkYoZ...