TONTOU je útok na procesory Intel a AMD, který umožňuje obejít ochranu před zranitelnostmi Spectre v2.

Výzkumníci z Massachusettského technologického institutu identifikovali útočnou techniku ​​TONTOU (Time-of-Neutralization to Time-of-Use), která nabízí nový způsob zneužití mikroarchitektonických zranitelností v třídě Spectre v2. Tato zranitelnost umožňuje zjistit obsah paměti jádra při spuštění exploitu v uživatelském prostoru. Do jádra byl integrován kód, který blokuje zneužití této zranitelnosti. Linux 5. srpna a zahrnuto ve verzích 7.1.7, 6.18.43, 6.12.102, 6.6.149, 6.1.181, 5.15.214 a 5.10.263.

Výzkumníci prokázali proveditelnost lokálního útoku na neprivilegovaného uživatele, jehož cílem je zjistit hash hesla uživatele root uloženého v souboru /etc/shadow a načteného do paměti během ověřování systému. Výzkumníkům se podařilo uniknout data z paměti jádra s propustností 5.47 bajtů za sekundu a přesností 91.97 %. Z 10 testovacích běhů exploitu, které trvaly v průměru 18 minut, se jim v polovině případů podařilo detekovat přítomnost souboru /etc/shadow v paměti a extrahovat jeho obsah.

Zneužití bylo demonstrováno na systémech s procesory AMD a lze jej použít na procesorech AMD řady Zen 1-4. Útok je proveditelný i na systémech Intel, ale zneužití je složitější. Pro ochranu před přetečením zásobníku return a blokování zranitelnosti SRSO (Speculative Return Stack Overflow) používají procesory AMD ochranný mechanismus Safe-RET, který po každém použití vymaže vyrovnávací paměť pro predikci větvení a zúží okno útoku na dvě instrukce provedené během několika desítek nanosekund.

Aby se obešla tato ochrana a rozšířilo se okno útoku, byla implementována technika zpomalení CPU, která umožňuje substituci přerušení ve správný okamžik, čímž se přesměruje tok provádění v rámci jádra a pomocí obslužné rutiny přerušení se poškodí položky v bufferu predikce větvení. Aby útočník zneužil zranitelnost SRSO, může vytvořit podmínky, kdy jednotka predikce větvení spekulativně provede velký počet nesprávně predikovaných volání CALL, což stačí k přeplnění zásobníku návratových adres a přepsání správně predikovaných návratových bodů umístěných na začátku zásobníku. V důsledku toho mohou být počáteční prvky zásobníku přepsány hodnotami zvolenými útočníkem, což následně vede k použití těchto nahrazených hodnot během spekulativního provádění instrukce RET v kontextu jiného procesu.

Procesor zjistí, že predikce větvení byla nesprávná a operaci vrátí zpět, ale data zpracovaná během spekulativního provádění zůstanou v mezipaměti a mikroarchitektonických vyrovnávacích pamětech. Pokud chybně provedený blok přistupuje k paměti, jeho spekulativní provádění také povede k tomu, že data načtená z paměti zůstanou ve sdílené mezipaměti. Pro načtení informací z mezipaměti lze použít metodu pro určení obsahu mezipaměti na základě analýzy změn v časech přístupu pro data uložená v mezipaměti a data neuložená v mezipaměti.

Zdroj: opennet.ru

Kupte si spolehlivý hosting pro stránky s DDoS ochranou, VPS VDS servery 🔥 Kupte si spolehlivý webhosting s ochranou DDoS, VPS VDS servery | ProHoster