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.