Dva útoky na mechanismus predikce kanálu mezipaměti v procesorech AMD

Skupina výzkumníků z Technické univerzity v Grazu (Rakousko), dříve známých vývojem útočných metod MDS, NetSpectre, Vrhací kladivo и ZombieLoad, provedla výzkum hardwarových optimalizací specifických pro procesory AMD a vyvinul dvě nové metody útoků postranním kanálem, které manipulují s úniky dat během provozu predikčního mechanismu LXNUMX cache kanálu procesorů AMD. Tyto techniky lze použít ke snížení účinnosti ochrany ASLR, obnovení klíčů ve zranitelných implementacích AES a ke zlepšení účinnosti útoku Spectre.

Byly identifikovány problémy v implementaci mechanismu predikce kanálů (prediktor cesty) v mezipaměti CPU první úrovně (L1D), používaném k předpovídání, který kanál mezipaměti obsahuje určitou paměťovou adresu. Optimalizace používaná v procesorech AMD je založena na kontrole μ-tagů (μTag). μTag se vypočítá aplikací specifické hashovací funkce na virtuální adresu. Během provozu modul predikce kanálů používá μTag k určení kanálu mezipaměti z tabulky. μTag tedy umožňuje procesoru omezit se na přístup pouze ke konkrétnímu kanálu, bez prohledávání všech možností, což výrazně snižuje spotřebu energie CPU.

Dva útoky na mechanismus predikce kanálu mezipaměti v procesorech AMD

Během reverzního inženýrství implementace systému predikce kanálů v různých generacích procesorů AMD vydaných v letech 2011 až 2019 byly identifikovány dvě nové techniky útoku na postranní kanály:

  • Collide+Probe – umožňuje útočníkovi sledovat přístup do paměti pro procesy běžící na stejném logickém jádru CPU. Podstatou metody je použití virtuálních adres, které způsobují kolize v hashovací funkci používané k výpočtu μTag ke sledování přístupu do paměti. Na rozdíl od útoků Flush+Reload a Prime+Probe používaných na procesorech Intel Collide+Probe nepoužívá sdílenou paměť a funguje bez znalosti fyzických adres.
  • Load+Reload – umožňuje velmi přesně určit stopy přístupu do paměti na stejném fyzickém jádru CPU. Metoda je založena na skutečnosti, že fyzická paměťová buňka může být v L1D cache pouze jednou. Tito. přístup ke stejné paměťové buňce na jiné virtuální adrese způsobí vyřazení buňky z L1D cache, což umožní sledování přístupu do paměti. Ačkoli útok spoléhá na sdílenou paměť, nevyprázdní řádky mezipaměti, což umožňuje tajné útoky, které nevytlačují data z mezipaměti poslední úrovně.

Na základě technik Collide+Probe a Load+Reload vědci předvedli několik scénářů útoku na postranní kanál:

  • Je ukázána možnost využití metod pro organizaci skrytého nepřímého komunikačního kanálu mezi dvěma procesy, umožňující přenos dat rychlostí až 588 kB za sekundu.
  • Pomocí kolizí v μTag bylo možné snížit entropii pro různé varianty ASLR (Address Space Layout Randomization) a obejít ochranu ASLR v jádře na kompletně aktualizovaném systému Linux. Je ukázána možnost provedení útoku za účelem snížení entropie ASLR jak z uživatelských aplikací, tak pomocí kódu JavaScript spouštěného v prostředí sandbox a kódu spuštěného v jiném hostujícím prostředí.

    Dva útoky na mechanismus predikce kanálu mezipaměti v procesorech AMD

  • Na základě metody Collide+Probe byl implementován útok s cílem obnovit šifrovací klíč ze zranitelné implementace (na základě T-stůl) šifrování AES.
  • Použitím metody Collide+Probe jako kanálu pro sběr dat byl útok Spectre schopen extrahovat soukromá data z jádra bez použití sdílené paměti.

Tato chyba zabezpečení se vyskytuje u procesorů AMD založených na mikroarchitekturách
Buldozer, Piledriver, Steamroller, Zen (Ryzen, Epic), Zen+ a Zen2.
AMD bylo na problém upozorněno 23. srpna 2019, ale zatím zprávu nezveřejnil s informacemi o zablokování zranitelnosti. Podle výzkumníků lze problém zablokovat na úrovni aktualizace mikrokódu poskytnutím bitů MSR pro selektivní deaktivaci systému predikce kanálů, podobně jako Intel pro kontrolu deaktivace mechanismů predikce větví.

Dva útoky na mechanismus predikce kanálu mezipaměti v procesorech AMD

Zdroj: opennet.ru

Přidat komentář