RĂŒnnak Intel SGX vastu, mis vĂ”imaldab konfidentsiaalsete andmete vĂ€ljavĂ”tmist vĂ”i koodi tĂ€itmist anklaavis.

Kaitse teadlased Hiina Rahvavabastamise Armee TehnikaĂŒlikoolist, Singapuri RahvusĂŒlikoolist ja ZĂŒrichi TehnikaĂŒlikoolist on vĂ€lja töötanud uue meetodi Intel SGX (Software Guard eXtensions) eraldatud enklaavide rĂŒndamiseks. RĂŒnnak sai nimeks SmashEx ja see on pĂ”hjustatud probleemidest reentrantsi kĂ€sitlemisel Intel SGX runtime-komponentide töötamise ajal. Ettepanekud rĂŒnnakumeetod vĂ”imaldab, kui operatsioonisĂŒsteemi on kontrollitud, tuvastada konfidentsiaalseid andmeid, mis asuvad enklaavis, vĂ”i korraldada oma koodi kopeerimist enklaavi mĂ€llu ja selle kĂ€ivitamist.

Eksploitide prototĂŒĂŒbid on ette valmistatud Intel SGX SDK (CVE-2021-0186) ja Microsoft Open Enclave (CVE-2021-33767) baasil töötavate anklavide jaoks. Esimesel juhul demonstreeriti RSA-vĂ”tme vĂ€ljavĂ”tmise vĂ”imalust, mida kasutatakse HTTPS-i jaoks veebiserveris, samas kui teisel juhul Ă”nnestus mÀÀrata cURL utiliidi sisu, mis kĂ€ivitus anklavis. Haavatavus on juba kĂ”rvaldatud tarkvarauuudistes Intel SGX SDK 2.13 ja Open Enclave 0.17.1. Peale Intel SGX SDK ja Microsoft Open Enclave ilmus haavatavus ka Google Asylo, EdgelessRT, Apache Teaclave, Rust SGX SDK, SGX-LKL, CoSMIX ja Veracruz SDK-des.

Tulet meenutada, et SGX (Software Guard Extensions) tehnoloogia ilmus Intel Core kuue pĂ”lvkonna (Skylake) protsessorites ning see pakub rida kĂ€ske, mis vĂ”imaldavad rakendustele luua kasutaja taseme suletud mĂ€lualad — enklaavid, mille sisu ei saa lugeda ega muuta isegi tuuma ja ring0, SMM vĂ”i VMM reĆŸiimides töötava koodi poolt. Juhtimist enklaavis olevale koodile ei saa ĂŒle anda traditsiooniliste hĂŒpetefunktsioonide ja registrite ning stack'i manipuleerimise kaudu — juhtimise edastamiseks enklaavi kasutatakse spetsiaalselt loodud uusi kĂ€ske EENTER, EEXIT ja ERESUME, mis teostavad volituste kontrolli. Samuti vĂ”ib enklaavi paigutatud kood kasutada klassikalisi meetodeid funktsioonide kĂ”netamiseks enklaavis ja spetsiaalset kĂ€sku vĂ€liste funktsioonide kutsumiseks. RiistvararĂŒnnakute, nĂ€iteks DRAM moodulite seadmete ĂŒhendamise vastu, kasutatakse enklaavi mĂ€lu krĂŒpteerimist.

RĂŒnnak Intel SGX vastu, mis vĂ”imaldab konfidentsiaalsete andmete vĂ€ljavĂ”tmist vĂ”i koodi tĂ€itmist anklaavis.

Probleem on seotud sellega, et tehnoloogia SGX vĂ”imaldab operatsioonisĂŒsteemil katkestada anklaadi tĂ€itmise, genereerides riistvaralise erandi, kuid anklaites ei ole nĂ”uetekohaselt rakendatud primitiive sarnaste erandite atomaarseks töötlemiseks. Erinevalt operatsioonisĂŒsteemi tuumast ja tavapĂ€rasest tarkvarast ei ole kood anklaites juurdepÀÀsu primitiividele atomaarsete toimingute korraldamiseks asĂŒnkroonselt esinevate erandite töötlemise ajal. Ilma nimetatud atomaarsete primitiivide olemasoluta vĂ”ib anklai igal ajal katkestada ja jĂ€tkata tĂ€itmist, isegi hetkel, kui anklaadis tĂ€idetakse kriitilisi sektsioone ja see on ebausaldusvÀÀrses olekus (nĂ€iteks kui CPU registrid ei ole salvestatud/taasalustatud).

RĂŒnnak Intel SGX vastu, mis vĂ”imaldab konfidentsiaalsete andmete vĂ€ljavĂ”tmist vĂ”i koodi tĂ€itmist anklaavis.

SGX-tehnoloogia normaalne toimimine vĂ”imaldab katkestada anklavide tĂ€itmise seadistatud riistvaralihenduste abil. See omadus vĂ”imaldab anklavide runtime-keskkondadel teostada anklavi siseseid erandeid vĂ”i signaalide töötlemist, kuid see vĂ”ib samuti pĂ”hjustada reentratabluse vigu. SmashEx rĂŒnnak pĂ”hineb SDK-s esinevate puudujÀÀkide Ă€rakasutamisel, mis takistavad Ă”igesti eranditöötleja korduvat kĂ€ivitamist. Oluline on, et rĂŒnnaku teostamiseks peab rĂŒndaja suutma katkestada anklavi tĂ€itmise, st kontrollima sĂŒsteemikeskkonna toimimist.

PĂ€rast erandi genereerimist saab rĂŒndaja vĂ€ikese ajavahemiku, mille jooksul saab lĂ€bi sisendparameetrite manipuleerimise tĂ€itmise voogu katkestada. EelkĂ”ige, kui sĂŒsteemile (keskkonnale vĂ€ljaspool enklaavi) on juurdepÀÀs, on vĂ”imalik kohe pĂ€rast enklaavi sisenemise kĂ€su (EENTER) tĂ€itmist luua uus erand, mis viib juhtimise tagasitoomiseni sĂŒsteemi etappi, kus enklaavi jaoks ei ole veel virnastamise seadistamine lĂ”pule viidud, sealhulgas CPU registrite oleku salvestamine.

SĂŒsteem vĂ”ib seejĂ€rel tagastada kontrolli tagasi enklaavi, kuid kuna enklaavi virn katkestamise ajal ei olnud seadistatud, siis viib enklaav töötlemist sĂŒsteemi mĂ€lus olevas virnas, mida saab kasutada tagasipööratud programmeerimise (ROP — Return-Oriented Programming) pĂ”hinevate ekspluateerimismeetodite rakendamiseks. ROP-tehnika kasutamisel ei proovi rĂŒndaja oma koodi mĂ€lu paigutada, vaid opereerib juba laaditud teekides leiduvate masinakeelsete kĂ€skude fragmentidega, mis lĂ”ppevad kontrolli tagastamise kĂ€suga (tavaliselt teekide funktsioonide lĂ”pud). Ekspluudi tööks on sarnaste plokkide („gadĆŸetide”) kĂ”nede ahelate ehitamine soovitud funktsionaalsuse saavutamiseks.

RĂŒnnak Intel SGX vastu, mis vĂ”imaldab konfidentsiaalsete andmete vĂ€ljavĂ”tmist vĂ”i koodi tĂ€itmist anklaavis.
RĂŒnnak Intel SGX vastu, mis vĂ”imaldab konfidentsiaalsete andmete vĂ€ljavĂ”tmist vĂ”i koodi tĂ€itmist anklaavis.


Allikas: opennet.ru
Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster