Udhaifu katika CPU za AMD ambazo hukuruhusu kupitisha utaratibu wa ulinzi wa SEV (Salama Uliyosimbwa kwa Njia Fiche)

Watafiti katika Kituo cha Helmholtz cha Usalama wa Taarifa (CISPA) wamechapisha mbinu mpya ya mashambulizi ya CacheWarp ili kuhatarisha utaratibu wa usalama wa AMD SEV (Secure Encrypted Virtualization) unaotumiwa katika mifumo ya utangazaji ili kulinda mashine pepe dhidi ya kuingiliwa na hypervisor au msimamizi wa mfumo wa mwenyeji. Mbinu iliyopendekezwa humruhusu mshambulizi aliye na ufikiaji wa hypervisor kutekeleza msimbo wa watu wengine na kuongeza upendeleo katika mashine pepe iliyolindwa kwa kutumia AMD SEV.

Shambulio hilo linatokana na utumiaji wa hatari (CVE-2023-20592) inayosababishwa na operesheni isiyo sahihi ya kashe wakati wa utekelezaji wa maagizo ya processor ya INVD, kwa msaada ambao inawezekana kufikia kutolingana kwa data kwenye kumbukumbu na kashe. , na njia za kukwepa za kudumisha uadilifu wa kumbukumbu ya mashine pepe, inayotekelezwa kulingana na viendelezi SEV-ES na SEV-SNP. Athari hii huathiri vichakataji vya AMD EPYC kutoka kizazi cha kwanza hadi cha tatu.

Kwa wasindikaji wa kizazi cha tatu wa AMD EPYC (Zen 3), suala linatatuliwa katika sasisho la microcode la Novemba iliyotolewa jana na AMD (kurekebisha hakusababishi uharibifu wowote wa utendaji). Kwa kizazi cha kwanza na cha pili cha AMD EPYC (Zen 1 na Zen 2), ulinzi haujatolewa, kwani CPU hizi haziungi mkono ugani wa SEV-SNP, ambao hutoa udhibiti wa uadilifu kwa mashine za kawaida. Kizazi cha nne cha wasindikaji wa AMD AMD EPYC "Genoa" kulingana na usanifu mdogo wa "Zen 4" sio hatari.

Teknolojia ya AMD SEV inatumika kutenganisha mashine pepe na watoa huduma za wingu kama vile Amazon Web Services (AWS), Google Cloud, Microsoft Azure na Oracle Compute Infrastructure (OCI). Ulinzi wa AMD SEV unatekelezwa kupitia usimbaji fiche wa kiwango cha maunzi wa kumbukumbu ya mashine pepe. Zaidi ya hayo, kiendelezi cha SEV-ES (Hali Iliyosimbwa) hulinda rejista za CPU. Mfumo wa sasa wa wageni pekee ndio unaoweza kufikia data iliyosimbwa, na wakati mashine zingine pepe na hypervisor zinapojaribu kufikia kumbukumbu hii, hupokea seti iliyosimbwa kwa njia fiche.

Kizazi cha tatu cha wasindikaji wa AMD EPYC kilianzisha ugani wa ziada, SEV-SNP (Secure Nested Paging), ambayo inahakikisha uendeshaji salama wa meza za kumbukumbu za kumbukumbu. Mbali na usimbaji fiche wa kumbukumbu ya jumla na kutengwa kwa rejista, SEV-SNP hutumia hatua za ziada kulinda uadilifu wa kumbukumbu kwa kuzuia mabadiliko ya VM na hypervisor. Vifunguo vya usimbaji fiche vinasimamiwa kwa upande wa kichakataji tofauti cha PSP (Kichakataji cha Usalama cha Jukwaa) kilichojengwa ndani ya chip, kinachotekelezwa kwa misingi ya usanifu wa ARM.

Kiini cha mbinu ya kushambulia iliyopendekezwa ni kutumia maagizo ya INVD kubatilisha vizuizi (mistari) kwenye akiba ya kurasa chafu bila kutupa data iliyokusanywa kwenye akiba kwenye kumbukumbu (andika-nyuma). Kwa hivyo, njia hiyo hukuruhusu kuondoa data iliyobadilishwa kutoka kwa kashe bila kubadilisha hali ya kumbukumbu. Ili kutekeleza shambulio hilo, inashauriwa kutumia vighairi vya programu (sindano ya kosa) kukatiza utendakazi wa mashine ya kawaida katika sehemu mbili: kwanza, mshambuliaji huita maagizo ya "wbnoinvd" kuweka upya shughuli zote za uandishi wa kumbukumbu zilizokusanywa. cache, na katika nafasi ya pili huita maagizo ya "invd" ya kurejesha shughuli za uandishi ambazo hazijaonyeshwa kwenye kumbukumbu kwa hali ya zamani.

Ili kuangalia mifumo yako ili kubaini udhaifu, mfano wa unyonyaji umechapishwa ambao unakuruhusu kuingiza ubaguzi kwenye mashine pepe inayolindwa kupitia AMD SEV na kurudisha nyuma mabadiliko katika VM ambayo hayajarejeshwa kwenye kumbukumbu. Urejeshaji wa mabadiliko unaweza kutumika kubadilisha mtiririko wa programu kwa kurudisha anwani ya zamani ya kurejesha kwenye rafu, au kutumia vigezo vya kuingia katika kipindi cha zamani ambacho kilithibitishwa hapo awali kwa kurudisha thamani ya sifa ya uthibitishaji.

Kwa mfano, watafiti walionyesha uwezekano wa kutumia njia ya CacheWarp kutekeleza shambulio la Bellcore juu ya utekelezaji wa algoriti ya RSA-CRT kwenye maktaba ya ipp-crypto, ambayo ilifanya iwezekane kupata ufunguo wa kibinafsi kupitia uingizwaji wa makosa wakati wa kuhesabu dijiti. Sahihi. Inaonyesha pia jinsi unavyoweza kubadilisha vigezo vya uthibitishaji wa kipindi kuwa OpenSSH wakati wa kuunganisha kwa mbali kwa mfumo wa wageni, na kisha kubadilisha hali ya uthibitishaji wakati wa kuendesha matumizi ya sudo ili kupata haki za mizizi katika Ubuntu 20.04. Matumizi hayo yamejaribiwa kwenye mifumo iliyo na vichakataji vya AMD EPYC 7252, 7313P na 7443.

Chanzo: opennet.ru

Kuongeza maoni