A SmashEx, az Intel SGX elleni támadás adatok kinyerésére vagy kód futtatására

Kutatók a Népi Felszabadító Hadsereg Védelmi Tudományos és Technológiai Egyeteméről, a Szingapúri Nemzeti Egyetemről és a zürichi Svájci Felsőfokú Műszaki Iskoláról új módszert fejlesztettek ki az elszigetelt Intel SGX enklávék megtámadására (Software Guard bővítmények).

A támadást SmashEx-nek hívták és az Intel SGX futásidejű összetevőinek munkája során felmerülő kivételek kezelésekor jelentkező visszatérési problémák okozták. A javasolt támadási módszer lehetővé teszi a bizalmas adatok meghatározását, ha van az operációs rendszer felett az enklávéban található, vagy rendszerezd a kódod másolatát az enklávé memóriájában és annak végrehajtását.

Emlékezz erre a technológiára Az SGX a XNUMX. generációs Intel Core processzorokon jelent meg (Skylake) és egy sor utasítást kínál amelyek lehetővé teszik felhasználói szintű alkalmazásokhoz privát memóriaterületek vannak hozzárendelve, enklávé, amelyek tartalmát még a kernel és a ring0, SMM és VMM módban végrehajtott kód sem tudja elolvasni vagy megváltoztatni.

A vezérlést az enklávéban lévő kódra funkciók segítségével átvinni lehetetlen hagyományos átmenet és manipulációk regiszterekkel és veremekkel; Az új, speciálisan létrehozott EENTER, EEXIT és ERESUME utasítások segítségével adják át az irányítást a jogosultság-ellenőrzést végző enklávéhoz. Ugyanabban az időben, az enklávéba helyezett kód hívási módszereket használhat klasszikusok az enklávén belüli funkciók hívásához és egy speciális utasítás a külső függvények meghívására. Az enclave memóriatitkosítás a hardveres támadások, például a DRAM-modulhoz való csatlakozás elleni védelemre szolgál.

A probléma azzal kapcsolatos, hogy az SGX technológia lehetővé teszi az operációs rendszer számára a végrehajtás megszakítását egy enklávé hardveres kivételével, és az ilyen kivételek atomi kezelésére szolgáló primitívek nincsenek megfelelően implementálva az enklávékban. Az operációs rendszer kernellel és a szokásos alkalmazásokkal ellentétben Az enklávékon belüli kód nem fér hozzá a primitívekhez atomi akciók megszervezésére az aszinkron kivételkezelés során. A megadott atomi primitívek nélkül az enklávé bármikor megszakítható és újrafutható, még akkor is, ha kritikus szakaszok futnak az enklávéban, és az nem biztonságos állapotban van (például ha a CPU regiszterek nincsenek elmentve/visszaállítva).

A normál működéshez a technológia Az SGX lehetővé teszi egy enklávé végrehajtásának megszakítását hardveres kivételekkel konfigurálható. Ez a funkció lehetővé teszi az enklávé futási idők számára a kivételkezelés megvalósítását vagy jelkezelés az enklávén belül, de ez is okozhat reentry hibákat. A SmashEx támadás az SDK hibáinak kihasználásán alapul, mivel a kivételkezelő ismételt hívási helyzetét nem kezelték megfelelően. Fontos, hogy a sérülékenység kihasználásához a támadónak meg kell tudnia szakítani az enklávé végrehajtását, vagyis ellenőriznie kell a rendszerkörnyezet munkáját.

Kivétel dobása után a támadó egy kis időt kap amely során a bemeneti paraméterek manipulálásával elfogható a végrehajtás folyamata. Különösen, ha hozzáférése van a rendszerhez (az enklávén kívüli környezethez), azonnal létrehozhat egy új kivételt az enklávéba való belépésre vonatkozó utasítás végrehajtása után (EENTER), amely a rendszer vezérlésének visszaadásához vezet. szakasz, ahol Az enklávé veremkonfigurációja még nem fejeződött be, a CPU regiszterek állapota mentésre kerül.

A rendszer ezután vissza tudja adni az irányítást az enklávéhoz, De mivel az enklávé verem nem volt konfigurálva a megszakításkor, az enklávé a rendszermemóriában található veremmel fog futni, amely felhasználható visszatérési irányú programozási (ROP) kihasználási technikák alkalmazására. Orientált programozás).

A ROP technika használatakor a támadó nem próbálja meg elhelyezni a kódját a memóriába, hanem a gépi utasítások azon részein dolgozik, amelyek már elérhetőek a betöltött könyvtárakban, és egy vezérlő visszatérési utasítással végződnek (ezek általában a függvénykönyvtár vége). Az exploit munkája a hasonló blokkok ("gadget") hívási láncának felépítésére korlátozódik a szükséges funkcionalitás elérése érdekében.

Készülj fel a prototípusok kihasználására enklávé futásidejű alapú Intel SGX SDK (CVE-2021-0186) és Microsoft OpenEnclave (CVE-2021-3376).

Az első esetben a webszerverben használt RSA kulcs HTTPS-hez való kinyerésének képességét mutatták be, a második esetben pedig az enklávén belül futó cURL segédprogram által fogadott tartalom meghatározására került sor.

A sérülékenységet már kijavították szoftverben az Intel SGX SDK 2.13 és az Open Enclave 0.17.1 verziókon.

forrás: https://jasonyu1996.github.io


Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: AB Internet Networks 2008 SL
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.