Dva útoky na mechanizmus predikcie kanála vyrovnávacej pamäte v procesoroch AMD

Skupina výskumníkov z Technickej univerzity v Grazi (Rakúsko), predtým známych vývojom metód útoku MDS, NetSpectre, Vrhací kladivo и ZombieLoad, vykonala výskum hardvérových optimalizácií špecifických pre procesory AMD a vyvinula dve nové metódy útokov na bočný kanál, ktoré manipulujú s únikmi údajov počas prevádzky mechanizmu predikcie kanála vyrovnávacej pamäte L1 procesorov AMD. Techniky možno použiť na zníženie účinnosti ochrany ASLR, obnovenie kľúčov v zraniteľných implementáciách AES a zlepšenie účinnosti útoku Spectre.

Boli identifikované problémy pri implementácii mechanizmu predikcie kanála (prediktor cesty) v dátovej vyrovnávacej pamäti CPU prvej úrovne (L1D), ktorá sa používa na predpovedanie toho, ktorý kanál vyrovnávacej pamäte obsahuje určitú pamäťovú adresu. Optimalizácia použitá v procesoroch AMD je založená na kontrole μ-tagov (μTag). μTag sa vypočíta aplikáciou špecifickej hašovacej funkcie na virtuálnu adresu. Počas prevádzky nástroj na predikciu kanálov používa μTag na určenie kanála vyrovnávacej pamäte z tabuľky. μTag teda umožňuje procesoru obmedziť sa na prístup iba ku konkrétnemu kanálu, bez prehľadávania všetkých možností, čo výrazne znižuje spotrebu energie CPU.

Dva útoky na mechanizmus predikcie kanála vyrovnávacej pamäte v procesoroch AMD

Počas reverzného inžinierstva implementácie systému predikcie kanálov v rôznych generáciách procesorov AMD vydaných v rokoch 2011 až 2019 boli identifikované dve nové techniky útoku na bočný kanál:

  • Collide+Probe – umožňuje útočníkovi sledovať prístup k pamäti pre procesy bežiace na rovnakom logickom jadre CPU. Podstatou metódy je použitie virtuálnych adries, ktoré spôsobujú kolízie v hašovacej funkcii používanej na výpočet μTag na sledovanie prístupu do pamäte. Na rozdiel od útokov Flush+Reload a Prime+Probe používaných na procesoroch Intel Collide+Probe nepoužíva zdieľanú pamäť a funguje bez znalosti fyzických adries.
  • Load+Reload – umožňuje veľmi presne určiť stopy prístupu do pamäte na rovnakom fyzickom jadre CPU. Metóda je založená na skutočnosti, že fyzická pamäťová bunka môže byť v L1D cache iba raz. Tie. prístup k rovnakej pamäťovej bunke na inej virtuálnej adrese spôsobí, že bunka bude vyradená z vyrovnávacej pamäte L1D, čo umožní sledovanie prístupu do pamäte. Hoci sa útok spolieha na zdieľanú pamäť, nevyprázdni riadky vyrovnávacej pamäte, čo umožňuje tajné útoky, ktoré nevytláčajú údaje z vyrovnávacej pamäte poslednej úrovne.

Na základe techník Collide+Probe a Load+Reload výskumníci demonštrovali niekoľko scenárov útoku na bočný kanál:

  • Ukazuje sa možnosť využitia metód na organizáciu skrytého nepriameho komunikačného kanála medzi dvoma procesmi, čo umožňuje prenos dát rýchlosťou až 588 kB za sekundu.
  • Pomocou kolízií v μTag bolo možné znížiť entropiu pre rôzne varianty ASLR (Address Space Layout Randomization) a obísť ochranu ASLR v jadre na úplne aktualizovanom systéme Linux. Ukazuje sa možnosť vykonania útoku na zníženie entropie ASLR z používateľských aplikácií a pomocou kódu JavaScript spusteného v prostredí sandbox a kódu spusteného v inom prostredí hosťa.

    Dva útoky na mechanizmus predikcie kanála vyrovnávacej pamäte v procesoroch AMD

  • Na základe metódy Collide+Probe bol implementovaný útok na obnovenie šifrovacieho kľúča zo zraniteľnej implementácie (na základe T-stôl) šifrovanie AES.
  • Použitím metódy Collide+Probe ako kanála na získavanie údajov dokázal útok Spectre extrahovať súkromné ​​údaje z jadra bez použitia zdieľanej pamäte.

Zraniteľnosť sa vyskytuje na procesoroch AMD založených na mikroarchitektúrach
Buldozér, Piledriver, Parný valec, Zen (Ryzen, Epic), Zen+ a Zen2.
AMD bolo na problém upozornené 23. augusta 2019, ale zatiaľ správu nezverejnili s informáciami o zablokovaní zraniteľnosti. Podľa výskumníkov je možné problém zablokovať na úrovni aktualizácie mikrokódu poskytnutím bitov MSR na selektívne vypnutie systému predikcie kanálov, podobne ako to urobil Intel na kontrolu deaktivácie mechanizmov predikcie vetvy.

Dva útoky na mechanizmus predikcie kanála vyrovnávacej pamäte v procesoroch AMD

Zdroj: opennet.ru

Pridať komentár