Inception, az AMD processzorokat érintő sebezhetőség 

sebezhetőség

Ha kihasználják, ezek a hibák lehetővé tehetik a támadók számára, hogy jogosulatlanul hozzáférjenek érzékeny információkhoz, vagy általában problémákat okozhatnak.

Pár napja egy kutatócsoport feltárta blogbejegyzés útján, információ a sebezhetőségről amit észleltek (már katalogizáltak a CVE-2023-20569 alatt), és ez érinti az EPYC és Ryzen mikroarchitektúrán alapuló AMD processzorokat.

Megemlítik, hogy a sebezhetőség, az "Inception" kulcsszóval lehetővé teszi egy privilegizált helyi felhasználó számára a folyamatok memóriatartalmának meghatározását más felhasználóktól virtualizációs rendszerek használatakor, ami alapvetően lehetővé teszi az információk kinyerését más vendégrendszerekből.

Mi az Inception és hogyan hasznosítható?

-Ról Kezdetben megemlítik, hogy ez a sérülékenység a következők kombinációja:

  • Szellem spekuláció: elágazások nélkül kiválthatunk téves előrejelzést a téves jóslat forrásánál.
  • Átmeneti végrehajtási tréning: A jövőbeli rossz előrejelzéseket manipulálhatjuk egy korábbi rossz előrejelzésen keresztül, amelyet mi váltottunk ki.

mint ezzel lehetséges a visszatérési cím verem túlcsordulás generálása (RAS) olyan struktúrában, amely spekulatív módban frissül olyan szakaszban, ahol a processzor csak a CALL utasítás lehetséges hívását jelzi előre.

A RAS-verem fix méretű és kör alakú, azaz hurkol, és az utolsó elem után az elejére vált. A támadó olyan körülményeket hozhat létre, amelyekben az elágazás-előrejelző spekulatív módon nagyszámú helytelenül előrejelzett HÍVÁST hajt végre, ami elegendő ahhoz, hogy túlcsordítsa a RAS-vermet, és felülírja a verem tetején elhelyezett, helyesen előrejelzett visszatérési pontokat.

Ennek eredményeként, kezdeti veremelemek felülírhatók a kiválasztott értékekkel a támadó által, ami ezután ezeknek a helyettesített értékeknek a használatához vezet a RET utasítás spekulatív végrehajtása során egy másik folyamat kontextusában.

Megemlítik, hogy ezt követően a processzor megállapítja, hogy az elágazás előrejelzése indokolatlan volt, és visszaállítja a műveletet az eredeti állapotába, de a spekulatív végrehajtás során feldolgozott adatok a gyorsítótárban és a mikroarchitektúra pufferben fognak ülni. Ha egy tévesen végrehajtott blokk memória-hozzáférést hajt végre, akkor a spekulatív végrehajtása az általános gyorsítótárba történő telepítéshez és az adatok memóriából történő kiolvasásához vezet.

A Phantom sebezhetőséget az ág előrejelzésének „megmérgezésére” használják (CVE-2022-23825) ugyanazon kutatók által azonosított, amely lehetővé teszi, hogy feltételeket teremtsen egy álág előrejelzéséhez elágazási utasítások nélkül, és befolyásolja az elágazás előrejelző puffert a "ret" utasítás nélkül.

A rossz előrejelzés és a RAS verem túlcsordulás kezdeményezéséhez a szokásos XOR utasítást használjuk, amelynek hatása az elágazás előrejelzési pufferre fantomtámadás során hasonló a CALL utasítás rekurzív hívásához. A RAS verem elején a szükséges érték szabályozott helyettesítésére a TTE (Training in Transient Execution) módszert javasoljuk, amely lehetővé teszi a korábbi hibás előrejelzésekből való átmenetek jövőbeli előrejelzésének befolyásolását.

Érdemes ezt megemlíteni a demonstrációhoz a kutatók egy exploitot készítettek amelyet egy jogosulatlan helyi felhasználó használhat a root felhasználó jelszavának kivonatolására, az /etc/shadow fájlban tárolva és a rendszer hitelesítésekor a memóriába töltve.

A támadás egy teljesen frissített Ubuntu 22.04 rendszeren mutatták be 5.1-es kernellel9 AMD Zen 4 család processzorral felszerelt számítógépen. Az exploit adatszivárgási teljesítménye 39 bájt/s. Az /etc/shadow tartalmát a sérülékenység kihasználására tett 6 kísérletből 10-ban sikerült meghatározni. Minden próbálkozás körülbelül 40 percig tartott.

Ahogy az elején már említettük, az Inception az EPYC és a Ryzen mikroarchitektúrára épülő processzorokat érinti, amelyek közül a Zen1 és Zen2 mikroarchitektúrák, az IBPB utasítás alapú védelem (a Spectre támadások elleni védelemre szolgál) a sebezhetőség megnyilvánulásának blokkolására használható. . Míg a Zen3 és Zen4 család processzoraihoz nincsenek védelmi javítások, és mikrokód frissítésre van szükség a sérülékenység blokkolásához.

Végül, megemlítik, hogy az Inception javít és firmware frissítés már szerepelnek a Linux kernel legújabb verzióiban, bár a javítások kiosztása után a javítások hatékonyabb, átdolgozott változatát is javasolták, amelyeket eddig nem fogadtak el a kernelben.

Ha többet szeretne megtudni róla, a részletekről tájékozódhat a következő link.