Skupina výzkumníků z Technické univerzity v Grazu (Rakousko) a Helmholtzova centra pro informační bezpečnost (CISPA),
Útok Foreshadow využívá toho, že při přístupu k paměti na virtuální adrese, která má za následek výjimku (chybu terminálové stránky), procesor spekulativně vypočítá fyzickou adresu a načte data, pokud jsou dostupná v mezipaměti L1. Spekulativní přístup se provádí před dokončením prohledávání tabulky stránek paměti a bez ohledu na stav záznamu tabulky stránek paměti (PTE), tzn. před kontrolou přítomnosti dat ve fyzické paměti a její čitelnosti. Po dokončení kontroly dostupnosti paměti, v případě nepřítomnosti příznaku Present v PTE, se operace zahodí, ale data zůstanou v mezipaměti a lze je načíst pomocí metod pro určování obsahu mezipaměti prostřednictvím postranních kanálů (analýzou změn doby přístupu na data uložená v mezipaměti a data bez mezipaměti).
Vědci prokázali, že stávající metody ochrany proti Foreshadow jsou neúčinné a jsou implementovány s nesprávnou interpretací problému. Zranitelnost
Foreshadow lze zneužít bez ohledu na bezpečnostní mechanismy jádra, které byly dříve považovány za dostatečné. V důsledku toho vědci prokázali možnost provedení útoku Foreshadow na systémech s relativně starými jádry, ve kterých jsou povoleny všechny dostupné režimy ochrany Foreshadow, a také na nových jádrech, ve kterých je zakázána pouze ochrana Spectre-v2 (pomocí možnost linuxového jádra nospectre_v2).
Bylo zjištěno, že
prefetch během přístupu do paměti, ale nastává, když se v jádře zaregistruje spekulativní dereference uživatelského prostoru. Tato chybná interpretace příčiny zranitelnosti zpočátku vedla k předpokladu, že k úniku dat ve Foreshadow může dojít pouze prostřednictvím mezipaměti L1, zatímco přítomnost určitých úryvků kódu (prefetch gadgets) v jádře by mohla přispět k úniku dat mimo mezipaměť L1, například v mezipaměti L3.
Identifikovaná vlastnost také otevírá možnost vytváření nových útoků zaměřených na procesy převodu virtuálních adres na fyzické v izolovaných prostředích a určování adres a dat uložených v registrech CPU. Jako demonstraci vědci ukázali možnost použití identifikovaného efektu k extrakci dat z jednoho procesu do druhého s výkonem asi 10 bitů za sekundu na systému s CPU Intel Core i7-6500U. Je také ukázána možnost úniku obsahu registru z enklávy Intel SGX (určení 32bitové hodnoty zapsané do 64bitového registru trvalo 15 minut). Některé typy útoků se ukázaly být implementovatelné v JavaScriptu a WebAssembly, například bylo možné určit fyzickou adresu JavaScriptové proměnné a naplnit 64bitové registry hodnotou kontrolovanou útočníkem.
Pro zablokování útoku Foreshadow prostřednictvím mezipaměti L3 je účinná metoda ochrany Spectre-BTB (Branch Target Buffer) implementovaná v sadě patchů retpoline. Vědci se proto domnívají, že je nutné ponechat retpoline povolenou i na systémech s novými CPU, které již mají ochranu proti známým zranitelnostem v mechanismu spekulativního provádění CPU. Zástupci Intelu zároveň uvedli, že neplánují přidávat do procesorů další ochranná opatření proti Foreshadow a považují za dostatečné zahrnout ochranu proti útokům Spectre V2 a L1TF (Foreshadow).
Zdroj: opennet.ru