Támadás az Intel SGX ellen, amely lehetővé teszi a bizalmas adatok kiemelését vagy kód végrehajtását az enclávéban

A Kínai Népi Felszabadító Hadsereg Műszaki Egyetemének, a Szingapúri Nemzeti Egyetemnek és a Zürichi Műszaki Egyetemnek a kutatói egy új támadási módszert fejlesztettek ki az Intel SGX (Software Guard eXtensions) elszigetelt enclávéi ellen. A támadást SmashEx néven ismerik, és a runtime komponensek kivételkezelése során felmerülő rekurzív problémák váltották ki. A javasolt támadási módszer lehetőséget ad arra, hogy ha a felhasználó ellenőrzi az operációs rendszert, az enclávéban tárolt bizalmas adatokat azonosítsák, vagy lehetővé teszi a saját kód másolását az enclávé memóriájába és annak végrehajtását.

Az exploitekból prototípusok készültek az Intel SGX SDK (CVE-2021-0186) és a Microsoft Open Enclave (CVE-2021-33767) runtime-jal rendelkező enclávék számára. Az első esetben bemutatták az RSA kulcs kiemelésének lehetőségét, amelyet a webkiszolgálón HTTPS-hez használnak, a második esetben pedig sikerült meghatározni a cURL segédprogram által az enclávében futtatott tartalmat. A sebezhetőséget már szoftveresen javították az Intel SGX SDK 2.13 és Open Enclave 0.17.1 verzióiban. Az Intel SGX SDK és a Microsoft Open Enclave csomagjain kívül a sebezhetőség jelen van a Google Asylo, EdgelessRT, Apache Teaclave, Rust SGX SDK, SGX-LKL, CoSMIX és Veracruz SDK-kban is.

Emlékeztetünk arra, hogy az SGX (Software Guard Extensions) technológia az Intel Core hatodik generációs (Skylake) processzoraiban jelent meg, és egy sor utasítást kínál, amelyek lehetővé teszik, hogy a felhasználói szintű alkalmazások zárt memóriaterületeket - enclávékat - rezerváljanak, amelyek tartalmát még a kernel és a ring0, SMM és VMM módokban futó kód sem olvashatja vagy módosíthatja. Az enclávéban lévő kódra történő vezérlés átadása a hagyományos átadási funkciókkal és regiszterek, valamint a verem manipulációjával lehetetlen - az enclávéra történő vezérlés átadásához speciálisan létrehozott új utasításokat, mint például az EENTER, EEXIT és ERESUME, használnak, amelyek ellenőrzik a jogosultságokat. Eközben az enclávéba helyezett kód klasszikus hívási módszereket alkalmazhat a belső funkciók elérésére, valamint egy speciális utasítást, amely lehetővé teszi külső funkciók hívását. A DRAM modulhoz való csatlakozás és hasonló hardvertámadások ellen az enclávé memóriájának titkosítását alkalmazzák.

Támadás az Intel SGX ellen, amely lehetővé teszi a bizalmas adatok kiemelését vagy kód végrehajtását az enclávéban

A probléma azzal kapcsolatos, hogy az SGX technológia lehetővé teszi az operációs rendszer számára, hogy megszakítsa az encláv végrehajtását egy hardveres kivétel generálásával, és az enclávéban nem valósultak meg megfelelően az ilyen kivételek atomikus kezelésére vonatkozó primitívek. Az operációs rendszer magjától és a normál alkalmazásoktól eltérően az enclávéban lévő kód nem fér hozzá az aszinkron módon felmerülő kivételek feldolgozásához szükséges atomikus műveletekhez. Az említett atomikus primitívek hiányában az enclávé bármikor megszakítható és visszatérhet a végrehajtásra, még akkor is, amikor kritikus szakaszok zajlanak az enclávéban, és az nem biztonságos állapotban van (például amikor a CPU regiszterek nincsenek mentve/helyreállítva).

Támadás az Intel SGX ellen, amely lehetővé teszi a bizalmas adatok kiemelését vagy kód végrehajtását az enclávéban

Az SGX technológia lehetővé teszi az encláv végrehajtásának megszakítását testreszabható hardveres kivételekkel a megfelelő működés érdekében. Ez a lehetőség lehetővé teszi az enclávé runtime környezetek számára, hogy feldolgozzák a belső enclávé kivételeket vagy jeleket, de ez ugyanakkor reentrability hibákat is okozhat. A SmashEx támadás az SDK hiányosságainak kihasználásán alapul, amelyek miatt a kivételkezelő újrahívásának helyzete megfelelően nem kezelhető. Fontos, hogy a sebezhetőség kihasználásához a támadónak lehetősége legyen megszakítani az encláv végrehajtását, tehát ellenőriznie kell a rendszeri környezet működését.

A kivétel generálása után a támadó egy kis időablakhoz jut, amely alatt elfoghatja a végrehajtási folyamatot a belépési paraméterek manipulálásával. Különösen, ha van hozzáférése a rendszerhez (az enclávon kívüli környezethez), új kivételt hozhat létre közvetlenül az enclávba való belépés (EENTER) utasítás végrehajtása után, ami azt eredményezi, hogy a vezérlés visszatér a rendszerhez egy olyan állapotban, amikor még nem fejeződött be az encláv számára a stack beállítása, amelyhez a CPU regiszterek állapotának megőrzése is hozzátartozik.

A rendszer ezután visszaadhatja az irányítást az enclávon belül, de mivel az encláv stackje megszakításkor nem volt beállítva, az encláv a rendszer memóriájában található stackkel fog futni, amelyet a visszatérési orientált programozáson (ROP - Return-Oriented Programming) alapuló kihasználási módszerek alkalmazására lehet használni. ROP technika alkalmazásakor a támadó nem próbálja meg saját kódját a memóriába helyezni, hanem a már betöltött könyvtárakban található gépi utasítások darabjaival operál, amelyek visszaadásának végződő utasítással zárulnak (általában ezek könyvtári funkciók befejezései). A kihasználás működése a hasonló blokkok („gadgets”) hívásláncának felépítésére redukálódik, hogy elérje a kívánt funkcionalitást.

Támadás az Intel SGX ellen, amely lehetővé teszi a bizalmas adatok kiemelését vagy kód végrehajtását az enclávéban
Támadás az Intel SGX ellen, amely lehetővé teszi a bizalmas adatok kiemelését vagy kód végrehajtását az enclávéban


Forrás: opennet.ru
Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster