Árás á Intel SGX til að draga út viðkvæm gögn eða keyra kóða í enclave

Vísindamenn frá varnarvísinda- og tækniháskólanum í Liberation Army, National University of Singapore og ETH Zurich hafa þróað nýja aðferð til að ráðast á einangraðar enclaves Intel SGX (Software Guard eXtensions). Árásin er kölluð SmashEx og stafar af vandamálum við endurinngang þegar meðhöndlað er undantekningaraðstæður við rekstur keyrsluíhluta fyrir Intel SGX. Fyrirhuguð árásaraðferð gerir það mögulegt, ef þú hefur stjórn á stýrikerfinu, að ákvarða trúnaðargögn sem staðsett eru í enclave, eða að skipuleggja afritun kóðans þíns í minni enclave og framkvæmd hans.

Nýtingarfrumgerðir hafa verið útbúnar fyrir enclave með keyrslutíma byggt á Intel SGX SDK (CVE-2021-0186) og Microsoft Open Enclave (CVE-2021-33767). Í fyrra tilvikinu var sýnt fram á hæfileikann til að draga út RSA lykil sem notaður er á vefþjóni fyrir HTTPS og í því seinna var hægt að ákvarða innihaldið sem fæst með cURL tólinu sem keyrir inni í enclave. Þegar hefur verið brugðist við veikleikanum með forritunarmálum í útgáfum Intel SGX SDK 2.13 og Open Enclave 0.17.1. Til viðbótar við Intel SGX SDK og Microsoft Open Enclave, birtist varnarleysið einnig í Google Asylo SDK, EdgelessRT, Apache Teaclave, Rust SGX SDK, SGX-LKL, CoSMIX og Veracruz.

Við skulum minnast þess að SGX (Software Guard Extensions) tækni birtist í sjöttu kynslóð Intel Core örgjörva (Skylake) og býður upp á röð leiðbeininga sem gera forritum á notendastigi kleift að úthluta lokuðum minnissvæðum - enclaves, sem innihaldið er ekki hægt að lesa og breytt jafnvel af kjarnanum og kóðanum sem keyrður er í hring0, SMM og VMM stillingum. Það er ómögulegt að flytja stjórn yfir á kóðann í enclave með því að nota hefðbundnar stökkaðgerðir og meðhöndlun með skrám og stafla - sérbúnar nýjar leiðbeiningar EENTER, EEXIT og ERESUME eru notaðar til að flytja stjórn til enclave, sem framkvæma heimildaskoðun. Í þessu tilviki getur kóðinn sem settur er í enclave notað klassískar kallaaðferðir til að fá aðgang að aðgerðum inni í enclave og sérstökum leiðbeiningum til að kalla á ytri aðgerðir. Enclave minni dulkóðun er notuð til að vernda gegn vélbúnaðarárásum eins og tengingu við DRAM mát.

Árás á Intel SGX til að draga út viðkvæm gögn eða keyra kóða í enclave

Vandamálið er að SGX tækni gerir stýrikerfinu kleift að stöðva enclave með því að henda vélbúnaðarundantekningu og enclaves útfæra ekki almennilega frumstæður til að meðhöndla slíkar undantekningar í frumeindatækni. Ólíkt stýrikerfiskjarnanum og venjulegum forritum, hefur kóða inni í enclaves ekki aðgang að frumstæðum til að skipuleggja atómaðgerðir þegar meðhöndlað er ósamstilltur undantekningar. Án tilgreindra frumefna í frumeindum er hægt að rjúfa enclave hvenær sem er og fara aftur í framkvæmd, jafnvel á tímum þegar enclave er að keyra mikilvæga hluta og er í óöruggu ástandi (til dæmis þegar CPU skrár eru ekki vistaðar/endurheimtar).

Árás á Intel SGX til að draga út viðkvæm gögn eða keyra kóða í enclave

Fyrir venjulega notkun gerir SGX tækni kleift að stöðva framkvæmd enclave með stillanlegum undantekningum á vélbúnaði. Þessi eiginleiki gerir enclave keyrsluumhverfi kleift að innleiða undantekningar meðhöndlun innan enclave eða merkjavinnslu, en það getur líka valdið endurkomuvillum. SmashEx árásin byggist á því að hagnýta galla í SDK sem veldur því að ekki er rétt meðhöndlað ástandið við að hringja aftur í undantekningarhönnuðinn. Mikilvægt er að til að nýta veikleikann þarf árásarmaðurinn að geta truflað framkvæmd enclave, þ.e. verður að stjórna rekstri kerfisumhverfisins.

Eftir að hafa kastað undantekningu fær árásarmaðurinn lítinn tímaglugga þar sem hægt er að stöðva framkvæmdarþráðinn með því að nota inntaksfæribreyturnar. Sérstaklega, ef þú hefur aðgang að kerfinu (umhverfi utan enclave), getur þú búið til nýja undantekningu strax eftir að þú hefur keyrt enclave entry leiðbeininguna (EENTER), sem mun skila stjórn til kerfisins á því stigi þegar uppsetning stafla fyrir enclave hefur ekki enn verið lokið, þar sem ástand örgjörvaskrárinnar er einnig vistað.

Kerfið getur síðan skilað stjórninni aftur í enclave, en þar sem stakkur enclave var ekki stilltur á þeim tíma sem truflunin átti sér stað, mun enclave keyra með staflanum sem er í kerfisminni, sem hægt er að nota til að nota aftur-stilla forritun (ROP ) nýtingartækni. Stuðlað forritun). Þegar ROP tæknin er notuð reynir árásarmaðurinn ekki að setja kóðann sinn í minnið, heldur starfar hann á vélaleiðbeiningum sem þegar eru tiltækar í hlaðnum bókasöfnum, sem endar með leiðbeiningum til að skila stjórn (að jafnaði eru þetta endar bókasafnsaðgerða) . Vinnan við hagnýtingu snýst um að byggja upp keðju af símtölum í svipaðar blokkir ("græjur") til að fá þá virkni sem óskað er eftir.

Árás á Intel SGX til að draga út viðkvæm gögn eða keyra kóða í enclave
Árás á Intel SGX til að draga út viðkvæm gögn eða keyra kóða í enclave


Heimild: opennet.ru

Bæta við athugasemd