Nový útok na mikroarchitektonické štruktúry procesorov Intel a AMD

Skupina výskumníkov z University of Virginia a University of California predstavila nový typ útoku na mikroarchitektúrne štruktúry procesorov Intel a AMD, ktoré boli identifikované počas reverzného inžinierstva nezdokumentovaných schopností CPU. Navrhovaná metóda útoku zahŕňa použitie intermediárnej mikrooperačnej vyrovnávacej pamäte v procesoroch, ktorú možno použiť na získanie informácií nahromadených počas špekulatívneho vykonávania pokynov.

Pre účely optimalizácie začne procesor vykonávať niektoré inštrukcie v špekulatívnom režime, bez čakania na dokončenie predchádzajúcich výpočtov, a ak potom zistí, že predpoveď nebola opodstatnená, vráti operáciu do pôvodného stavu, ale údaje spracované počas špekulatívna exekúcia je uložená v cache, ktorej obsah je možné určiť.

Je potrebné poznamenať, že nová metóda výrazne prekonáva útok Spectre v1, sťažuje detekciu útoku a nie je blokovaná existujúcimi metódami ochrany proti útokom z postranných kanálov navrhnutých na blokovanie zraniteľností spôsobených špekulatívnym vykonávaním pokynov (napríklad inštrukcií LFENCE blokuje úniky v posledných fázach špekulatívneho vykonávania, ale nechráni pred únikom cez mikroarchitektonické štruktúry).

Metóda ovplyvňuje modely procesorov Intel a AMD vydané od roku 2011 vrátane sérií Intel Skylake a AMD Zen. Moderné procesory rozkladajú zložité inštrukcie procesora na jednoduchšie mikrooperácie podobné RISC, ktoré sa ukladajú do medzipamäte v samostatnej vyrovnávacej pamäti. Táto vyrovnávacia pamäť sa zásadne líši od vyrovnávacích pamätí vyššej úrovne, nie je priamo prístupná a funguje ako vyrovnávacia pamäť toku pre rýchly prístup k výsledkom dekódovania inštrukcií CISC do mikroinštrukcií RISC. Výskumníci však našli spôsob, ako vytvoriť podmienky, ktoré vznikajú pri konflikte prístupu do vyrovnávacej pamäte, a umožňujú posúdiť obsah vyrovnávacej pamäte mikro operácií analýzou rozdielov v čase vykonania určitých akcií.

Nový útok na mikroarchitektonické štruktúry procesorov Intel a AMD

Mikrooperačná vyrovnávacia pamäť v procesoroch Intel je segmentovaná vo vzťahu k vláknam CPU (Hyper-Threading), zatiaľ čo procesory AMD Zen využívajú zdieľanú vyrovnávaciu pamäť, ktorá vytvára podmienky pre únik dát nielen v rámci jedného vykonávacieho vlákna, ale aj medzi rôznymi vláknami v SMT. (možný únik dát medzi kódom bežiacim na rôznych logických jadrách CPU).

Výskumníci navrhli základnú metódu na zisťovanie zmien vo vyrovnávacej pamäti mikroprevádzok a niekoľko scenárov útoku, ktoré umožňujú vytvárať skryté kanály na prenos údajov a používať zraniteľný kód na únik dôverných údajov, a to v rámci jedného procesu (napríklad únik procesných údajov pri spustení kód tretích strán v motoroch s JIT a vo virtuálnych strojoch) a medzi jadrom a procesmi v užívateľskom priestore.

Pri organizovaní variantu útoku Spectre pomocou mikrooperačnej vyrovnávacej pamäte boli výskumníci schopní dosiahnuť výkon 965.59 Kbps s chybovosťou 0.22 % a 785.56 Kbps pri použití opravy chýb, v prípade organizácie úniku v rámci rovnakej adresy. priestor a úroveň privilégií. Pri úniku zahŕňajúcom rôzne úrovne privilégií (medzi jadrom a používateľským priestorom) bol výkon 85.2 kbps s pridanou korekciou chýb a 110.96 kbps s chybovosťou 4 %. Pri napadnutí procesorov AMD Zen, vytváraní úniku medzi rôznymi logickými jadrami CPU, bol výkon 250 Kbps s chybovosťou 5.59 % a 168.58 Kbps s opravou chýb. V porovnaní s klasickou metódou Spectre v1 bol nový útok 2.6-krát rýchlejší.

Očakáva sa, že ochrana pred útokom micro-op cache bude vyžadovať zmeny, ktoré znížia výkon viac, ako keby ste povolili ochranu pred útokmi Spectre. Ako optimálny kompromis sa navrhuje blokovať takéto útoky nie zakázaním cachovania, ale na úrovni monitorovania anomálií a identifikácie stavov cache, ktoré sú pre útoky typické.

Rovnako ako pri útokoch Spectre, organizovanie úniku z jadra alebo iných procesov vyžaduje vykonanie určitej sekvencie príkazov (gadgetov) na strane procesov obete, čo vedie k špekulatívnemu vykonávaniu pokynov. V linuxovom jadre sa našlo asi 100 podobných gadgetov, ktoré budú odstránené, no pravidelne sa nájdu riešenia na ich generovanie, napríklad v súvislosti so spúšťaním špeciálne navrhnutých programov BPF v jadre.

Zdroj: opennet.ru

Pridať komentár