Zenbleed: Všetko, čo potrebujete vedieť o tejto bezpečnostnej chybe AMD

Najnovšia z dlhej série bezpečnostných chýb pre CPU, Zenbleed, je ďalšou vecou, ​​ktorú je potrebné opraviť. Tu je to, čo potrebujete vedieť.

Po zverejnení využitia Spectre a Meltdown CPU v roku 2018 bol počítačový svet dosť ostražitý o hľadaní bezpečnostných chýb a medzier v procesoroch a za posledných päť rokov ich výskumníci našli veľa. 24. júla bol zverejnený ďalší exploit po tom, čo bol prvýkrát ohlásený v máji. Tentoraz je to špecifické pre procesory AMD postavené na architektúre Zen 2 a nazývajú sa „Zenbleed". Tu je všetko, čo potrebujete vedieť o Zenbleed a o tom, čo to znamená pre svet.

Akým spôsobom liek Zenbleed účinkuje?

Zenbleed je veľmi podobný iným hardvérovým bezpečnostným chybám, ako je Spectre, v tom, že využíva špekulatívne schopnosti procesorov. S cieľom zlepšiť výkon, CPU špekulovať alebo predpovedať ďalšiu vec, ktorú musia urobiť, a odkedy bol Spectre prvýkrát odhalený, svet sa naučil, že špekulácie môžu byť veľmi neisté, ak sa vykonajú nesprávne.

Zdroj: Tavis Ormandy

Registre v CPU môžu obsahovať malé množstvo údajov, zvyčajne inštrukciu, adresu úložiska alebo akýkoľvek iný druh malých údajov. Registre XMM v architektúre x86_64 (takže ktorýkoľvek z dotknutých procesorov Zen 2) možno použiť iba na výpočty s údajmi, nie na adresovanie pamäte. Toto je rozšírené na 256 bitov v prípade registrov YMM a 512 bitov v registroch ZMM. V tomto prípade XMM označuje spodných 128 bitov Celkom 512 bitov registrov ZMM.

Tieto registre sú neuveriteľne užitočné pre mnoho rôznych vecí, vrátane štandardných funkcií C. Zraniteľnosť zneužíva špekulatívne vykonávanie a nesprávne predpovede vetvenia na to, aby v podstate vypľula náhodný kus údajov z pamäte, ale tieto údaje môžu pochádzať z čokoľvek. Štandardné funkcie knižnice C ako strlen, ktorá meria dĺžku reťazca, môžu tieto registre použiť na presun údajov a je možné, že heslo, ktoré používate, nešťastne padlo do jedného z týchto registrov.

Predikcia pobočiek a špekulatívne vykonávanie sa vo všeobecnosti týka toho, keď váš počítač vykonáva operácie, ktoré ešte nie sú potrebné, ale pravdepodobne budú potrebné v nasledujúcich cykloch. Často sa to robí v časoch, keď má váš systém voľné zdroje, pretože to urýchľuje celkové spracovanie, keď pokyny alebo údaje inak ešte nie sú pripravené pre CPU. Ak vykonaná práca nie je potrebná, zvyčajne sa zahodí a procesor môže skočiť späť tam, kde potrebuje, aby vykonal ďalšiu, správnu inštrukciu. Keď to urobí, nazýva sa to nesprávna predpoveď vetvy.

Kde nastáva problém je v inštrukcii vzeroupper, ktorá vynuluje bity na pozícii 128 a vyššie registrov YMM a ZMM. Robí sa to najmä pri prechode medzi AVX a starým kódom SSE, pretože to eliminuje výkon sankcie spôsobené falošnými závislosťami a zároveň sa vyhýbajú efektu, ktorý je podobný celočíselnej propagácii v C.

Ak procesor špekulatívne vykoná inštrukciu vzeroupper, nedôjde k správnemu rollbacku. Postihnuté procesory Ryzen však môžu byť prinútené obnoviť sa, hoci nesprávne. V tomto stave môže práve spustený program sledovať tieto registre v reálnom čase a prezerať si dáta pretekajúce systémom v akomkoľvek danom čase.

Na aké procesory má Zenbleed vplyv a kedy budú dostupné záplaty?

