Aktuality  |  Články  |  Recenze
Doporučení  |  Diskuze
Grafické karty a hry  |  Procesory
Storage a RAM
Monitory  |  Ostatní
Akumulátory, EV
Robotika, AI
Průzkum vesmíru
Digimanie  |  TV Freak  |  Svět mobilně

Našly se dvě nové bezpečnostní díry u CPU, tentokrát u AMD od Bulldozeru po Zen

8.3.2020, Milan Šurkala, aktualita
Našly se dvě nové bezpečnostní díry u CPU, tentokrát u AMD od Bulldozeru po Zen
Bezpečnostní díry v technologiích procesorů si sice většinou spojujeme s čipy od Intelu, ale nedostatky se nevyhýbají ani jiným výrobcům včetně AMD. U něj se nyní objevily dvě nové chyby typu Collide+Probe s Load+Reload.
Moderní procesory mají spoustu technologií, které vylepšují jejich vlastnosti (především výkon), ty ale přináší rizika většího množství bezpečnostních rizik. Dosud byly s těmito problémy spojovány zejména procesory Intel, u kterých se nějaká chyba nachází každou chvíli, to ale zdaleka neznamená, že by měli ostatní výrobci čistý štít. Pár chyb se našlo i u AMD, přičemž počet bezpečnostních chyb se právě rozrostl o další dvě typu Collide+Probe a Load+Reload.
 
AMD logo
 
Ty jsou spojeny s datovou cache L1 (L1D), konkrétně prediktorem umístění dat. U vícecestných cache pamětí je možné data z paměti namapovat do více míst v cache. Právě to, kolikacestná cache je, určuje, kolik různých pozic v cache se musí otestovat při hledání dat, než se CPU vydá do dalších vrstev cache nebo RAM paměti. Pokud je cache jen jednocestná (1-way), tento test je okamžitý, CPU se hned dozví, zda v cache požadovaná data jsou nebo ne, ale často dochází k tomu, že je pak nutno jít pro data do pomalejších pamětí.
 
Pokud je vícecestná, např. 8cestná (8-way), pak sice musí provést více těchto testů, což stojí čas i energii, ale je pravděpodobnější, že se tu ona data najdou a nebude se pro ně muset do pomalejší paměti. Je tedy nutno najít ten správný kompromis. Výše zmíněný prediktor tento problém do jisté míry řeší, protože snižuje počet testů tím, že se snaží předpovědět, na které adrese by se data měla vyskytovat. Tím, že je obvykle najde rychleji, se zvyšuje rychlost a snižuje se spotřeba. Právě tento prediktor má ale bezpečnostní problém.
 
Problematické procesory AMD
 
Našli jej bezpečnostní výzkumníci na univerzitách ve Štýrském Hardci v Rakousku a v Rennes ve Francii. Souvisí s tzv. identifikátorem μTag, který je výsledkem nedokumentované hashovací funkce, která je provedena na virtuální adrese. Ta může nabývat jen 256 různých výstupů. V případě chyby Collide+Probe útočník zjišťuje umístění dat na základě rozdílu přístupových časů. Pokud byl dotaz pro daný μTag proveden rychle a nebylo přistoupeno na monitorovanou pomalejší paměť, ví, že data jsou v L1D cache a naopak, což mu dopomůže k přístupu na jinak nedostupnou paměť. Load+Reload se týká útoku na sousední vlákno, opět měřením doby přístupu, tedy které vlákno a jak rychle dokázalo přistoupit na danou adresu v paměti, které muselo pro data až do L2, a které jen do L1.
 
Výzkumníci tvrdí, že napadení CPU pomocí těchto nedostatků je relativně snadné a povedlo se jim to s běžným JavaScriptem v prohlížeči. Změřili, že takto jsou schopni získat data rychlostí až 588,9 kB/s a snížit tak např. náhodnost generovaných čísel, což útočníkům usnadní predikci umístění kódu v CPU a spolu s tím umožní útok (např. i získání šifrovacího klíče pro AES). Chyba byla nalezena na procesorech AMD od generace Bulldozer, tedy i Piledriver, Streamroller, Zen, Zen+ i Zen 2. Chyba byla AMD nahlášena 23. srpna 2019, prozatím se ale neví o žádné opravě mikrokódu.
 


Autor: Milan Šurkala
Vystudoval doktorský program v oboru informatiky a programování se zaměřením na počítačovou grafiku. Nepřehlédněte jeho seriál Fotíme s Koalou o základech fotografování.