Zenbleed: Sve što trebate znati o ovom AMD sigurnosnom bugu

click fraud protection

Posljednji u dugom nizu sigurnosnih grešaka za procesore, Zenbleed je još jedna stvar koju treba popraviti. Evo što trebate znati.

Nakon što su Spectre i Meltdown CPU eksploatacije objavljene 2018., računalni svijet je bio prilično oprezan o pronalaženju sigurnosnih grešaka i rupa u zakonu u procesorima, au posljednjih pet godina istraživači su pronašli tonu. Dana 24. srpnja javno je objavljeno još jedno iskorištavanje nakon što je prvi put objavljeno u svibnju. Ovaj put je specifičan za AMD procesore izgrađene na Zen 2 arhitekturi, a nazvan je "Zenbleed". Ovdje je sve što trebate znati o Zenbleedu i što on znači za svijet.

Kako radi Zenbleed?

Zenbleed je vrlo sličan drugim hardverskim sigurnosnim greškama kao što je Spectre u tome što iskorištava spekulativne sposobnosti CPU-a. Kako bi se poboljšala izvedba, procesori spekulirati ili predvidjeti sljedeću stvar koju trebaju učiniti, a otkako je Spectre prvi put otkriven, svijet je naučio da spekulacije mogu biti vrlo nesigurne ako se provode nepravilno.

Izvor: Tavis Ormandy

Registri u CPU-u mogu sadržavati malu količinu podataka, obično instrukcije, adresu za pohranu ili bilo koju drugu vrstu malih podataka. XMM registri u x86_64 arhitekturi (dakle, bilo koji od zahvaćenih Zen 2 procesora) mogu se koristiti samo za izračune podataka, a ne za adresiranje memorije. Ovo je prošireno na 256 bita u slučaju YMM registara i 512 bita u ZMM registrima. U ovom slučaju, XMM se odnosi na nižih 128 bitova od ukupno 512 bita ZMM registara.

Ovi registri su nevjerojatno korisni za mnogo različitih stvari, uključujući standardne C funkcije. Ranjivost zlorabi spekulativno izvršavanje i pogrešna predviđanja grananja kako bi zapravo izbacila nasumični dio podataka iz memorije, ali ti podaci mogu biti iz bilo što. Funkcije standardne C knjižnice poput strlen, koja mjeri duljinu niza, mogu koristiti ove registre za premještanje podataka i moguće je da je slučajno lozinka koju koristite nesretno upala u jedan od ovih registri.

Predviđanje grananja i spekulativno izvršenje općenito se odnose na to kada vaše računalo izvodi operacije koje još nisu potrebne, ali će vjerojatno biti potrebne u sljedećim ciklusima. To se često radi u trenucima kada vaš sustav ima slobodnih resursa, jer ubrzava cjelokupnu obradu kada upute ili podaci inače još ne bi bili spremni za CPU. Ako obavljeni posao nije potreban, obično se odbacuje i procesor se može vratiti na mjesto gdje treba kako bi izvršio sljedeću, ispravnu, instrukciju. Kada to učini, to se zove pogrešno predviđanje grananja.

Ono gdje se javlja problem je u vzeroupper instrukciji, koja nulira bitove na poziciji 128 i više YMM i ZMM registara. To se posebno radi pri prijelazu između AVX i naslijeđenog SSE koda, jer eliminira performanse kazne uzrokovane lažnim ovisnostima dok se također izbjegava učinak sličan cjelobrojnoj promociji u C.

Ako procesor spekulativno izvrši vzeroupper instrukciju, nema ispravnog vraćanja. Međutim, zahvaćeni Ryzen procesori mogu se prisiliti na oporavak od toga, iako neispravno. Jednom u tom stanju, program koji se trenutno izvodi može špijunirati te registre u stvarnom vremenu, pregledavajući podatke koji teku sustavom u bilo kojem trenutku.

Na koje CPU-e utječe Zenbleed i kada će zakrpe biti dostupne?

