TONTOU: Újabb Spectre v2 támadás az AMD és az Intel ellen

Főbb pontok:
  • A TONTOU kihasználja az előrejelző puffer tisztítása és felhasználása közötti időeltolódást.
  • A támadók „megszakítás-befecskendezést” használnak a kernel áramlásának átirányítására és az előrejelző gépek szennyezésére.
  •  Az AMD Zen 1-4 architektúráit és az Intel processzorok több generációját érinti.
  • A mérséklő javításokat már beépítették a legutóbbi Linux kernel frissítésekbe (augusztus 5.).

TONTOU támadás

Lehetséges, hogy pontosan a processzor sebessége veszélyezteti a biztonságodat? Ahhoz, hogy megértsük, hogyan érik el a processzorok a sebességüket , figyelembe kell vennünk, hogy a "jövő előrejelzésével" működnek... Nem, nem varázslatosak, és nem is rendelkeznek apró kristálygömbbel...

A processzorok működési elve az, hogy ahelyett, hogy megvárnák, melyik útvonalat fogja bejárni egy program, a chip megjósolja a valószínűsíthető útvonalat, és előre látja azt. Ha a jóslat helytelen, a munka elvész, de a nyomok megmaradnak a memóriában. Itt jön képbe a Spectre , az utóbbi években felfedezett egyik legjelentősebb sebezhetőség. Felfedezése óta a támadók megtanulták, hogyan olvassák ezeket a nyomokat, és egyre kifinomultabb variánsokat hoztak létre; a TONTOU az egyik ilyen új sebezhetőség.

Az MIT kutatói felfedezték a TONTOU-t (Time-of-Neutralization to Time-of-Use), egy kifinomult új technikát a Spectre v2 sebezhetőségeinek kihasználására , amely lehetővé teszi a kernel memória felhasználói térből történő olvasását.

Bár a gyártók és fejlesztők évek óta terveznek különféle védelmi mechanizmusokat a prediktív támadások ellen, a támadóknak sikerült új útvonalakat felfedezniük, és ez az új CSAIL-tanulmány bemutatja, hogyan lehet megkerülni ezeket a védelmeket.

A kutatók felfedezték, hogy elkerülhetetlen időkülönbség van a puffer kiürítésének és a predikciók felhasználásának pillanata között, és ebben a kis résben injektálódik a kód (néha csak néhány utasítás) a rendszermegszakításokon keresztül, lehetővé téve a hardver újbóli szennyeződését és a kritikus adatok kinyerését.

A támadással kapcsolatban: Zavarok és a Safe-RET behatolása

Az AMD rendelkezik egy Saferet nevű védelemmel az SRSO (Speculative Return Stack Overflow) sebezhetőségek ellen , amely minden használat előtt megtisztítja az előrejelző gépezetet. Ez egy olyan sebezhetőségi ablakot hagy maga után , amelyet néhány tíz nanoszekundum alatt ki lehet használni. Egy ilyen kis ablak megtámadására a kutatók kifejlesztettek egy Interrupt Injectionnek nevezett technikát.

A processzorok folyamatosan szüneteltetik a feladataikat a megszakítások kezelése érdekében, és a gyakori programok konfigurálhatják ezeket az időzítőket . Ezt szem előtt tartva a kutatók pontosan beállítottak egy időzítőt , és egy a CPU-t lassító technikát alkalmazva a processzor pontosan a rossz pillanatban történő megszakítását okozták . E megszakítás során a támadó nagyszámú hívás végrehajtását kényszerítheti ki, túlcsordulva a címveremet. Amikor a hibás végrehajtás véget ér, a processzor elveti a folyamatot, de a hozzáfért adatok a megosztott gyorsítótárakban maradnak , ahonnan a hozzáférési idők elemzésével kinyerhetők.

Jelszókinyerés és tesztelés valós rendszereken

A TONTOU súlyosságának bemutatására a csapat egy működő sérülékenységet épített egy AMD rendszeren, amely egy aktuális Linux kernelt futtatott. Az első akadály az operációs rendszer memóriában elfoglalt pozícióját véletlenszerűen kiválasztó védelem megkerülése volt, amit tíz próbálkozás után sikerült is megtenniük, tesztenként körülbelül kilenc percet igénybe véve.

Ezt követően bemutattak egy helyi támadást egy nem jogosult felhasználóról a root jelszó hash-ének meghatározására, sikeresen 5.47 bájt/másodperc sebességgel, 91.97%-os pontossággal kinyerve az adatokat. A tesztek 50%-ában (amelyek átlagosan 18 percig tartottak) sikeresen észlelték és kinyerték a jelszófájl tartalmát. Bár ez lassú sebesség, több mint elegendő egy szerver kritikus kompromittálásához.

Hatás az Intelre, az AMD-re és a mérséklő javításra

A csapat négy generációs Intel és AMD processzorokat tesztelt, és mindkét architektúrán előrejelzési hibákat tapasztaltak. Míg a technika életképesnek bizonyult az AMD Zen 1-4 családjain , az Intel chipek esetében a támadás két különböző védelmet is megkerült , bár a különböző Intel generációk között inkonzisztens viselkedést figyeltek meg , ami arra utal, hogy a névleges védelmek eltérően vannak megvalósítva a hardverben.

Megoldásként a kutatók azt javasolják, hogy a megszakítás befejezése után másodszor is töröljék az előrejelző gépezetet. Bár ez a megoldás az AMD számára életképesnek tűnik, az Intel számára kontraproduktív lehet, mivel a támadás a megszakítás konzisztens állapotának elhagyásától függ, és megbízhatóbbá teheti a támadást.

A kutatók február elején értesítették az AMD-t és az Intelt, márciusban pedig a Linux kernel karbantartóit. Ennek eredményeként a sebezhetőség enyhítésére szolgáló kódblokkolót augusztus 5-én beépítették a Linux kernelbe.

Végül, ha további részletekre vagy kíváncsi, a következő linken megtalálod a részleteket.


Hozzáadás előnyben részesített forrásként a Google-ben