Nová varianta útoku Foreshadow ovlivňující procesory Intel, AMD, ARM a IBM

Skupina výzkumníků z Technické univerzity v Grazu (Rakousko) a Helmholtzova centra pro informační bezpečnost (CISPA), odhaleno (PDF) nový vektor pro použití útoků postranním kanálem Předvídat (L1TF), který umožňuje extrahovat data z paměti enkláv Intel SGX, SMM (System Management Mode), paměťových oblastí jádra OS a virtuálních strojů ve virtualizačních systémech. Na rozdíl od původního útoku navrženého v roce 2018 Předvídat Nová varianta není specifická pro procesory Intel a týká se CPU jiných výrobců, jako jsou ARM, IBM a AMD. Nová varianta navíc nevyžaduje vysoký výkon a útok lze provést i spuštěním JavaScriptu a WebAssembly ve webovém prohlížeči.

Ú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 efekt předpětí nesouvisí s instrukcemi předběžného načtení softwaru nebo hardwarovým efektem
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

Přidat komentář