Kao što je prije navedeno, poznato je da su samo AMD CPU-ovi temeljeni na Zen 2 arhitekturi ranjivi na Zenbleed sigurnosni bug, ali arhitektura Zen 2 napaja CPU-e u tri serije, zbog čega je teško otkriti koji su CPU-i ranjivi, a koji nisu. Evo tablice iz koje bi sve trebalo biti jasno:

Pogođeni procesori

Serija Ryzen 3000

Sve osim APU-a (npr. Ryzen 3 3200G)

Epski Rim

svi

Serija Ryzen 4000

svi

Serija Ryzen 5000

Samo 5300U, 5500U i 5700U

Serija Ryzen 7000

Samo 7020 APU (npr. Ryzen 3 7320U)

Radi se o prilično velikoj količini AMD procesora, a ovo su samo oni koji su do sada potvrđeni. Zen 2 se također koristi u APU-ima koji pokreću Steam Deck, Xbox Series S i X i PS5. Ni u jednom slučaju nismo čuli jesu li i ti CPU-i pogođeni, ali sudeći po načinu na koji ovaj exploit radi, bio bih iznenađen da i oni nisu pogođeni. Čini se malo vjerojatnim da ga je AMD zakrpao za Xbox i PS5 budući da su čipovi serije 7020, koji su noviji, također pogođeni.

U vrijeme pisanja ovog teksta, mikrokod je poslan u Linux kernel koji će zakrpati ovu ranjivost, a vaš operativni sustav ili BIOS možda već imaju ažuriranje koje rješava ovaj problem.

Što to znači za računala koja koriste ranjive procesore?

Na ovo je teško odgovoriti jer nisu sva računala jednaka. Za normalne ljude koji samo koriste stolna i prijenosna računala za igranje, vjerojatno ne morate biti toliko zabrinuti. Ovo je prilično sofisticirana eksploatacija i iako je sada javno poznato, još nema poznatih primjera da je napadač koristio Zenbleed za hakiranje bilo čega.

Međutim, ulozi su puno veći za podatkovne centre i važne ljude koji rukuju osjetljivim informacijama na vlastitim računalima. Postoji razlog zašto je AMD vrlo jasno rekao da je Epyc Rome zakrpan prije nego što je ranjivost objavljena: puno osjetljivih podacima upravljaju Epyc CPU-i i bila bi katastrofa da bilo koji CPU-i koji pokreću velike poslužitelje budu uspješno napadnut. Linux kernel 6.4.6 već je objavljen i popravlja ovu ranjivost uvlačenjem u službena zakrpa mikrokoda od AMD-a. Čini se vjerojatnim da će Microsoft ugraditi nešto slično u Windows.

Zabrinjavajuće, AMD-ove službene zakrpe za BIOS možda neće izaći još nekoliko mjeseci, u kojem slučaju postoji "zalogaj piletine" koji možete postaviti ako ste na Linux ili FreeBSD stroju. Na Linux strojevima možete koristiti msr-tools i izvršiti sljedeću naredbu.

wrmsr -a 0xc0011029 $(($(rdmsr -c 0xc0011029) | (1<<9)))

Na FreeBSD-u također možete koristiti sljedeće.

cpucontrol(8)

Onemogućavanje SMT-a nije dovoljno za ublažavanje ranjivosti.

Jedna stvar koja Zenbleed čini posebno lošim je to što je Zen 2 bio jedna od najpopularnijih AMD-ovih CPU arhitektura. Pokrenuo je AMD-ov povratak 2019. i 2020., a mnogi ljudi, tvrtke i organizacije još uvijek koriste računala sa Zen 2 procesorima 2023., posebice Epyc Rome procesori. Ovo nije tako loše kao Spectre (koji utječe na gotovo sve CPU-e prije 2019.) i Meltdown (koji utječe na gotovo sve Intelove CPU-e prije 2019.), ali je još uvijek prilično raširen.

Sigurnosne zakrpe za ranjivosti poput ove također često rezultiraju kaznom performansi, ali AMD je rekao Tomov hardver da će ta kazna ovisiti o procesoru i opterećenju. Nagađanja i predviđanja bili su prilično važni za izvedbu CPU-a, tako da nije jasno hoće li neki potencijalni popravak dovesti do značajnog smanjenja performansi.