TONTOU je útok na procesory Intel a AMD, ktorý umožňuje obísť ochranu pred zraniteľnosťami Spectre v2.

Výskumníci z Massachusettského technologického inštitútu identifikovali útočnú techniku ​​TONTOU (Time-of-Neutralization to Time-of-Use), ktorá ponúka nový spôsob zneužitia mikroarchitektonických zraniteľností v triede Spectre v2. Zraniteľnosť umožňuje zistiť obsah pamäte jadra pri vykonávaní exploitu v používateľskom priestore. Do jadra bol integrovaný kód na blokovanie zneužitia tejto zraniteľnosti. Linux 5. augusta a zahrnuté vo vydaniach 7.1.7, 6.18.43, 6.12.102, 6.6.149, 6.1.181, 5.15.214 a 5.10.263.

Výskumníci preukázali uskutočniteľnosť lokálneho útoku na neprivilegovaného používateľa s cieľom zistiť hash hesla používateľa root uloženého v súbore /etc/shadow a načítaného do pamäte počas overovania systému. Výskumníkom sa úspešne podarilo uniknúť dáta z pamäte jadra s priepustnosťou 5.47 bajtov za sekundu a presnosťou 91.97 %. Z 10 testovacích spustení exploitu, ktoré trvali v priemere 18 minút, v polovici prípadov úspešne zistili prítomnosť súboru /etc/shadow v pamäti a extrahovali jeho obsah.

Zraniteľnosť bola demonštrovaná na systémoch s procesormi AMD a možno ju použiť na procesoroch AMD rodiny Zen 1-4. Útok je uskutočniteľný aj na systémoch Intel, ale zneužitie je zložitejšie. Na ochranu pred pretečením return stacku a blokovanie zraniteľnosti SRSO (Speculative Return Stack Overflow) procesory AMD používajú ochranný mechanizmus Safe-RET, ktorý po každom použití vymaže vyrovnávaciu pamäť predikcie vetvenia a zúži okno útoku na dve inštrukcie vykonané v priebehu niekoľkých desiatok nanosekúnd.

Na obídenie tejto ochrany a rozšírenie okna útoku bola implementovaná technika spomalenia CPU, ktorá umožňuje substitúciu prerušení v správnom okamihu na presmerovanie toku vykonávania v rámci jadra a použitie obslužného programu prerušení na poškodenie položiek vo vyrovnávacej pamäti predikcie vetvenia. Aby útočník zneužil zraniteľnosť SRSO, môže vytvoriť podmienky, v ktorých jednotka predikcie vetvenia špekulatívne vykoná veľký počet nesprávne predpovedaných volaní CALL, čo je dosť na to, aby preplnila zásobník návratových adries a prepísala správne predpovedané návratové body nachádzajúce sa na začiatku zásobníka. V dôsledku toho môžu byť počiatočné prvky zásobníka prepísané hodnotami zvolenými útočníkom, čo následne vedie k použitiu týchto nahradených hodnôt počas špekulatívneho vykonávania inštrukcie RET v kontexte iného procesu.

Procesor zistí, že predikcia vetvenia bola nesprávna a vráti operáciu späť, ale dáta spracované počas špekulatívneho vykonávania zostanú vo vyrovnávacej pamäti a mikroarchitektonických bufferoch. Ak chybne vykonaný blok pristupuje k pamäti, jeho špekulatívne vykonávanie bude mať tiež za následok, že dáta načítané z pamäte zostanú v zdieľanej vyrovnávacej pamäti. Na získanie informácií z vyrovnávacej pamäte je možné použiť metódu na určenie obsahu vyrovnávacej pamäte na základe analýzy zmien v časoch prístupu pre dáta uložené v vyrovnávacej pamäti a dáta neuložené v vyrovnávacej pamäti.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre stránky s DDoS ochranou, VPS VDS servery 🔥 Kúpte si spoľahlivý webhosting s ochranou DDoS, VPS VDS servery | ProHoster