SmashEx, napad na Intel SGX radi izdvajanja podataka ili izvršavanja koda

Istraživači sa Univerziteta odbrane nauke i tehnologije Narodnooslobodilačke armije, Nacionalnog univerziteta u Singapuru i Švajcarske više tehničke škole u Cirihu razvili su novu metodu za napad na izolovane Intel SGX enklave (Software Guard ekstenzije).

Napad je nazvan SmashEx a uzrokovano je problemima pri ponovnom ulasku pri rukovanju izuzecima tokom rada komponenti u toku rada za Intel SGX. Predloženi metod napada omogućava, ako postoji kontrola nad operativnim sistemom, utvrđivanje povjerljivih podataka nalazi se u enklavi, ili organizirajte kopiju vašeg koda u memoriji enklave i njeno izvršenje.

Zapamtite tu tehnologiju SGX se pojavio na Intel Core procesorima XNUMX. generacije (Skylake) i nudi niz uputstava koji dozvoljavaju aplikacijama na nivou korisnika dodijeljena su privatna memorijska područja, enklave, čiji sadržaj ne može da se pročita ili promeni čak ni kernelom i kodom koji se izvršava u ring0, SMM i VMM režimima.

Nemoguće je prenijeti kontrolu na kod u enklavi koristeći funkcije tradicionalni prijelaz i manipulacije registrima i stekom; Novi posebno kreirani EENTER, EEXIT i ERESUME izrazi se koriste za prijenos kontrole na enklavu koja obavlja provjere autorizacije. U isto vrijeme, kod postavljen u enklavu može koristiti metode pozivanja klasici za pozivanje funkcija unutar enklave i posebnu instrukciju za pozivanje eksternih funkcija. Enklavna memorija se koristi za zaštitu od hardverskih napada, kao što je povezivanje na DRAM modul.

Problem je povezan sa činjenicom da SGX tehnologija dozvoljava operativnom sistemu da prekine izvršenje enklave bacanjem hardverskog izuzetka, a primitivi za atomsko rukovanje takvim izuzecima nisu pravilno implementirani u enklavama. Za razliku od kernela operativnog sistema i običnih aplikacija, kod unutar enklava nema pristup primitivima da organizuje atomske akcije tokom asinhronog rukovanja izuzetkom. Bez specificiranih atomskih primitiva, enklava se može prekinuti u bilo kojem trenutku i ponovo pokrenuti, čak i kada se na enklavi pokreću kritični dijelovi i ona je u nesigurnom stanju (na primjer, kada registri CPU-a nisu pohranjeni/vraćani).

Za normalan rad, tehnologija SGX vam omogućava da prekinete izvršavanje enklave uz hardverske izuzetke konfigurabilan. Ova funkcija dopušta vremenima izvođenja enklave da implementiraju rukovanje iznimkama ili rukovanje signalom unutar enklave, ali također može uzrokovati greške pri ponovnom ulasku. SmashEx napad se oslanja na iskorištavanje nedostataka u SDK-u zbog toga što se situacija ponovljenih poziva rukovatelja izuzetkom ne obrađuje kako treba. Važno je da, da bi iskoristio ranjivost, napadač mora biti u mogućnosti da prekine izvršenje enklave, odnosno mora kontrolirati rad sistemskog okruženja.

Nakon izbacivanja izuzetka, napadač dobija mali vremenski okvir tokom kojeg je moguće presresti tok izvršenja manipulisanjem ulaznim parametrima. Konkretno, ako imate pristup sistemu (okruženje izvan enklave), možete kreirati novi izuzetak odmah nakon izvršenja naredbe za ulazak u enklavu (EENTER), što će dovesti do vraćanja kontrole sistemu na faza u kojoj Konfiguracija steka za enklavu još nije završena, stanje CPU registara je sačuvano.

Sistem tada može vratiti kontrolu u enklavu, Ali pošto stek enklave nije bio konfigurisan u vreme prekida, enklava će se pokrenuti sa stekom koji se nalazi u sistemskoj memoriji, koji se može koristiti za primenu tehnika eksploatacije programiranja orijentisanog na povratak (ROP). Orijentirano programiranje).

Kada koristi ROP tehniku, napadač ne pokušava staviti svoj kod u memoriju, već radi na dijelovima strojnih instrukcija koji su već dostupni u učitanim bibliotekama, završavajući kontrolnom povratnom instrukcijom (po pravilu, to su kraj biblioteke funkcija). Rad eksploatacije svodi se na izgradnju lanca poziva sličnih blokova ("gadgeta") kako bi se dobila potrebna funkcionalnost.

Prototipovi eksploatacije se pripremaju za enklave s runtime-based Intel SGX SDK (CVE-2021-0186) i Microsoft OpenEnclave (CVE-2021-3376).

U prvom slučaju je demonstrirana mogućnost izdvajanja RSA ključa koji se koristi na web serveru za HTTPS, au drugom je bilo moguće odrediti sadržaj koji prima cURL uslužni program koji radi unutar enklave.

Ranjivost je već zakrpljena u softveru na verzijama Intel SGX SDK 2.13 i Open Enclave 0.17.1.

Izvor: https://jasonyu1996.github.io


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Odgovoran za podatke: AB Internet Networks 2008 SL
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.