Zenbleed: Vše, co potřebujete vědět o této bezpečnostní chybě AMD

Poslední z dlouhé řady bezpečnostních chyb pro CPU, Zenbleed, je další věc, kterou je třeba opravit. Zde je to, co potřebujete vědět.

Poté, co byly v roce 2018 zveřejněny exploity CPU Spectre a Meltdown, byl počítačový svět velmi ostražitý o hledání bezpečnostních chyb a mezer v procesorech a za posledních pět let jich výzkumníci našli tuny. 24. července byl zveřejněn další exploit poté, co byl poprvé nahlášen v květnu. Tentokrát je to specifické pro procesory AMD postavené na architektuře Zen 2 a nese název „Zenbleed". Zde je vše, co potřebujete vědět o Zenbleed a co to znamená pro svět.

Jak přípravek Zenbleed působí?

Zenbleed je velmi podobný jiným hardwarovým bezpečnostním chybám, jako je Spectre, v tom, že využívá spekulativní schopnosti CPU. Aby se zlepšil výkon, CPU spekulovat nebo předpovídat další věc, kterou musí udělat, a od té doby, co byl Spectre poprvé odhalen, svět se naučil, že spekulace mohou být velmi nejisté, pokud se udělají nesprávně.

Zdroj: Tavis Ormandy

Registry v CPU mohou obsahovat malé množství dat, typicky instrukce, adresu úložiště nebo jakýkoli jiný druh malých dat. Registry XMM v architektuře x86_64 (takže jakýkoli z dotčených procesorů Zen 2) lze použít pouze k provádění výpočtů s daty, nikoli k adresování paměti. Ta je rozšířena na 256 bitů v případě registrů YMM a 512 bitů v registrech ZMM. V tomto případě XMM odkazuje na nižších 128 bitů

celkový 512 bitů registrů ZMM.

Tyto registry jsou neuvěřitelně užitečné pro mnoho různých věcí, včetně standardních funkcí C. Tato chyba zabezpečení zneužívá spekulativní provádění a nesprávné předpovědi větví k tomu, aby v podstatě vyplivla náhodný kus dat z paměti, ale tato data mohou pocházet z cokoliv. Standardní funkce knihovny C, jako je strlen, která měří délku řetězce, mohou tyto registry používat pro přesun dat a je možné, že heslo, které používáte, se nešťastně mohlo dostat do jednoho z těchto registrů.

Predikce větví a spekulativní provádění obecně označují, kdy váš počítač provádí operace, které ještě nejsou potřebné, ale budou pravděpodobně potřebné v následujících cyklech. Často se to provádí v době, kdy má váš systém volné zdroje, protože urychluje celkové zpracování, když by instrukce nebo data jinak ještě nebyly připraveny pro CPU. Pokud odvedená práce není potřeba, je obvykle zahozena a procesor může skočit zpět tam, kam potřebuje, aby provedl další správnou instrukci. Když to udělá, nazývá se to chybná předpověď větve.

Kde nastává problém, je instrukce vzeroupper, která vynuluje bity na pozici 128 a výše registrů YMM a ZMM. To se provádí zejména při přechodu mezi AVX a starším kódem SSE, protože to eliminuje výkon sankce způsobené falešnými závislostmi a zároveň se vyhýbají efektu, který je podobný celočíselné propagaci v C.

Pokud procesor spekulativně provede instrukci vzeroupper, nedojde k řádnému vrácení zpět. Postižené procesory Ryzen však mohou být nuceny se z něj zotavit, i když nesprávně. V tomto stavu může aktuálně spuštěný program sledovat tyto registry v reálném čase a prohlížet si data protékající systémem v kteroukoli danou chvíli.

Jaké procesory jsou ovlivněny Zenbleedem a kdy budou dostupné záplaty?

