Zenbleed: Vse, kar morate vedeti o tej varnostni napaki AMD

Zadnji v dolgem nizu varnostnih napak za procesorje, Zenbleed je še ena stvar, ki jo je treba popraviti. Tukaj je tisto, kar morate vedeti.

Potem ko so bili leta 2018 objavljeni podvigi Spectre in Meltdown CPU, je bil računalniški svet precej previden o iskanju varnostnih hroščev in vrzeli v procesorjih, v zadnjih petih letih pa so jih raziskovalci našli ogromno. 24. julija je bil javno razkrit še en podvig, potem ko so o njem prvič poročali maja. Tokrat je specifična za procesorje AMD, zgrajene na arhitekturi Zen 2, in je poimenovana "Zenbleed". Tukaj je vse, kar morate vedeti o Zenbleedu in kaj pomeni za svet.

Kako deluje Zenbleed?

Zenbleed je zelo podoben drugim varnostnim hroščem, ki temeljijo na strojni opremi, kot je Spectre, saj izkorišča špekulativne sposobnosti procesorjev. Da bi izboljšali zmogljivost, procesorji špekulirajo ali napovedujejo naslednjo stvar, ki jo morajo storiti, in odkar je bil Spectre prvič razkrit, se je svet naučil, da so lahko špekulacije zelo nevarne, če se izvajajo. nepravilno.

Vir: Tavis Ormandy

Registri v CPE lahko vsebujejo majhno količino podatkov, običajno navodilo, naslov za shranjevanje ali katero koli drugo vrsto majhnih podatkov. Registre XMM v arhitekturi x86_64 (torej katerega koli od prizadetih procesorjev Zen 2) je mogoče uporabiti samo za izračune podatkov, ne pa za naslavljanje pomnilnika. To je razširjeno na 256 bitov v primeru registrov YMM in 512 bitov v registrih ZMM. V tem primeru se XMM nanaša na spodnjih 128 bitov skupaj 512 bitov registrov ZMM.

Ti registri so neverjetno uporabni za veliko različnih stvari, vključno s standardnimi funkcijami C. Ranljivost zlorablja špekulativno izvajanje in napačne napovedi razvejanja, da v bistvu izpljune naključni del podatkov iz pomnilnika, vendar so ti podatki lahko iz karkoli. Standardne funkcije knjižnice C, kot je strlen, ki meri dolžino niza, lahko uporabljajo te registre za premikanje podatkov in možno je, da je geslo, ki ga uporabljate, po naključju padlo v enega od teh registri.

Predvidevanje veje in špekulativno izvajanje se na splošno nanašata na to, kdaj vaš računalnik izvaja operacije, ki še niso potrebne, vendar bodo verjetno potrebne v naslednjih ciklih. To se pogosto izvaja v času, ko ima vaš sistem prosta sredstva, saj pospeši celotno obdelavo, ko navodila ali podatki sicer še ne bi bili pripravljeni za CPE. Če opravljeno delo ni potrebno, se običajno zavrže in procesor lahko skoči nazaj tja, kjer mora, da izvede naslednje, pravilno navodilo. Ko to stori, se to imenuje napačna napoved veje.

Kjer nastane težava, je v ukazu vzeroupper, ki izniči bite na položaju 128 in višje v registrih YMM in ZMM. To se naredi zlasti pri prehodu med AVX in podedovano kodo SSE, saj odpravlja zmogljivost kazni, ki jih povzročijo lažne odvisnosti, hkrati pa se izognete učinku, ki je podoben napredovanju celih števil v C.

Če procesor špekulativno izvede ukaz vzeroupper, ni ustreznega povrnitve. Vendar pa lahko prizadete procesorje Ryzen prisilimo, da si opomorejo od tega, čeprav nepravilno. Ko je v tem stanju, lahko program, ki se trenutno izvaja, v realnem času vohuni za temi registri in si v danem trenutku ogleda podatke, ki tečejo po sistemu.

Na katere procesorje vpliva Zenbleed in kdaj bodo na voljo popravki?

