Attaccà à Intel SGX per estrae dati sensibili o eseguisce codice in un enclave

I ricercatori di l'Università di Scienza è Tecnulugia di Difesa di l'Armata di Liberazione Populari di Cina, l'Università Naziunale di Singapore è ETH Zurich anu sviluppatu un novu metudu di attaccu contr'à l'enclavi isolati Intel SGX (Software Guard eXtensions). L'attaccu hè statu chjamatu SmashEx è hè statu causatu da prublemi di reentrancy in a gestione di l'eccezzioni durante l'operazione di cumpunenti runtime per Intel SGX. U metudu di attaccu prupostu permette, se ci hè un cuntrollu di u sistema operatore, per determinà e dati cunfidenziale situati in l'enclave, o urganizà a copia di u codice in a memoria di l'enclave è a so esicuzzioni.

I prototipi di sfruttamentu sò stati preparati per l'enclavi di runtime basati in Intel SGX SDK (CVE-2021-0186) è Microsoft Open Enclave (CVE-2021-33767). In u primu casu, a capacità di estrazione di a chjave RSA utilizata in u servitore web per HTTPS hè stata dimustrata, è in u sicondu, era pussibule di determinà u cuntenutu ottenutu da l'utilità cURL chì curreghja in l'enclave. A vulnerabilità hè stata riparata in modu programmaticu in i versioni Intel SGX SDK 2.13 è Open Enclave 0.17.1. In più di l'Intel SGX SDK è Microsoft Open Enclave, a vulnerabilità appare ancu in Google Asylo SDK, EdgelessRT, Apache Teaclave, Rust SGX SDK, SGX-LKL, CoSMIX è Veracruz.

Ricurdativi chì a tecnulugia SGX (Software Guard Extensions) hè apparsa in i processori Intel Core di sesta generazione (Skylake) è offre una serie d'istruzzioni chì permettenu à l'applicazioni à livellu di l'utilizatori di attribuisce spazii di memoria chjusi - enclavi chì u cuntenutu ùn pò micca esse leghje è cambiatu ancu da u kernel è codice eseguitu da in i modi ring0, SMM è VMM. Hè impussibile di trasfirià u cuntrollu à u codice in l'enclave usendu funzioni di saltu tradiziunale è manipulazioni cù i registri è a pila - appositamente creatu novi struzzioni EENTER, EEXIT è ERESUME sò usati per trasfirià u cuntrollu à l'enclave, chì facenu cuntrolli d'autorizazione. In questu casu, u codice pusatu in l'enclave pò utilizà i metudi di chjama classica per chjamà funzioni in l'enclave è una struzzione speciale per chjamà funzioni esterne. A criptografia di memoria Enclave hè aduprata per prutegge contra attacchi di hardware cum'è a cunnessione DRAM.

Attaccà à Intel SGX per estrae dati sensibili o eseguisce codice in un enclave

U prublema hè chì a tecnulugia SGX permette à u sistema operatore di interrompe l'esekzione di l'enclave lancendu una eccezzioni hardware, è l'enclavi ùn implementanu micca bè primitivi per a gestione atomica di tali eccezzioni. A cuntrariu di u kernel di u sistema operatore è di l'applicazioni normali, u codice in l'enclavi ùn hà micca accessu à i primitivi per urganizà l'azzioni atomiche durante a gestione di l'eccezzioni asynchronously elevate. Senza e primitive atomiche specificate, l'enclave pò esse interrotta è rinviatu à l'esekzione in ogni mumentu, ancu in i tempi quandu e sezioni critiche sò eseguite in l'enclave è hè in un statu inseguru (per esempiu, quandu i registri di CPU ùn sò micca salvati / restaurati) .

Attaccà à Intel SGX per estrae dati sensibili o eseguisce codice in un enclave

Per u funziunamentu normale, a tecnulugia SGX permette di interrompe l'esekzione di l'enclave cù eccezzioni hardware configurabili. Questa funzione permette à i runtimes di l'enclave implementà a gestione di l'eccezzioni intra-enclave o a gestione di i signali, ma pò ancu introduce errori di rientrata. L'attaccu SmashEx hè basatu annantu à a sfruttamentu di i difetti in u SDK per via di quale a situazione di ricumpensa di u gestore di l'eccezzioni ùn hè micca trattatu bè. Hè impurtante chì per sfruttà a vulnerabilità, l'attaccu deve esse capace di interrompe l'esekzione di l'enclave, i.e. deve cuntrullà u funziunamentu di l'ambienti di u sistema.

Dopu à scaccià una eccezzioni, l'attaccante riceve una piccula finestra di tempu durante a quale hè pussibule intercepte u flussu di esicuzzioni attraversu a manipulazione di i paràmetri di input. In particulare, sè vo avete accessu à u sistema (ambienti fora di l'enclave), pudete creà una nova eccezzioni immediatamenti dopu à eseguisce l'istruzzioni per entre in l'enclave (EENTER), chì turnarà u cuntrollu à u sistema in u stadiu quandu a cunfigurazione di stack. per l'enclave ùn hè ancu stata cumpletata, in quale Stu numeru guarda u statu di i registri CPU.

U sistema pò tandu rinvià u cuntrollu à l'enclave, ma postu chì a pila di l'enclave ùn hè micca stata cunfigurata à u mumentu di l'interruzzione, l'enclave eseguirà cù a pila residente in a memoria di u sistema, chì pò esse usata per applicà a Programmazione Orientata à Ritornu ( ROP) tecniche di prugrammazione orientata). Quandu aduprendu a tecnica ROP, l'attaccante ùn prova micca di mette u so codice in memoria, ma opera nantu à i pezzi di l'istruzzioni di a macchina chì sò digià dispunibili in i biblioteche caricate, finiscinu cù una struzzione di ritornu di cuntrollu (per regula, questi sò i fini di a biblioteca. funzioni). U funziunamentu di u sfruttamentu vene à custruisce una catena di chjama à blocchi simili ("gadgets") per ottene a funziunalità desiderata.

Attaccà à Intel SGX per estrae dati sensibili o eseguisce codice in un enclave
Attaccà à Intel SGX per estrae dati sensibili o eseguisce codice in un enclave


Source: opennet.ru

Add a comment