Ako už bolo uvedené, iba procesory AMD založené na architektúre Zen 2 sú známe ako zraniteľné voči bezpečnostnej chybe Zenbleed, ale architektúra Zen 2 poháňa CPU v troch sériách, takže je zložité zistiť, ktoré CPU sú zraniteľné a ktoré nie sú. Tu je tabuľka, ktorá by mala všetko objasniť:

Ovplyvnené CPU

Rad Ryzen 3000

Všetky okrem APU (napr. Ryzen 3 3200G)

Epyc Rím

Všetky

Rad Ryzen 4000

Všetky

Rad Ryzen 5000

Iba 5300U, 5500U a 5700U

Rad Ryzen 7000

Iba 7020 APU (napr. Ryzen 3 7320U)

Ide o pomerne veľké množstvo procesorov AMD a toto sú len tie, ktoré sú zatiaľ potvrdené. Zen 2 sa používa aj v APU, ktoré poháňa Steam Deck, Xbox Series S a X a PS5. Nepočuli sme ani v jednom prípade, či sú ovplyvnené aj tieto CPU, ale súdiac podľa toho, ako tento exploit funguje, bol by som prekvapený, keby neboli ovplyvnené aj oni. Zdá sa nepravdepodobné, že by to AMD opravilo na Xbox a PS5, pretože sú ovplyvnené aj čipy série 7020, ktoré sú novšie.

V čase písania mikrokód bol odoslaný do jadra Linuxu ktorý opraví túto chybu zabezpečenia a váš operačný systém alebo BIOS už môže mať aktualizáciu, ktorá tento problém rieši.

Čo to znamená pre počítače, ktoré používajú zraniteľné procesory?

Na to je ťažké odpovedať, pretože nie všetky počítače sú rovnaké. Pre normálnych ľudí, ktorí len používajú herné stolové počítače a notebooky, sa pravdepodobne nemusíte obávať. Ide o dosť sofistikovaný exploit a hoci je to už verejne známe, zatiaľ nie sú známe žiadne príklady útočníka, ktorý by Zenbleed použil na preniknutie do čohokoľvek.

V stávke sú však oveľa vyššie dátové centrá a dôležité osoby narábajúce s citlivými informáciami na svojich vlastných počítačoch. Existuje dôvod, prečo bolo AMD veľmi jasné, že Epyc Rome bol opravený predtým, ako bola zraniteľnosť zverejnená: veľa citlivých informácie sú spracovávané procesormi Epyc a bola by katastrofa, keby boli úspešne niektoré procesory napájajúce veľké servery napadol. Linuxové jadro 6.4.6 je už vydané a opravuje túto chybu zabezpečením oficiálna oprava mikrokódu od AMD. Zdá sa pravdepodobné, že Microsoft začlení niečo podobné do systému Windows.

znepokojivo, Oficiálne záplaty systému BIOS od AMD sa nemusia objaviť niekoľko mesiacov, v takom prípade existuje „kurací kúsok“, ktoré môžete nastaviť, ak používate počítač so systémom Linux alebo FreeBSD. Na počítačoch so systémom Linux môžete použiť msr-tools a spustiť nasledujúci príkaz.

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

Na FreeBSD môžete použiť aj nasledujúce.

cpucontrol(8)

Zakázanie SMT na zmiernenie zraniteľnosti nestačí.

Jedna vec, ktorá robí Zenbleed obzvlášť zlým, je to, že Zen 2 bol jednou z najpopulárnejších architektúr CPU AMD. V rokoch 2019 a 2020 to odštartovalo comeback AMD a veľa ľudí, spoločností a organizácií stále používa počítače s procesormi Zen 2 aj v roku 2023, najmä Epyc Rome. CPU. Nie je to také zlé ako Spectre (ktorý ovplyvňuje takmer všetky procesory pred rokom 2019) a Meltdown (ktorý ovplyvňuje takmer všetky procesory Intel pred rokom 2019), ale stále je to dosť rozšírené.

Bezpečnostné záplaty pre slabé miesta, ako je táto, tiež často vedú k zníženiu výkonu, ale Povedala AMD Tomov hardvér že táto penalizácia bude závisieť od CPU a pracovného zaťaženia. Špekulácie a predpovede boli pre výkon CPU dosť dôležité, takže nie je jasné, či nejaká potenciálna oprava zaznamená výrazné zníženie výkonu.