TONTOU: Nový útok Spectre v2 na AMD a Intel

Klíčové body:
  • TONTOU využívá časové mezery mezi vyčištěním predikční vyrovnávací paměti a jejím použitím.
  • Útočníci používají „injekční přerušení“ k přesměrování toku jádra a kontaminaci predikčního aparátu.
  •  Ovlivňuje architektury AMD Zen 1 až 4 a několik generací procesorů Intel.
  • Zmírňující záplaty již byly začleněny do nedávných aktualizací jádra Linuxu (5. srpna).

Útok na TONTOU

Je možné, že právě rychlost vašeho procesoru ohrožuje vaše zabezpečení? Abychom pochopili, jak procesory dosahují své rychlosti , musíme si uvědomit, že fungují na principu „předpovídání budoucnosti“... Ne, nejsou to magie ani nemají malou křišťálovou kouli...

Procesory fungují tak, že místo čekání na cestu, kterou se program vydá, čip předpovídá pravděpodobnou trasu a předvídá ji. Pokud je předpověď nesprávná, práce se zahodí, ale stopy zůstanou v paměti. A zde přichází na řadu Spectre , jedna z nejvýznamnějších zranitelností objevených v posledních letech. Od svého objevení se útočníci naučili, jak tyto stopy číst, a vytvářeli tak stále sofistikovanější varianty; TONTOU je jednou z těchto nových zranitelností.

Výzkumníci z MIT objevili TONTOU (Time-of-Neutralization to Time-of-Use), sofistikovanou novou techniku ​​pro zneužití zranitelností Spectre v2 , která umožňuje čtení paměti jádra z uživatelského prostoru.

Přestože výrobci a vývojáři již léta navrhují různé ochranné mechanismy proti prediktivním útokům, útočníkům se podařilo objevit nové cesty a tato nová studie CSAIL ukazuje, jak tyto ochrany obejít.

Výzkumníci zjistili, že mezi okamžikem vymazání vyrovnávací paměti a okamžikem použití predikcí existuje nevyhnutelná časová mezera a právě v této malé mezeře je kód (někdy jen hrstka instrukcí) vstřikován prostřednictvím systémových přerušení, což umožňuje opětovnou kontaminaci hardwaru a extrakci kritických dat.

Ohledně útoku: Narušení a narušení Safe-RET

Společnost AMD má obranu proti zranitelnostem SRSO (Speculative Return Stack Overflow) s názvem Saferet, která čistí predikční mechanismus bezprostředně před každým použitím. To ponechává okno zranitelnosti , které lze zneužít během několika desítek nanosekund. Pro útok na tak malé okno vyvinuli vědci techniku, kterou nazvali Interrupt Injection.

Procesory neustále pozastavují své úlohy, aby zpracovaly přerušení, a běžné programy mohou tyto časovače konfigurovat . S ohledem na to vědci přesně upravili časovač a pomocí techniky zpomalení CPU způsobili přerušení procesoru v přesně nesprávný okamžik . Během tohoto přerušení může útočník vynutit provedení velkého počtu volání, čímž přeplní adresní zásobník. Po ukončení chybného provádění procesor proces zahodí, ale zpřístupněná data zůstanou ve sdílených mezipamětech , odkud je lze extrahovat analýzou časů přístupu.

Extrakce hesel a testování na reálných systémech

Aby tým demonstroval závažnost útoku TONTOU, vytvořil funkční exploit na systému AMD s aktuálním linuxovým jádrem. První překážkou bylo obejít obranu, která náhodně určuje pozici operačního systému v paměti, což se jim podařilo v deseti pokusech, přičemž každý test trval přibližně devět minut.

Následně předvedli lokální útok s použitím neoprávněného uživatele, jehož cílem bylo zjistit hash hesla root, a úspěšně extrahovali data rychlostí 5.47 bajtů za sekundu s přesností 91.97 %. V 50 % testů (které trvaly v průměru 18 minut) se jim podařilo detekovat a extrahovat obsah souboru s heslem. I když se jedná o pomalou rychlost, je více než dostatečná k tomu, aby kriticky ohrozila server.

Dopad na Intel, AMD a zmírňující záplatu

Tým testoval čtyři generace procesorů Intel a AMD a na obou architekturách dosáhl selhání predikce. Zatímco se tato technika ukázala jako životaschopná na řadách procesorů AMD Zen 1 až 4 , na čipech Intel útok obešel dvě různé ochrany , ačkoli mezi různými generacemi Intelu bylo pozorováno nekonzistentní chování , což naznačuje, že nominální obrana je v hardwaru implementována odlišně.

Jako řešení vědci navrhují vymazat predikční mechanismus podruhé po dokončení přerušení. I když se toto opatření zdá být pro AMD schůdné, pro Intel by mohlo být kontraproduktivní, protože útok se spoléhá na to, že přerušení zanechá konzistentní stav, a mohl by útok zefektivnit.

Výzkumníci informovali společnosti AMD a Intel začátkem února a správce linuxového jádra v březnu. V důsledku toho byl blokovací kód pro zmírnění zranitelnosti integrován do linuxového jádra 5. srpna.

A konečně, pokud máte zájem dozvědět se více, podrobnosti naleznete na následujícím odkazu.


Přidat jako preferovaný zdroj v Googlu