Přejít k hlavnímu obsahu

Uzavírání mezer v CPU

Objevené chyby Spectre a Meltdown vedou k vlně aktualizací a záplat pro firmware, operační systémy i jednotlivé programy. Ne vše ale probíhá při updatech hladce. Přinášíme stručný přehled.

Super průšvih je označení, které se dá použít v souvislosti se zranitelností a narušením dat. To, co nezávisle na sobě loni objevili pracovníci podílející se na projektu Zero od Googlu a výzkumníci Technické univerzity v Grazu, má ve skutečnosti blízko ke scénáři nejhorší možné bezpečnostní nehody: Spectre a Meltdown postihují všechny moderní počítačové procesory, všechny moderní operační systémy, a dokonce i část současné generace smartphonů. Ohrožují bezpečnost dat v mobilních telefonech, stejně jako v datových centrech poskytovatelů cloudu i v soukromých počítačích.

V prvních dnech po ohlášení těchto chyb se ještě PR oddělení výrobců snažila celý problém bagatelizovat: v AMD ubezpečovali, že jejich produkty nejsou tímto problémem postiženy, Intel odvážně (a chybně) tvrdil, že mezery nemohou být zneužity k manipulaci s daty. Mezitím se ale provádějí opravy na všech úrovních a aktualizace postupně zavírají mezery. Co se dělo na zařízeních iOS ihned na přelomu roku, to probíhá v Androidu v závislosti na výrobci telefonu pomalejším tempem (musí být nainstalována úroveň zabezpečení alespoň z ledna 2018). Opravdu složitá a matoucí situace panuje v případě Windows.

Jak fungují útoky

Obě bezpečnostní mezery mohou vést ke zrušení oddělení dat a procesů různých uživatelů nebo různých úrovní přístupových práv. Metody útoku umožňují jednoduchému uživatelskému procesu, jako je například webový prohlížeč, který používá kompromitovaný plug-in, číst hesla, certifikáty nebo jiná důležitá data přímo ze systému a odesílat je na řídicí server. V nejhorším případě je dokonce možné zaútočit z virtuálního stroje a ukrást data jiných virtuálních strojů na stejném hostitelském počítači nebo serveru.

Pro oddělení dat existují mechanismy v operačních systémech, ale také přímo v hardwaru. Porce úkonů prováděných přímo v procesorech je obrovská: koneckonců, současné multijádrové CPU s hyperthreadingovou a superskalární architekturou jsou přesně optimalizovány tak, aby obsloužily co nejvíce věcí, tj. uživatelů, procesů a datových přenosů současně. Útoky jsou zaměřeny na spekulativní provádění kódu: v případě větvení v programovém kódu vede nejpravděpodobnější cesta kódu do vlákna CPU. Pokud se o několik taktů později ukáže, že spekulace byla špatná, budou tyto takty obráceny. Je zřejmé, že v tomto procesu existují mezery: kód v zamítnutých cestách může přes zakázané přístupy vytáhnout data z mezipaměti procesoru. Takové zjišťování je komplikované a pomalé, ale je tak možné přečíst celou paměť počítače.

Záplaty stojí výkon

Složitost zjištěných nedostatků také komplikuje tvorbu aktualizací zabezpečení. Přesná metoda útoku se liší v závislosti na daném modelu procesoru a verzi operačního systému. To je důvod, proč musí svůj díl opravit každý zúčastněný výrobce. Nejrychlejšími byli dodavatelé prohlížečů, kteří zavedli dodatečná zpřísnění opatření proti útokům z JavaScriptu a plug-inů. Aktualizace Microsoftu jsou vyvíjeny nezávisle na CPU prostřednictvím funkcí operačního systému pro přepínání mezi procesy a bezpečnostními vrstvami - především tím, že při změně kontextu se vyprazdňuje cache.

Čím častěji se tak musí dít, tím více výkonu bude aktualizace zabezpečení stát. Měřili jsme výkon na dvou noteboocích s procesory Intel (Kaby Lake a Kaby Lake Refresh) před a po aktualizacích Windows 10 z ledna. Výsledek se shoduje s naším prvním očekáváním: ztráta výkonu s programy Windows se pohybuje v nízkém rozsahu jednotek procent, proto ji při běžném používání nepocítíte a nemá žádný vliv na produktivitu.

Problém pro databázové servery

Při nízkoúrovňových měřeních je však ztráta výkonu výrazně větší: postiženy jsou zejména přístupy k pevným diskům nebo SSD. Každý přístup do hromadné paměti znamená pro operační systém a procesor kritickou změnu z pohledu uživatele systému, který je zpomalen aktualizací. Velmi rychlé NVMe SSD, které by mohly provádět až 200 000 I/O příkazů za sekundu, mohou proto klesnout na přibližně polovinu této hodnoty. Vzhledem k tomu, že rychlost sekvenčního čtení není ovlivněna, neodráží se to v našich benchmarkových výsledcích.Na druhou stranu databázové servery, jejichž výkon je vyhodnocován právě v I/O příkazech, mohou po aktualizaci příslušného jádra jít do kolen. 

Intel a AMD vydaly těsně před redakční uzávěrkou tohoto čísla Chipu mikrokódové záplaty pro novější CPU, které se instalují prostřednictvím aktualizací systému BIOS a mohou do značné míry vyrovnat ztrátu výkonu. Objevují se však i první zprávy o problémech: je slyšet o systémech s AMD, které již nejde nabootovat, stejně jako o počítačích Intel, které spontánně restartují. K rychlé instalaci nabízených aktualizací ale neexistuje žádná alternativa: antiviroví specialisté varují, že první malware, který využívá popsané mezery, je již aktivní.

***

Ztráta výkonu po lednové aktualizaci (v %)

Gigabyte Sabre 17 s Intel Core i7-7700HQ Acer Nitro 5 Spin s Intel Core i5-8250U
PC Mark 7
PC Mark celkově -0,7 -0,6
Graphics DX9 -1,2 -1,5
Image manipulation -5,4 -5,4
Web browsing -3,8 -2,6
PC Mark 8
Creative acc 3.0 score -1,5 -0,9
Web Browsing Jungle Pin -1,0 -0,5
Photo editing v2 -3,4 -1,8
Batch Photo editing v2 -2,9 -2,1
Video To Go part 2 -2,2 -3,4
Music to go -3,4 -2,7
Storage 2.0 bandwidth 0,0 -7,2
WoW 0,0 -1,5
Zdroj: Testlab Chipu

Foto popis| Dokonce i procesory A11 pracující v iPhonech 8 a X jsou zranitelné vůči útokům. Oprava iOS byla ale k dispozici velmi rychle.
Foto popis| Všechny nové CPU jsou zranitelné Zatímco varianty Meltdown využívají slabé stránky specifické pro Intel, Spectre ovlivňuje všechny moderní procesory x86.

O autorovi| SEPP REITBERGER, autor@chip.cz

Příbuzná témata: