Eraso ezazu Intel SGX-ri datu sentikorrak ateratzeko edo enklabe batean kodea exekutatzeko

Herri Askapenerako Armadako Defentsa Zientzia eta Teknologia Unibertsitateko, Singapurreko Unibertsitate Nazionaleko eta Zuricheko ETHko ikertzaileek Intel SGX (Software Guard eXtensions) enklabe isolatuei erasotzeko metodo berri bat garatu dute. Erasoari SmashEx deitzen zaio eta Intel SGX-ren exekuzio-denborako osagaien funtzionamenduan salbuespen-egoerak kudeatzen dituenean berriro sartzeko arazoek eragiten dute. Proposatutako eraso-metodoak posible egiten du, sistema eragilearen kontrola baduzu, enklabean kokatutako isilpeko datuak zehaztea edo zure kodearen kopia enklabearen memorian eta exekuzioa antolatzea.

Intel SGX SDK (CVE-2021-0186) eta Microsoft Open Enclave (CVE-2021-33767) oinarritutako exekuzio-denbora duten enklabeetarako ustiapen-prototipoak prestatu dira. Lehenengo kasuan, HTTPSrako web zerbitzari batean erabilitako RSA gako bat ateratzeko gaitasuna frogatu zen, eta bigarrenean, enklabe barruan exekutatzen den cURL utilitateak lortutako edukia zehaztu ahal izan zen. Ahultasuna dagoeneko programatikoki zuzendu da Intel SGX SDK 2.13 eta Open Enclave 0.17.1 bertsioetan. Intel SGX SDK eta Microsoft Open Enclave-z gain, ahultasuna Google Asylo SDK, EdgelessRT, Apache Teaclave, Rust SGX SDK, SGX-LKL, CoSMIX eta Veracruz-en ere agertzen da.

Gogora dezagun SGX (Software Guard Extensions) teknologia seigarren belaunaldiko Intel Core prozesadoreetan (Skylake) agertu zela eta erabiltzaile-mailako aplikazioek memoria-eremu itxiak esleitzea ahalbidetzen duten argibide sorta bat eskaintzen duela - enklabeak, horien edukia ezin da irakurri eta nukleoak eta ring0, SMM eta VMM moduetan exekutaturiko kodea ere aldatu dute. Ezinezkoa da kontrola enklabeko kodeara transferitzea ohiko jauzi funtzioak eta manipulazioak erregistroekin eta pilarekin - bereziki sortutako instrukzio berriak EENTER, EEXIT eta ERESUME erabiltzen dira kontrola enklabera transferitzeko, autoritate egiaztapenak egiten dituztenak. Kasu honetan, enklabean kokatutako kodeak dei-metodo klasikoak erabil ditzake enklabe barruko funtzioetara sartzeko eta argibide bereziak kanpoko funtzioak deitzeko. Enclave memoria enkriptatzea hardware-erasoetatik babesteko erabiltzen da, hala nola DRAM modulu batera konektatzea.

Eraso ezazu Intel SGX-ri datu sentikorrak ateratzeko edo enklabe batean kodea exekutatzeko

Arazoa da SGX teknologiak sistema eragileari enklabe bat abortatzeko aukera ematen diola hardware-salbuespen bat botaz, eta enklabeek ez dituzte behar bezala inplementatzen salbuespenak atomikoki kudeatzeko primitiboak. Sistema eragilearen nukleoa eta aplikazio arruntak ez bezala, enklabe barruko kodeak ez du atzipen primitiboetarako sarbiderik ekintza atomikoak antolatzeko modu asinkronoan botatako salbuespenak kudeatzen dituenean. Zehaztutako primitibo atomikorik gabe, enklabea edozein unetan eten daiteke eta exekuziora itzul daiteke, baita enklabea atal kritikoak exekutatzen ari den eta egoera seguruan dagoenean ere (adibidez, PUZaren erregistroak gordetzen/berreskuratzen ez direnean).

Eraso ezazu Intel SGX-ri datu sentikorrak ateratzeko edo enklabe batean kodea exekutatzeko

Funtzionamendu arrunterako, SGX teknologiak enklabearen exekuzioa etetea ahalbidetzen du, hardware konfiguragarrien salbuespenengatik. Ezaugarri honek enklabe exekuzio-inguruneei enklabe barruko salbuespenen kudeaketa edo seinaleen prozesamendua ezartzeko aukera ematen die, baina berriro sartzea erroreak ere sor ditzake. SmashEx erasoa SDK-ko akatsak ustiatzean oinarritzen da, eta, ondorioz, salbuespen-kudeatzailea berriro deitzeko egoera ez da behar bezala kudeatzen. Garrantzitsua da ahultasuna ustiatzeko, erasotzaileak enklabearen exekuzioa eteteko gai izan behar duela, hau da. sistemaren ingurunearen funtzionamendua kontrolatu behar du.

Salbuespen bat bota ondoren, erasotzaileak denbora-leiho txiki bat jasotzen du eta bertan exekuzio-haria atzeman daiteke sarrerako parametroen manipulazioaren bidez. Bereziki, sistemarako sarbidea baduzu (enklabetik kanpoko ingurunea), enklabea sartzeko instrukzioa (EENTER) exekutatu eta berehala salbuespen berri bat sor dezakezu, eta horrek sistemari kontrola itzuliko dio pila konfiguratzen den fase batean. enklabe oraindik ez da osatu, eta bertan PUZaren erregistroen egoera ere gordetzen da.

Ondoren, sistemak kontrola itzuli ahal izango du enklabera, baina etenaldiaren unean enklabearen pila konfiguratu ez zenez, enklabea sistemaren memorian dagoen pilarekin exekutatuko da, itzulerara bideratutako programazioa (ROP) erabiltzeko erabil daiteke. ) ustiapen teknikak.Orientatutako Programazioa). ROP teknika erabiltzean, erasotzailea ez da saiatzen bere kodea memorian jartzen, baina kargatutako liburutegietan dagoeneko eskuragarri dauden makina-argibideetan jarduten du, kontrol-itzulera instrukzio batekin amaitzen da (arau orokor gisa, liburutegiko funtzioen amaierak dira). . Explotazioaren lana antzeko blokeetara (β€œgadgets”) dei-kate bat eraikitzera dator nahi den funtzionaltasuna lortzeko.

Eraso ezazu Intel SGX-ri datu sentikorrak ateratzeko edo enklabe batean kodea exekutatzeko
Eraso ezazu Intel SGX-ri datu sentikorrak ateratzeko edo enklabe batean kodea exekutatzeko


Iturria: opennet.ru

Gehitu iruzkin berria