Plundervolt ni mbinu mpya ya kushambulia vichakataji vya Intel inayoathiri teknolojia ya SGX

Intel iliyotolewa sasisho la microcode ambalo hurekebisha kuathirika (CVE-2019-14607) kuruhusu kupitia uchezeshaji wa utaratibu wa udhibiti wa voltage na mzunguko katika CPU, anzisha uharibifu wa yaliyomo kwenye seli za data, ikiwa ni pamoja na katika maeneo yanayotumiwa kwa hesabu katika enclaves za Intel SGX zilizotengwa. Shambulio hilo linaitwa Plundervolt, na huenda linaruhusu mtumiaji wa ndani kuongeza upendeleo wake kwenye mfumo, kusababisha kunyimwa huduma na kupata ufikiaji wa data nyeti.

Shambulio hilo ni hatari tu katika muktadha wa ujanja na mahesabu katika enclaves ya SGX, kwani inahitaji haki za mizizi katika mfumo kutekeleza. Katika hali rahisi, mshambuliaji anaweza kufikia upotoshaji wa habari iliyosindika kwenye enclave, lakini katika hali ngumu zaidi, uwezekano wa kuunda tena funguo za kibinafsi zilizohifadhiwa kwenye enclave inayotumiwa kwa usimbuaji kwa kutumia algorithms ya RSA-CRT na AES-NI sio. kutengwa. Mbinu hiyo pia inaweza kutumika kuzalisha makosa katika algoriti zilizosahihishwa ili kuzua udhaifu wakati wa kufanya kazi na kumbukumbu, kwa mfano, kupanga ufikiaji wa eneo nje ya mpaka wa bafa iliyotengwa.
Msimbo wa mfano wa kutekeleza shambulio iliyochapishwa kwenye GitHub

Kiini cha njia ni kuunda hali ya kutokea kwa uharibifu wa data usiyotarajiwa wakati wa mahesabu katika SGX, ambayo matumizi ya usimbuaji na uthibitishaji wa kumbukumbu katika enclave hailindi. Ili kuanzisha upotoshaji, ikawa kwamba inawezekana kutumia miingiliano ya kawaida ya programu kwa ajili ya kudhibiti mzunguko na voltage, kwa kawaida hutumiwa kupunguza matumizi ya nguvu wakati wa kutofanya kazi kwa mfumo na kuamsha utendaji wa juu wakati wa kazi kubwa. Tabia za marudio na voltage zinaenea kwenye chip nzima, ikiwa ni pamoja na athari ya kompyuta katika enclave iliyotengwa.

Kwa kubadilisha voltage, unaweza kuunda hali ambayo malipo haitoshi kurejesha kiini cha kumbukumbu ndani ya CPU, na thamani yake inabadilika. Tofauti kuu kutoka kwa shambulio RowHammer ni kwamba RowHammer hukuruhusu kubadilisha yaliyomo kwenye biti za kibinafsi kwenye kumbukumbu ya DRAM kwa kusoma kwa mzunguko data kutoka kwa seli za jirani, wakati Plundervolt hukuruhusu kubadilisha biti ndani ya CPU wakati data tayari imepakiwa kutoka kwa kumbukumbu kwa hesabu. Kipengele hiki hukuruhusu kupita njia za udhibiti wa uadilifu na usimbaji fiche zinazotumiwa katika SGX kwa data iliyo kwenye kumbukumbu, kwani maadili kwenye kumbukumbu hubaki kuwa sahihi, lakini yanaweza kupotoshwa wakati wa kufanya kazi nao kabla ya matokeo kuandikwa kwenye kumbukumbu.

Ikiwa thamani hii iliyorekebishwa itatumika katika mchakato wa kuzidisha mchakato wa usimbaji fiche, matokeo yanakataliwa kwa maandishi ya siri yasiyo sahihi. Kuwa na uwezo wa kuwasiliana na kidhibiti katika SGX ili kusimba data yake kwa njia fiche, mshambuliaji anaweza, na kusababisha kushindwa, kukusanya takwimu kuhusu mabadiliko katika maandishi ya pato na, kwa dakika chache, kurejesha thamani ya ufunguo uliohifadhiwa kwenye enclave. Maandishi asilia ya ingizo na maandishi sahihi ya pato yanajulikana, ufunguo haubadiliki, na matokeo ya maandishi yasiyo sahihi yanaonyesha kuwa biti fulani imepotoshwa hadi thamani tofauti.

Baada ya kuchambua jozi za maadili ya maandishi sahihi na yaliyoharibika yaliyokusanywa wakati wa mapungufu kadhaa, kwa kutumia njia za uchambuzi wa kutofaulu tofauti (DFA, Uchambuzi wa Makosa Tofauti) unaweza tabiri funguo zinazowezekana zinazotumiwa kwa usimbaji fiche wa AES, na kisha, kwa kuchambua makutano ya funguo katika seti tofauti, tambua ufunguo unaohitajika.

Aina mbalimbali za vichakataji vya Intel huathiriwa na tatizo, ikiwa ni pamoja na Intel Core CPU zenye 6
Kizazi cha 10, na vile vile kizazi cha tano na sita cha Xeon E3, kizazi cha kwanza na cha pili cha Intel Xeon Scalable, Xeon D,
Xeon W na Xeon E.

Hebu tukumbushe kwamba teknolojia ya SGX (Viendelezi vya Walinzi wa Programu) ilionekana katika wasindikaji wa Intel Core wa kizazi cha sita (Skylake) na inatoa mfululizo wa maagizo ambayo huruhusu programu za kiwango cha mtumiaji kutenga maeneo ya kumbukumbu funge - enclaves, yaliyomo ambayo hayawezi kusomwa au kurekebishwa hata na kernel na msimbo unaoendesha katika njia za ring0, SMM na VMM. Haiwezekani kuhamisha udhibiti kwa nambari kwenye enclave kwa kutumia kazi za jadi za kuruka na udanganyifu na rejista na stack; kuhamisha udhibiti kwa enclave, maagizo mapya yaliyoundwa maalum hutumiwa ambayo hufanya ukaguzi wa mamlaka. Katika kesi hii, msimbo uliowekwa kwenye enclave unaweza kutumia mbinu za kupiga simu za classical kufikia kazi ndani ya enclave na maagizo maalum ya kuita kazi za nje. Usimbaji fiche wa kumbukumbu ya enclave hutumiwa kulinda dhidi ya mashambulizi ya maunzi kama vile kuunganisha kwenye moduli ya DRAM.

Chanzo: opennet.ru

Kuongeza maoni