Atacul asupra Intel SGX permite extragerea de date confidențiale sau executarea de cod în enclave

Cercetătorii de la Universitatea Tehnică de Apărare a Armatei Populare din China, Universitatea Națională din Singapore și Institutul Federal de Tehnologie din Zurich au dezvoltat o nouă metodă de atac asupra enclavei izolate Intel SGX (Software Guard eXtensions). Atacul a fost denumit SmashEx și este cauzat de probleme de reentrabilitate în gestionarea excepțiilor în cadrul componentelor de runtime pentru Intel SGX. Metoda de atac propusă permite, în condițiile unui control asupra sistemului de operare, identificarea datelor confidențiale stocate în enclave sau copierea și executarea propriului cod în memoria enclavei.

Protocoalele de exploatare au fost pregătite pentru enclavele cu runtime bazat pe Intel SGX SDK (CVE-2021-0186) și Microsoft Open Enclave (CVE-2021-33767). În primul caz, a fost demonstrată posibilitatea extragerii unei chei RSA, utilizată pe serverul web pentru HTTPS, iar în al doilea a fost posibilă identificarea conținutului obținut cu utilitarul cURL, executat în interiorul enclavei. Vulnerabilitatea a fost deja remediată prin actualizări în versiunile Intel SGX SDK 2.13 și Open Enclave 0.17.1. Pe lângă pachetele Intel SGX SDK și Microsoft Open Enclave, vulnerabilitatea se manifestă și în SDK-uri precum Google Asylo, EdgelessRT, Apache Teaclave, Rust SGX SDK, SGX-LKL, CoSMIX și Veracruz.

Amintim că tehnologia SGX (Software Guard eXtensions) a apărut în procesoarele Intel Core de generația a șasea (Skylake) și oferă o serie de instrucțiuni care permit aplicațiilor la nivel de utilizator să aloce zone de memorie securizată — enclave, ale căror conținuturi nu pot fi citite sau modificate nici măcar de nucleu și de codul executat în modurile ring0, SMM și VMM. Transferul controlului către codul din enclave nu este posibil prin funcții tradiționale de tranziție sau prin manipularea registrelor și stivei — pentru a transfera controlul către enclave se folosesc instrucțiuni noi special create, EENTER, EEXIT și ERESUME, care efectuează verificarea autorizațiilor. De asemenea, codul plasat în enclave poate utiliza metode clasice de apel pentru a accesa funcțiile interne ale enclavei și o instrucțiune specială pentru a apela funcții externe. Pentru a proteja împotriva atacurilor hardware, cum ar fi accesul la modulul DRAM, se aplică criptarea memoriei enclavei.

Atacul asupra Intel SGX permite extragerea de date confidențiale sau executarea de cod în enclave

Problema este legată de faptul că tehnologia SGX permite sistemului de operare să întrerupă execuția enclavei prin generarea unei excepții hardware, iar în enclave nu sunt implementate corespunzător primitivele pentru procesarea atomică a acestor excepții. Spre deosebire de nucleul sistemului de operare și aplicațiile obișnuite, codul din interiorul enclavei nu are acces la primitivele necesare pentru organizarea acțiunilor atomice în timpul procesării excepțiilor care apar asincron. Fără aceste primitive atomice, enclava poate fi întreruptă oricând și poate fi reluată, chiar și în momentele în care se execută secțiuni critice și se află într-o stare nesigură (de exemplu, când registrele CPU nu sunt salvate/restaurate).

Atacul asupra Intel SGX permite extragerea de date confidențiale sau executarea de cod în enclave

Pentru a funcționa corect, tehnologia SGX permite întreruperea execuției enclavei prin excepții hardware configurabile. Această caracteristică permite mediilor de runtime ale enclavei să implementeze procesarea excepțiilor interne ale enclavei sau procesarea semnalelor, dar poate provoca și erori de reentranță. Atacul SmashEx se bazează pe exploatarea deficiențelor din SDK din cauza cărora nu se procesează corect situația unui apel repetat al handler-ului de excepție. Este important ca, pentru a exploata vulnerabilitatea, atacatorul să aibă capacitatea de a întrerupe execuția enclavei, adică trebuie să controleze funcționarea mediului de sistem.

După generarea excepției, atacatorul obține o fereastră temporară mică în care poate intercepta fluxul de execuție prin manipularea parametrilor de intrare. În special, având acces la sistem (mediul din afara enclavei), se poate genera o nouă excepție imediat după executarea instrucțiunii de intrare în enclavă (EENTER), ceea ce va duce la returnarea controlului sistemului într-o etapă în care configurația stivei pentru enclavă nu a fost încă finalizată, inclusiv starea registrelor CPU fiind salvată.

Sistemul poate apoi returna controlul în enclavă, dar deoarece stiva enclavei nu a fost configurată în timpul întreruperii, enclava va funcționa cu stiva aflată în memoria sistemului, ceea ce poate fi utilizat pentru aplicarea metodelor de exploatare bazate pe programarea orientată către returnare (ROP - Return-Oriented Programming). Când se folosește tehnica ROP, atacatorul nu încearcă să plaseze codul său în memorie, ci operează cu bucăți existente de instrucțiuni de mașină din bibliotecile încărcate, care se termină cu o instrucțiune de returnare a controlului (de obicei, încheierea funcțiilor din biblioteci). Funcționarea exploit-ului se reduce la construirea unei lanțuri de apeluri ale unor asemenea blocuri („gadgets”) pentru a obține funcționalitatea dorită.

Atacul asupra Intel SGX permite extragerea de date confidențiale sau executarea de cod în enclave
Atacul asupra Intel SGX permite extragerea de date confidențiale sau executarea de cod în enclave


Sursa: opennet.ro
Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster