Nový útok na mikroarchitektonické struktury procesorů Intel a AMD

Skupina výzkumníků z University of Virginia a University of California představila nový typ útoku na mikroarchitektonické struktury procesorů Intel a AMD, které byly identifikovány během reverzního inženýrství nezdokumentovaných schopností CPU. Navrhovaná metoda útoku zahrnuje použití mezipaměti mikrooperační mezipaměti v procesorech, kterou lze použít k získání informací nashromážděných během spekulativního provádění instrukcí.

Pro účely optimalizace začne procesor provádět některé instrukce ve spekulativním režimu, aniž by čekal na dokončení předchozích výpočtů, a pokud následně zjistí, že předpověď nebyla oprávněná, vrátí operaci do původního stavu, ale data zpracovaná během spekulativní exekuce je uložena v cache, jejíž obsah lze určit.

Je třeba poznamenat, že nová metoda výrazně překonává útok Spectre v1, ztěžuje detekci útoku a není blokována stávajícími metodami ochrany proti útokům postranním kanálem navrženým k blokování zranitelností způsobených spekulativním prováděním instrukcí (např. instrukcí LFENCE blokuje úniky v posledních fázích spekulativního provádění, ale nechrání před únikem přes mikroarchitektonické struktury).

Metoda ovlivňuje modely procesorů Intel a AMD vydané od roku 2011, včetně řad Intel Skylake a AMD Zen. Moderní procesory rozkládají složité instrukce procesoru na jednodušší mikrooperace podobné RISC, které jsou ukládány do mezipaměti v samostatné mezipaměti. Tato cache se zásadně liší od cache vyšší úrovně, není přímo přístupná a funguje jako stream buffer pro rychlý přístup k výsledkům dekódování CISC instrukcí do RISC mikroinstrukcí. Výzkumníci však našli způsob, jak vytvořit podmínky, které nastanou, když dojde ke konfliktu přístupu k mezipaměti, a umožnit tak posoudit obsah mezipaměti mikro operací analýzou rozdílů v době provádění určitých akcí.

Nový útok na mikroarchitektonické struktury procesorů Intel a AMD

Mikrooperační mezipaměť v procesorech Intel je segmentována ve vztahu k vláknům CPU (Hyper-Threading), zatímco procesory AMD Zen využívají sdílenou mezipaměť, která vytváří podmínky pro únik dat nejen v rámci jednoho prováděcího vlákna, ale i mezi různými vlákny v SMT. (možný únik dat mezi kódem běžícím na různých logických jádrech CPU).

Výzkumníci navrhli základní metodu pro detekci změn v mikrooperační mezipaměti a několik scénářů útoku, které umožňují vytvářet skryté kanály pro přenos dat a používat zranitelný kód k úniku důvěrných dat, a to jak v rámci jednoho procesu (například k úniku procesních dat při provádění kód třetích stran v motorech s JIT a ve virtuálních strojích) a mezi jádrem a procesy v uživatelském prostoru.

Při organizaci varianty útoku Spectre pomocí mikrooperační mezipaměti byli výzkumníci schopni dosáhnout výkonu 965.59 Kbps s chybovostí 0.22 % a 785.56 Kbps při použití opravy chyb, v případě organizace úniku v rámci stejné adresy prostor a úroveň oprávnění. S únikem zahrnujícím různé úrovně oprávnění (mezi jádrem a uživatelským prostorem) byl výkon 85.2 kb/s s přidanou opravou chyb a 110.96 kb/s s chybovostí 4 %. Při napadení procesorů AMD Zen, vytvoření úniku mezi různými logickými jádry CPU, byl výkon 250 Kbps s chybovostí 5.59 % a 168.58 Kbps s opravou chyb. Oproti klasické metodě Spectre v1 byl nový útok 2.6x rychlejší.

Očekává se, že ochrana před útokem micro-op cache bude vyžadovat změny, které sníží výkon více, než kdybyste povolili ochranu proti útokům Spectre. Jako optimální kompromis se navrhuje blokovat takovéto útoky nikoli deaktivací cachování, ale na úrovni sledování anomálií a identifikace stavů cache, které jsou pro útoky typické.

Stejně jako u útoků Spectre vyžaduje organizace úniku z jádra nebo jiných procesů provedení určité sekvence příkazů (gadgetů) na straně procesů oběti, což vede ke spekulativnímu provádění instrukcí. V linuxovém jádře bylo nalezeno asi 100 podobných gadgetů, které budou odstraněny, ale pravidelně se objevují náhradní řešení pro jejich generování, například související se spouštěním speciálně navržených programů BPF v jádře.

Zdroj: opennet.ru

Přidat komentář