Kot je bilo že omenjeno, je znano, da so ranljivi za varnostno napako Zenbleed le procesorji AMD, ki temeljijo na arhitekturi Zen 2, vendar arhitektura Zen 2 poganja procesorje v treh serijah, zaradi česar je težko ugotoviti, kateri procesorji so ranljivi in ​​kateri niso. Tukaj je tabela, ki naj bo vse jasna:

Prizadeti procesorji

Serija Ryzen 3000

Vse razen APU-jev (npr. Ryzen 3 3200G)

Epski Rim

Vse

Serija Ryzen 4000

Vse

Serija Ryzen 5000

Samo 5300U, 5500U in 5700U

Serija Ryzen 7000

Samo 7020 APU (npr. Ryzen 3 7320U)

To je precej velika količina procesorjev AMD in to so le tisti, ki so bili doslej potrjeni. Zen 2 se uporablja tudi v APU-jih, ki poganjajo Steam Deck, Xbox Series S in X ter PS5. Tako ali drugače nismo izvedeli, ali so prizadeti tudi ti CPU-ji, a sodeč po tem, kako deluje to izkoriščanje, bi bil presenečen, če ne bi bili prizadeti tudi oni. Zdi se malo verjetno, da bi ga AMD zakrpal v Xboxu in PS5, saj to vpliva tudi na čipe serije 7020, ki so novejši.

V času pisanja, mikrokoda je bila poslana v jedro Linuxa ki bo popravil to ranljivost, vaš operacijski sistem ali BIOS pa morda že ima posodobitev, ki odpravlja to težavo.

Kaj to pomeni za računalnike, ki uporabljajo ranljive procesorje?

Na to vprašanje je težko odgovoriti, ker niso vsi računalniki enaki. Običajnim ljudem, ki samo uporabljajo igralne namizne in prenosne računalnike, verjetno ni treba biti tako zaskrbljen. To je precej prefinjen podvig in čeprav je zdaj javno znano, še ni znanih primerov, da bi napadalec uporabil Zenbleed za vdor v karkoli.

Vendar so vložki veliko višji za podatkovne centre in pomembne ljudi, ki v svojih računalnikih ravnajo z občutljivimi informacijami. Obstaja razlog, zakaj je AMD jasno povedal, da je bil Epyc Rome popravljen, preden je bila ranljivost javno objavljena: veliko občutljivih informacije obravnavajo procesorji Epyc in katastrofa bi bila, če bi bili kateri koli procesorji, ki napajajo velike strežnike, uspešni napadel. Jedro Linuxa 6.4.6 je že izdano in popravi to ranljivost tako, da vnese uradni popravek mikrokode od AMD. Zdi se verjetno, da bo Microsoft nekaj podobnega vključil v Windows.

zaskrbljujoče, AMD-jevi uradni popravki za BIOS morda ne bodo objavljeni še nekaj mesecev, v tem primeru obstaja "piščančji košček", ki ga lahko nastavite, če uporabljate računalnik z Linuxom ali FreeBSD. Na strojih Linux lahko uporabite msr-tools in izvedete naslednji ukaz.

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

Na FreeBSD lahko uporabite tudi naslednje.

cpucontrol(8)

Onemogočanje SMT ni dovolj za ublažitev ranljivosti.

Ena stvar, zaradi katere je Zenbleed še posebej slab, je, da je bil Zen 2 ena najbolj priljubljenih AMD-jevih arhitektur procesorjev. Začel je vrnitev AMD-ja v letih 2019 in 2020 in veliko ljudi, podjetij in organizacij še vedno uporablja računalnike s procesorji Zen 2 leta 2023, zlasti Epyc Rome procesorji. To ni tako slabo kot Spectre (ki prizadene skoraj vse procesorje pred letom 2019) in Meltdown (ki vpliva na skoraj vse procesorje Intel pred letom 2019), vendar je še vedno dokaj razširjena.

Varnostni popravki za takšne ranljivosti pogosto povzročijo tudi poslabšanje zmogljivosti, vendar AMD je povedal Tomova strojna oprema da bo ta kazen odvisna od procesorja in delovne obremenitve. Špekulacije in napovedi so bile precej pomembne za zmogljivost procesorja, zato ni jasno, ali bo morebitni popravek občutno zmanjšal zmogljivost.