Nová bezpečnostní díra v procesorech Intel. CacheOut potřebuje update mikrokódu

1. 2. 2020

Sdílet

Byla oznámena další bezpečnostní díra v procesorech Intel. Nachází se v čipech od Skylake po Coffee Lake či Cascade Lake a umožňuje krádež citlivých dat.

Jen před dvěma týdny jsme měli tu radost psát další příspěvek do ságy bezpečnostních děr v procesorech, když byly oznámeny zranitelnosti v integrovaných GPU od Ivy Bridge po Comet Lake. Bohužel to neznamenalo, že bude zase na chvíli klid. Tento týden byla publikována další zranitelnost v procesorech Intel, která navíc přinese zase potřebu aktualizovat mikrokód CPU, nebude tedy zřejmě opravitelná jen relativně snadnými aktualizacemi operačního systému.  

Další netěsnost v spekulativním vykonávání kódu

Tato chyba dostala jméno CacheOut (CVE-2020-0549) nebo také „L1D Eviction Sampling Leakage“ či „L1Des Leakage“. Podle výzkumníků, kteří tento útok publikovali, umožňuje útočníkům získat chráněná data přes rovnou několik různých úrovní bariér, které by měly bránit v neautorizovaném „šmírování“ náhodných procesů v datech jiných. Škodlivý proces používající zranitelnost CacheOut dokáže vytáhnout z cache procesoru data patřící jádru operačního systému (do kterých nemá mít uživatelský program přístup), ale také z paměti úplně jiného hostovaného počítače při virtualizaci, a také ze zabezpečených enkláv SGX, které by měly být neproniknutelné pro vše kromě speciálně autorizovaného softwaru. Zranitelnost tedy umožňuje kompromitování bezpečnostních funkcí založených na integritě SGX. Podrobné pojednání je zde.

Toto podle autorů dokazuje, že procesory Intel jsou přes různé zatím implementované ochrany stále zranitelné na různá zneužití spekulativního vykonávání kódu uvnitř jádra. Útok je podobný zranitelnostem MDS, ale ochrany proti nim nestačí k jeho zamezení. Zatímco Intel se pokusil zablokovat zranitelnosti MDS tím, že mikrokód různé netěsné buffery přepisuje při změně procesu například mezi uživatelským prostorem a jádrem, výzkumníci našli slabiny v těchto mechanismech, které se k těmto informacím dovolují dostat během jejich odstraňování z datové L1 cache.

Fungovani utoku CacheOut CacheOut používá funkci TSX Asynchronous Abort, která již jednou byla zneužita (útok TAA publikovaný v listopadu)

Riziko této chyby je stejné jako u Spectre – tedy že škodlivý proces může z paměti vašeho PC vytáhnout něco citlivého – například šifrovací klíč nebo přihlašovací údaje. Zatím se nezdá, že by tento útok byl používán v praxi malwarem (nezanechal by po sobě ovšem stopy, pokud by se přece jen stal). Ale takovéto slabiny fundamentálně narušují principy, na které stojí bezpečnost softwaru, takže je třeba podobné díry zalátávat.

Bez TSX je patrně bezpečno, AMD postiženo není

Chyba je spojena s funkcí rozšíření TSX na procesorech Intel (zřejmě tak je příbuzná s také Intel postihujícím útokem TSX Asynchronous Abort neboli TAA). Procesory AMD tyto instrukce/funkce vůbec nemají, takže výzkumníci uvádějí, že nejsou nijak postižené, na rozdíl od Intelů. Ty zřejmě také jsou zranitelné jen tehdy, pokud TSX mají zapnuté, což některé modely vylučuje. Ovšem podle výzkumníků je teoreticky možné, že by se chybu mohlo podařit najít také v procesorech IBM Power a některých jádrech ARM, které mají funkcionalitu podobnou TSX. Nicméně výskyt asi nikdo zatím nepotvrdil. Mimochodem, závislost na TSX také naštěstí znamená, že chyba zřejmě není zneužitelná z javascriptu běžícího v browseru (tedy útočnými stránkami). Javascriptové enginy v browserech totiž neumožňují TSX použít. Tím pádem je rizikem jen lokálně spuštěný program, takže chyba naštěstí není tak riziková. Intel závažnost označuje jako střední.

Podle dokumentu Intelu (který bohužel není tak jasný, jak bychom rádi) jsou postižené procesory od Skylake výše, mají-li TSX, až po Coffee Lake, Amber Lake a Whiskey Lake. Comet Lake a možná i některé novější revize Core 9. generace „Coffee Lake Refresh“ by mohly být již imunní, jelikož proti útoku náhodou funguje pokus opravit jinou nesouvisející chybu (ovšem pozor na to, že řada Core 9. generace mohou být založená na starších revizích křemíku). Naopak současné Xeony či Core i9 „Cascade Lake“ jsou zranitelné (a stejně tak Skylake-X/Skylake-SP). O 10nm čipech Ice Lake řeče nic není a pravděpodobně jsou v pořádku.

bitcoin_skoleni

Ochrany pred chybou CacheOut ve vybranych procesorech Intel Jak jsou na tom vybrané procesory Intel s CacheOutem a jinými chybami. Fajfka znamená funkční ochrany, křížek zranitelnost

Oprava si vyžádá další aktualizaci mikrokódu

Intel tuto díru opraví v rámci mikrokódu CPU. Ta musí být jako obvykle být nahrána do CPU při každém bootu, jelikož update je v CPU ve volatilní paměti. Může to obstarat buď BIOS, nebo operační systém. Bude třeba tedy buď přeflashovat desku (či BIOS notebooku), až výrobce poskytne aktualizaci, v níž bude tento mikrokód zahrnutý, nebo počkat, až se tyto mikrokódy objeví v aktualizačním kanálu vašeho operačního systému. Toto bude třeba, pokud už vaše deska aktualizace BIOSu nedostává. Microsoft naštěstí aktualizace mikrokódu pro Intel distribuuje ve Windows Update, takže to snad pokryje většinu uživatelů, včetně těch, kdo zprávu o této šlamastice ani nezaregistrují.

Pokud je s touto aktualizací mikrokódu spojená nějaká ztráta výkonu, Intel to nikde neuvádí. Zatím to na to nevypadá, tak snad nebude třeba se oprav CacheOutu bát.

Galerie: Bezpečnostní chyby MDS v procesorech Intel: ZombieLoad, Fallout, RIDL