Další bezpečnostní díry u procesorů. Spectre 1.1/1.2 postihuje Intel, ARM asi i další

13. 7. 2018

Sdílet

 Autor: Redakce

Už se to pomalu sleduje s pobavením, ale bezpečnostních problémů v procesorech přibývá a přibývá. Jen v druhé polovině června jsme psali o dvou (TLBleedLazy FP Restore), a tak asi málokdo čekal, že se tak brzo vynoří další. Ovšem realita je taková, že byly publikovány dvě nové varianty chyb Spectre, které se týkají Intelu a pravděpodobně i dalších CPU, protože náchylnost připustil také ARM. Opět jde o útoky na spekulativní vykonávání kódu lokálního charakteru, kterými může malware nebo třeba javascript přečíst data, ke kterým nemá mít přístup, což může být například šifrovací klíč, přihlašovací údaje nebo jiné citlivé informace.

Spectre 1.1

Chyba Spectre 1.1 (CVE-2018-3693) je příbuzná původnímu útoku Spectre v1 („Bounds Check Bypass“), která používala spekulativního čtení k tomu, aby přiměla číst procesor za hranice určité datové struktury, ke které má povolen přístup. Normálně by takový program dostal stopku, protože za danou hranicí už nemá oprávnění paměť číst, ovšem problém je, že agresivní spekulace moderních CPU mu přístup dovolí. Ačkoliv poté procesor operace vrátí zpět, daná data se dají nalézt v cache pomocí timing útoku.

Spectre 1.1 (jinak také „Bounds Check Bypass on Stores“) je velice podobný mechanismus a také napadá místa v programech, kde se kontroluje, zda běžící (nedůvěryhodný) kód může ještě číst data v požadovaném rozsahu. Zde ale k tomuto útoku používá místo operace čtení zápis (store). Zápis probíhá jen v rámci spekulace a není permanentní, protože CPU ho eventuálně vrátí zpět. Avšak tento útok stejně jako Spectre v1 útočníkovi ve výsledku dovoluje přečíst oblasti paměti, ke kterým by neměl mít přístup. Dostane se k nim side-channel metodou jako u ostatních útoků Spectre.

Spectre 1.2

Druhá zranitelnost, Spectre 1.2 (jinak také Read-only Protection Bypass), je také modifikací Spectre v1, ale něco si půjčuje i z chyby Meltdown. V té šlo o to, že procesor při spekulaci ignoroval privilegia v paměti (proto například uživatelský program mohl číst z prostoru jádra), nastavená jako příznaky v tabulce stránek. Spectre 1.2 využívá stejné slabé místo, ale místo úrovně oprávnění obchází tento útok ochranu proti zápisu, nastavenou u stránek v paměti.

intel-core-procesor-cpu-pouzdro-cipTaké tento příznak kontrolují postižené procesory „líně“ – tedy až se zpožděním. Kód mezitím spekulativně vykonávaný tedy do paměti chvíli může zapisovat, než procesoru dojde, že mu to měl zakázat. Malware nebo útočník může vinou tohoto například přepsat různá metadata přiřazená programu. Výsledkem může být, že se takový kód může dostat ven z některých sandboxů, jejichž efektivita závisí na nastavení stránek v paměti jako read-only.

Postižené jsou minimálně Intely a některé ARMy

Tyto zranitelnosti odhalili Carl Waldspurger a Vladimir Kiriansky a oznámili je už v únoru Intelu, ARMu, AMD, IBM, Googlu a Microsoftu (druhý z obou výzkumníků dostal za nahlášení chyby odměnu 100 000 $ z motivačního programu Intelu). Podrobný referát o chybách a také o řešeních navrhovaných do budoucna najdete zde. Podle autorů byly zranitelnosti potvrzeny na procesorech Intel a (neupřesněných) jádrech ARM.

Zda jsou postižené procesory AMD, zatím není nic známo (oficiální vyjádření se ještě neobjevilo). Předchozí útoky Spectre byly značně univerzální a zranitelnost ARMů by mohla znamenat, že opět půjde o problém široce přítomný v procesorech se spekulativním vykonáváním kódu.

sandybridge-wafer-intelCo je však dobrá zpráva: tyto chyby by neměly mít významný okamžitý dopad, jelikož by je měla řešit již opatření, která výrobci softwaru a operačních systémů podnikli proti původní Spectre v1. Uživatelé by tedy kvůli těmto problémům neměli nyní být vystaveni riziku, i když je možné, že pro řádné utěsnění bude třeba existující protiopatření upravit nebo aplikovat na další místa v kódu.

Ze strany výrobců operačních systémů proto zatím nejsou hlášeny nějaké přímé reakce nebo patche, ty eventuálně mohou vyjít, pokud budou v budoucnu nějaká nová slabá míst odhalena. Každopádně půjde o opravy čistě v rámci operačního systému a aplikačního softwaru; zdá se, že v tomto případě nedojde na nějaké opravy skrze aktualizace mikrokódu, jejichž distribuce vytváří větší problémy.

ICTS24

Intel zavede pravidelné aktualizace ve stylu záplatovacích úterý

Intel tyto zranitelnosti odhalil v rámci širšího oznámení celkem 12 různých bezpečnostních problémů v různých svých produktech (nejen hardwarových, viz web Intelu), tato skupina byla publikována 10. července. Firma zároveň s tím oznámila potenciálně důležitou změnu v tom, jak se problémy v procesorech budou řešit. Intel údajně hodlá ustanovit pravidelný kalendář aktualizací mikrokódů pro CPU, tedy něco podobného, jakou jsou pravidelná záplatovací úterý Microsoftu.

Aktualizace mikrokódů by měly údajně mít čtvrtletní frekvenci a vždy by opravovaly různé potíže odhalené v předchozí době. Partneři z řad výrobců desek a PC by dostávali kód v předstihu, aby odhalení chyb bylo pokud možno synchronizováno s dostupností oprav (ideální by asi ale bylo, aby se aktualizace standardně distribuovaly automaticky přes operační systém, tedy například ve Windows Update). Urgentní opravy ovšem budou vydávány i mimo tento fixní cyklus.