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

Kľúčové body:
  • TONTOU využíva časový odstup medzi vyčistením predikčnej vyrovnávacej pamäte a jej použitím.
  • Útočníci používajú „injektáž prerušení“ na presmerovanie toku jadra a kontamináciu predikčných mechanizmov.
  •  Ovplyvňuje architektúry AMD Zen 1 až 4 a viacero generácií procesorov Intel.
  • Zmierňujúce záplaty už boli začlenené do nedávnych aktualizácií jadra Linuxu (5. augusta).

Útok na TONTOU

Je možné, že práve rýchlosť vášho procesora ohrozuje vašu bezpečnosť? Aby sme pochopili, ako procesory dosahujú svoju rýchlosť , musíme zvážiť, že fungujú na princípe „predpovedania budúcnosti“... Nie, nie sú to kúzla ani nemajú malú krištáľovú guľu...

Procesory fungujú tak, že namiesto čakania na cestu, ktorou sa program vydá, čip predpovedá pravdepodobnú trasu a predpokladá ju. Ak je predpoveď nesprávna, práca sa zahodí, ale stopy zostanú v pamäti. Tu prichádza na rad Spectre , jedna z najvýznamnejších zraniteľností objavených v posledných rokoch. Od svojho objavenia sa útočníci naučili, ako tieto stopy čítať, a vytvárali čoraz sofistikovanejšie varianty; TONTOU je jednou z týchto nových zraniteľností.

Výskumníci z MIT objavili TONTOU (Time-of-Neutralization to Time-of-Use), sofistikovanú novú techniku ​​na zneužívanie zraniteľností Spectre v2 , ktorá umožňuje čítanie pamäte jadra z používateľského priestoru.

Hoci výrobcovia a vývojári už roky navrhujú rôzne ochranné mechanizmy proti prediktívnym útokom, útočníkom sa podarilo objaviť nové cesty a táto nová štúdia CSAIL demonštruje, ako tieto ochrany obísť.

Výskumníci zistili, že medzi okamihom vymazania vyrovnávacej pamäte a okamihom použitia predpovedí existuje nevyhnutná časová medzera a práve v tejto malej medzere sa kód (niekedy len hŕstka inštrukcií) vstrekuje prostredníctvom systémových prerušení, čo umožňuje opätovnú kontamináciu hardvéru a extrahovanie kritických údajov.

Ohľadom útoku: Narušenia a porušenie Safe-RET

Spoločnosť AMD má obranu proti zraniteľnostiam SRSO (Speculative Return Stack Overflow) s názvom Saferet, ktorá vyčistí predikčný mechanizmus bezprostredne pred každým použitím. To ponecháva okno zraniteľnosti , ktoré je možné zneužiť v priebehu niekoľkých desiatok nanosekúnd. Na útok na takéto malé okno vyvinuli výskumníci techniku, ktorú nazvali Interrupt Injection.

Procesory neustále pozastavujú svoje úlohy, aby spracovali prerušenia, a bežné programy môžu tieto časovače konfigurovať . S ohľadom na to výskumníci presne upravili časovač a pomocou techniky na spomalenie CPU spôsobili prerušenie procesora v presne nesprávnom okamihu . Počas tohto prerušenia môže útočník vynútiť vykonanie veľkého počtu volaní, čím sa preplní zásobník adries. Po ukončení chybného vykonávania procesor proces zahodí, ale prístupové údaje zostanú v zdieľaných vyrovnávacích pamätiach , odkiaľ ich možno extrahovať analýzou časov prístupu.

Extrakcia hesla a testovanie na reálnych systémoch

Aby tím demonštroval závažnosť TONTOU, vytvoril funkčný exploit na systéme AMD s aktuálnym linuxovým jadrom. Prvou prekážkou bolo obísť obranu, ktorá náhodne určuje pozíciu operačného systému v pamäti, čo sa im podarilo v desiatich pokusoch, pričom každý test trval približne deväť minút.

Následne predviedli lokálny útok ako neprivilegovaný používateľ s cieľom určiť hash hesla root, pričom úspešne extrahovali dáta rýchlosťou 5.47 bajtov za sekundu s presnosťou 91.97 %. V 50 % testov (ktoré trvali v priemere 18 minút) úspešne zistili a extrahovali obsah súboru s heslom. Aj keď je to pomalá rýchlosť, viac než postačuje na kritické ohrozenie servera.

Dopad na Intel, AMD a zmierňujúcu záplatu

Tím testoval štyri generácie procesorov Intel a AMD a dosiahol zlyhania predikcie na oboch architektúrach. Zatiaľ čo sa táto technika ukázala ako životaschopná na rodinách procesorov AMD Zen 1 až 4 , na čipoch Intel útok obišiel dve rôzne ochrany , hoci medzi rôznymi generáciami Intelu sa pozorovalo nekonzistentné správanie , čo naznačuje, že nominálne obranné mechanizmy sú v hardvéri implementované odlišne.

Ako riešenie výskumníci navrhujú vymazať predikčný mechanizmus druhýkrát po ukončení prerušenia. Zatiaľ čo toto opatrenie sa zdá byť pre AMD uskutočniteľné, pre Intel by mohlo byť kontraproduktívne, pretože útok sa spolieha na to, že prerušenie zanechá konzistentný stav, a mohlo by to zvýšiť spoľahlivosť útoku.

Výskumníci informovali spoločnosti AMD a Intel začiatkom februára a správcov jadra Linuxu v marci. V dôsledku toho bol blokovací kód na zmiernenie zraniteľnosti 5. augusta integrovaný do jadra Linuxu.

Na záver, ak máte záujem dozvedieť sa viac, podrobnosti nájdete na nasledujúcom odkaze.


Pridať ako preferovaný zdroj v Google