Jak bylo uvedeno dříve, pouze procesory AMD založené na architektuře Zen 2 jsou známy jako zranitelné vůči bezpečnostní chybě Zenbleed, ale architektura Zen 2 pohání CPU ve třech sériích, takže je obtížné zjistit, které CPU jsou zranitelné a které nejsou. Zde je tabulka, která by měla vše objasnit:

Dotčené CPU

Ryzen řady 3000

Všechny kromě APU (např. Ryzen 3 3200G)

Epyc Řím

Všechno

Ryzen řady 4000

Všechno

Ryzen řady 5000

Pouze 5300U, 5500U a 5700U

Ryzen řady 7000

Pouze 7020 APU (např. Ryzen 3 7320U)

Jde o docela velké množství procesorů AMD a to jsou zatím jen ty potvrzené. Zen 2 se také používá v APU, které pohání Steam Deck, Xbox Series S a X a PS5. Ani jsme neslyšeli, zda jsou tyto CPU také ovlivněny, ale soudě podle toho, jak tento exploit funguje, byl bych překvapen, kdyby nebyly ovlivněny také. Zdá se nepravděpodobné, že by to AMD opravilo v Xboxu a PS5, protože jsou ovlivněny i čipy řady 7020, které jsou novější.

v době psaní mikrokód byl odeslán do linuxového jádra která tuto chybu zabezpečení opraví a váš operační systém nebo BIOS již může mít aktualizaci, která tento problém řeší.

Co to znamená pro počítače, které používají zranitelné procesory?

Na to je těžké odpovědět, protože ne všechny počítače jsou si rovny. Pro normální lidi, kteří pouze používají herní stolní počítače a notebooky, se pravděpodobně nemusíte tolik obávat. Jedná se o velmi sofistikovaný exploit a ačkoli je to nyní veřejně známé, zatím nejsou známy žádné příklady útočníků, kteří by se pomocí Zenbleedu do něčeho nabourali.

U datových center a důležitých lidí, kteří na svých vlastních počítačích nakládají s citlivými informacemi, jsou však sázky mnohem vyšší. Existuje důvod, proč bylo AMD velmi jasné, že Epyc Rome byl opraven předtím, než byla zranitelnost zveřejněna: spousta citlivých informace jsou zpracovávány procesory Epyc a byla by katastrofa, kdyby nějaké procesory napájející velké servery byly úspěšně napadl. Linuxové jádro 6.4.6 je již vydáno a opravuje tuto chybu zabezpečení zavedením oficiální patch mikrokódu od AMD. Zdá se pravděpodobné, že Microsoft začlení něco podobného do Windows.

znepokojivě, Oficiální záplaty BIOSu od AMD se možná objeví až za několik měsíců, v takovém případě existuje "kuřecí kousek“, kterou můžete nastavit, pokud používáte počítač se systémem Linux nebo FreeBSD. Na počítačích se systémem Linux můžete použít msr-tools a spustit následující příkaz.

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

Na FreeBSD můžete také použít následující.

cpucontrol(8)

Zakázání SMT ke zmírnění zranitelnosti nestačí.

Jedna věc, která dělá Zenbleed obzvlášť špatným, je to, že Zen 2 byl jednou z nejoblíbenějších architektur CPU AMD. V roce 2019 a 2020 odstartoval comeback AMD a mnoho lidí, společností a organizací stále používá počítače s procesory Zen 2 v roce 2023, zejména Epyc Rome. CPU. Není to tak špatné jako Spectre (který ovlivňuje téměř všechny procesory před rokem 2019) a Meltdown (který postihuje téměř všechny procesory Intel před rokem 2019), ale stále je to docela rozšířený.

Bezpečnostní záplaty pro zranitelnosti, jako je tato, také často vedou k omezení výkonu, ale řekl AMD Tomův hardware že tato penalizace bude záviset na CPU a zátěži. Spekulace a předpovědi byly pro výkon CPU docela důležité, takže není jasné, zda nějaká potenciální oprava zaznamená výrazné snížení výkonu.