Jaunākā CPU drošības kļūdu sērija Zenbleed ir vēl viena lieta, kas ir jālabo. Lūk, kas jums jāzina.
Pēc tam, kad Spectre un Meltdown CPU ekspluatācijas tika publiskotas 2018. gadā, skaitļošanas pasaule ir bijusi diezgan modra. par drošības kļūdu un nepilnību atrašanu procesoros, un pēdējo piecu gadu laikā pētnieki ir atraduši tonnu. 24. jūlijā publiski tika atklāts vēl viens noziegums, par kuru pirmo reizi tika ziņots maijā. Šoreiz tas ir raksturīgs AMD procesoriem, kas veidoti uz Zen 2 arhitektūras, un to sauc par "Zenbleed". Šeit ir viss, kas jums jāzina par Zenbleed un to, ko tas nozīmē pasaulei.
Kā Zenbleed darbojas?
Zenbleed ir ļoti līdzīgs citām uz aparatūru balstītām drošības kļūdām, piemēram, Spectre, jo tā izmanto CPU spekulatīvās spējas. Lai uzlabotu veiktspēju, CPU spekulēt vai paredzēt nākamo lietu, kas viņiem jādara, un kopš Spectre pirmo reizi tika atklāts, pasaule ir iemācījusies, ka spekulācijas var būt ļoti nedrošas, ja tās tiek veiktas. nepareizi.
CPU reģistros var būt neliels datu apjoms, parasti instrukcija, krātuves adrese vai jebkāda cita veida mazi dati. XMM reģistrus x86_64 arhitektūrā (tātad jebkuru no ietekmētajiem Zen 2 procesoriem) var izmantot tikai datu aprēķinu veikšanai, nevis adresēšanai atmiņā. Tas tiek paplašināts līdz 256 bitiem YMM reģistros un 512 bitiem ZMM reģistros. Šajā gadījumā XMM attiecas uz apakšējiem 128 bitiem
Kopā 512 biti ZMM reģistros.Šie reģistri ir neticami noderīgi daudzām dažādām lietām, tostarp standarta C funkcijām. Ievainojamība ļaunprātīgi izmanto spekulatīvu izpildi un zaru nepareizas prognozes, lai būtībā izspļautu nejaušu datu daļu no atmiņas, taču šie dati var būt no jebko. Standarta C bibliotēkas funkcijas, piemēram, strlen, kas mēra virknes garumu, var izmantot šos reģistrus datu pārvietošanai un iespējams, ka nejauši jūsu izmantotā parole nelaimīgā kārtā ir iekļuvusi kādā no šīm reģistros.
Nozares prognozēšana un spekulatīvā izpilde parasti attiecas uz gadījumiem, kad dators veic darbības, kas vēl nav vajadzīgas, bet, iespējams, būs nepieciešamas nākamajos ciklos. Tas bieži tiek darīts brīžos, kad jūsu sistēmai ir brīvi resursi, jo tas paātrina kopējo apstrādi, kad instrukcijas vai dati citādi vēl nebūtu gatavi CPU. Ja paveiktais darbs nav vajadzīgs, tas parasti tiek izmests un procesors var pāriet atpakaļ uz vajadzīgo vietu, lai izpildītu nākamo, pareizo instrukciju. Kad tas tiek darīts, to sauc par filiāles nepareizu prognozēšanu.
Problēma rodas vzeroupper instrukcijā, kas nullē bitus YMM un ZMM reģistru 128. pozīcijā un augstāk. Tas tiek darīts īpaši, pārejot no AVX uz mantoto SSE kodu, jo tas samazina veiktspēju sodi, ko izraisa nepatiesas atkarības, vienlaikus izvairoties no efekta, kas ir līdzīgs veselu skaitļu veicināšanai C.
Ja procesors spekulatīvi izpilda vzeroupper instrukciju, pareizas atcelšanas nav. Tomēr ietekmētie Ryzen procesori var būt spiesti no tā atgūties, lai gan nepareizi. Atrodoties šajā stāvoklī, pašlaik izpildāmā programma var reāllaikā izspiegot šos reģistrus, jebkurā laikā aplūkojot datus, kas plūst visā sistēmā.
Kādus CPU ietekmē Zenbleed, un kad būs pieejami ielāpi?
Kā minēts iepriekš, ir zināms, ka tikai AMD CPU, kuru pamatā ir Zen 2 arhitektūra, ir neaizsargāti pret Zenbleed drošības kļūdu, taču Zen 2 arhitektūra ir darbinājusi CPU trīs sērijās, tāpēc ir grūti noskaidrot, kuri CPU ir neaizsargāti un kuri nav. Šeit ir tabula, kurā viss būtu skaidri redzams:
Ietekmētie CPU | |
---|---|
Ryzen 3000 sērija |
Visi, izņemot APU (piemēram, Ryzen 3 3200G) |
Epyc Roma |
Visi |
Ryzen 4000 sērija |
Visi |
Ryzen 5000 sērija |
Tikai 5300U, 5500U un 5700U |
Ryzen 7000 sērija |
Tikai 7020 APU (piemēram, Ryzen 3 7320U) |
Tas ir diezgan liels AMD procesoru daudzums, un tie ir tikai tie, kas līdz šim ir apstiprināti. Zen 2 tiek izmantots arī APU, kas darbina Steam Deck, Xbox Series S un X un PS5. Mēs neesam dzirdējuši, vai šie CPU arī tiek ietekmēti, taču, spriežot pēc tā, kā darbojas šī izmantošana, es būtu pārsteigts, ja tie netiktu ietekmēti. Šķiet maz ticams, ka AMD to laboja Xbox un PS5, jo tiek ietekmētas arī jaunākās 7020 sērijas mikroshēmas.
Rakstīšanas laikā mikrokods ir iesniegts Linux kodolam kas aizlāps šo ievainojamību, un jūsu operētājsistēmai vai BIOS, iespējams, jau ir atjauninājums, kas novērš šo problēmu.
Ko tas nozīmē datoriem, kuros tiek izmantoti neaizsargāti CPU?
Uz to ir grūti atbildēt, jo ne visi datori ir vienādi. Parastiem cilvēkiem, kuri tikai izmanto spēļu galddatorus un klēpjdatorus, jums, iespējams, nav jāuztraucas. Šis ir diezgan sarežģīts paņēmiens, un, lai gan tagad tas ir publiski zināms, pagaidām nav zināmi piemēri, kad uzbrucējs būtu izmantojis Zenbleed, lai kaut ko uzlauztu.
Tomēr likmes ir daudz lielākas datu centriem un svarīgiem cilvēkiem, kuri savos datoros apstrādā sensitīvu informāciju. Ir iemesls, kāpēc AMD ir ļoti skaidri paziņojis, ka Epyc Rome tika izlabots pirms ievainojamības publiskošanas: daudz sensitīvu informāciju apstrādā Epyc CPU, un būtu katastrofa, ja kāds CPU, kas darbina liela mēroga serverus, būtu sekmīgi uzbruka. Linux kodols 6.4.6 jau ir izlaists un novērš šo ievainojamību, ieviešot oficiālais mikrokoda ielāps no AMD. Šķiet, ka Microsoft iekļaus kaut ko līdzīgu sistēmā Windows.
satraucoši, AMD oficiālie BIOS ielāpi var nebūt pieejami vairākus mēnešus, tādā gadījumā ir "vistas mazliet", ko varat iestatīt, ja izmantojat Linux vai FreeBSD iekārtu. Linux iekārtās varat izmantot msr-tools un izpildīt šādu komandu.
wrmsr -a 0xc0011029 $(($(rdmsr -c 0xc0011029) | (1<<9)))
Uz FreeBSD varat izmantot arī sekojošo.
cpucontrol(8)
Ar SMT atspējošanu nepietiek, lai mazinātu ievainojamību.
Viena lieta, kas padara Zenbleed īpaši sliktu, ir tas, ka Zen 2 bija viena no AMD populārākajām CPU arhitektūrām. Tas aizsāka AMD atgriešanos 2019. un 2020. gadā, un daudzi cilvēki, uzņēmumi un organizācijas 2023. gadā joprojām izmanto datorus ar Zen 2 procesoriem, īpaši Epyc Rome. CPU. Tas nav tik slikti kā Spectre (kas ietekmē gandrīz visus pirms 2019. gada ražotos CPU) un Meltdown (kas ietekmē gandrīz visus pirms 2019. gada ražotos Intel CPU), taču tas joprojām ir diezgan. plaši izplatīts.
Arī šādu ievainojamību drošības ielāpi bieži rada sodu par veiktspēju, taču AMD pastāstīja Toma aparatūra ka šis sods būs atkarīgs no CPU un darba slodzes. Spekulācijas un prognozes ir bijušas diezgan svarīgas CPU veiktspējai, tāpēc nav skaidrs, vai kāds iespējamais labojums būtiski samazinās veiktspēju.