Oanfal op Intel SGX om gefoelige gegevens te ekstrahearjen of koade út te fieren yn in enklave

Undersikers fan 'e People's Liberation Army Defense Science and Technology University, de National University of Singapore en ETH Zurich hawwe in nije metoade ûntwikkele foar it oanfallen fan isolearre enklaves Intel SGX (Software Guard eXtensions). De oanfal wurdt SmashEx neamd en wurdt feroarsake troch problemen mei weryngong by it behanneljen fan útsûnderingssituaasjes tidens de operaasje fan runtime-komponinten foar Intel SGX. De foarnommen oanfal metoade makket it mooglik, as der kontrôle oer it bestjoeringssysteem, te bepalen fertroulike gegevens leit yn 'e enklave, of te organisearjen it kopiearjen fan ien syn koade yn' e enklave syn ûnthâld en syn útfiering.

Exploitprototypen binne taret foar enklaves mei runtime basearre op de Intel SGX SDK (CVE-2021-0186) en Microsoft Open Enclave (CVE-2021-33767). Yn it earste gefal waard de mooglikheid oantoand om in RSA-kaai te ekstrahearjen brûkt op in webserver foar HTTPS, en yn it twadde wie it mooglik om de ynhâld te bepalen krigen troch it cURL-hulpprogramma dat yn 'e enklave rint. De kwetsberens is al programmatysk oanpakt yn 'e releases fan Intel SGX SDK 2.13 en Open Enclave 0.17.1. Neist de Intel SGX SDK en Microsoft Open Enclave ferskynt de kwetsberens ek yn 'e Google Asylo SDK, EdgelessRT, Apache Teaclave, Rust SGX SDK, SGX-LKL, CoSMIX en Veracruz.

Lit ús ûnthâlde dat SGX (Software Guard Extensions) technology ferskynde yn 'e sechsde generaasje Intel Core processors (Skylake) en biedt in searje ynstruksjes wêrtroch applikaasjes op brûkernivo sletten ûnthâldgebieten kinne allocearje - enklaves, wêrfan de ynhâld net lêzen wurde kin en modifisearre sels troch de kearn en de koade útfierd yn ring0, SMM en VMM modus. It is ûnmooglik om de kontrôle oer te dragen oan 'e koade yn' e enklave mei tradisjonele sprongfunksjes en manipulaasjes mei registers en de stapel - spesjaal makke nije ynstruksjes EENTER, EEXIT en ERESUME wurde brûkt om kontrôle oer te dragen nei de enklave, dy't autoriteitskontrôles útfiere. Yn dit gefal kin de koade pleatst yn 'e enklave klassike opropmetoaden brûke om tagong te krijen ta funksjes binnen de enklave en spesjale ynstruksjes om eksterne funksjes op te roppen. Enclave ûnthâld fersifering wurdt brûkt om te beskermjen tsjin hardware oanfallen lykas ferbining mei in DRAM module.

Oanfal op Intel SGX om gefoelige gegevens te ekstrahearjen of koade út te fieren yn in enklave

It probleem is dat SGX technology lit it bestjoeringssysteem in enklave ôfbrekke troch in smyt in hardware útsûndering, en enklaves net goed útfiere primitives foar atomically ôfhanneljen fan sokke útsûnderings. Oars as de kernel fan it bestjoeringssysteem en reguliere applikaasjes, hat koade binnen enklaven gjin tagong ta primitives foar it organisearjen fan atomêre aksjes by it behanneljen fan asynchrone útsûnderingen. Sûnder de spesifisearre atomêre primitives kin de enklave op elk momint ûnderbrutsen wurde en werom nei útfiering, sels op tiden dat de enklave krityske seksjes útfiert en yn in ûnfeilige steat is (bygelyks as CPU-registers net bewarre / restaurearre wurde).

Oanfal op Intel SGX om gefoelige gegevens te ekstrahearjen of koade út te fieren yn in enklave

Foar normale operaasje lit SGX technology de útfiering fan 'e enklave wurde ûnderbrutsen troch konfigurearbere hardware-útsûnderings. Dizze funksje lit enklave-runtime-omjouwings in útfiere intra-enklave útsûndering ôfhanneling of sinjaal ferwurking, mar it kin ek feroarsaakje reentrant flaters. De SmashEx-oanfal is basearre op it eksploitearjen fan gebreken yn 'e SDK, wêrtroch't de situaasje fan it opnij roppen fan' e útsûnderingshanneler net goed behannele wurdt. It is wichtich dat om de kwetsberens te eksploitearjen, moat de oanfaller de útfiering fan 'e enklave kinne ûnderbrekke, d.w.s. moat de wurking fan 'e systeemomjouwing kontrolearje.

Nei it smiten fan in útsûndering krijt de oanfaller in lyts tiidfinster wêryn't de útfiertried kin wurde ûnderskept troch manipulaasje fan de ynfierparameters. Benammen as jo tagong hawwe ta it systeem (omjouwing bûten de enklave), kinne jo in nije útsûndering meitsje direkt nei it útfieren fan 'e enklave-ynfier-ynstruksje (EENTER), dy't de kontrôle werombringt nei it systeem op in poadium wêryn't de stack opset foar de enklave is noch net foltôge, wêryn De steat fan 'e CPU-registers ek bewarre wurdt.

It systeem kin dan de kontrôle werombringe nei de enklave, mar om't de stapel fan 'e enklave net konfigurearre wie op' e tiid fan 'e ûnderbrekking, sil de enklave útfiere mei de stapel dy't wennet yn it systeemûnthâld, dat kin wurde brûkt om werom te rjochtsjen programmearring (ROP) ) eksploitaasjetechniken. Orientearre programmearring). By it brûken fan de ROP-technyk besiket de oanfaller net syn koade yn it ûnthâld te pleatsen, mar wurket op stikken fan masine-ynstruksjes dy't al beskikber binne yn laden bibleteken, einiget mei in kontrôle-return-ynstruksje (yn 'e regel binne dit de einen fan biblioteekfunksjes) . It wurk fan 'e eksploitaasje komt del op it bouwen fan in ketting fan oproppen nei ferlykbere blokken ("gadgets") om de winske funksjonaliteit te krijen.

Oanfal op Intel SGX om gefoelige gegevens te ekstrahearjen of koade út te fieren yn in enklave
Oanfal op Intel SGX om gefoelige gegevens te ekstrahearjen of koade út te fieren yn in enklave


Boarne: opennet.ru

Add a comment