Dva napada na mehanizem napovedovanja kanala predpomnilnika v procesorjih AMD

Skupina raziskovalcev s tehnološke univerze v Gradcu (Avstrija), prej znana po razvoju napadalnih metod MDS, NetSpectre, Metalno kladivo и ZombieLoad, izvedel raziskavo optimizacij strojne opreme, značilne za procesorje AMD in se je razvil dve novi metodi stranskih napadov, ki manipulirata z uhajanjem podatkov med delovanjem mehanizma za napovedovanje predpomnilniškega kanala L1 procesorjev AMD. Tehnike je mogoče uporabiti za zmanjšanje učinkovitosti zaščite ASLR, obnovitev ključev v ranljivih implementacijah AES in povečanje učinkovitosti napada Spectre.

Težave so bile ugotovljene pri izvajanju mehanizma za napovedovanje kanala (way predictor) v podatkovnem predpomnilniku prve stopnje CPE (L1D), ki se uporablja za predvidevanje, kateri kanal predpomnilnika vsebuje določen pomnilniški naslov. Optimizacija, ki se uporablja v procesorjih AMD, temelji na preverjanju oznak μ (μTag). μTag se izračuna z uporabo posebne zgoščevalne funkcije za virtualni naslov. Med delovanjem mehanizem za napovedovanje kanala uporablja μTag za določitev kanala predpomnilnika iz tabele. Tako μTag omogoča, da se procesor omeji na dostop samo do določenega kanala, brez iskanja po vseh možnostih, kar bistveno zmanjša porabo energije procesorja.

Dva napada na mehanizem napovedovanja kanala predpomnilnika v procesorjih AMD

Med povratnim inženiringom implementacije sistema za napovedovanje kanalov v različnih generacijah procesorjev AMD, izdanih od leta 2011 do 2019, sta bili identificirani dve novi tehniki napada stranskega kanala:

  • Collide+Probe - omogoča napadalcu sledenje dostopu do pomnilnika za procese, ki se izvajajo na istem logičnem jedru CPU. Bistvo metode je uporaba navideznih naslovov, ki povzročijo kolizije v zgoščevalni funkciji, ki se uporablja za izračun μTag za sledenje dostopu do pomnilnika. Za razliko od napadov Flush+Reload in Prime+Probe, ki se uporabljajo na procesorjih Intel, Collide+Probe ne uporablja skupnega pomnilnika in deluje brez poznavanja fizičnih naslovov.
  • Load+Reload - omogoča zelo natančno določanje sledi dostopa do pomnilnika na istem fizičnem jedru CPE. Metoda temelji na dejstvu, da je lahko fizična pomnilniška celica v predpomnilniku L1D le enkrat. Tisti. dostop do iste pomnilniške celice na drugem virtualnem naslovu bo povzročil izgon celice iz predpomnilnika L1D, kar bo omogočilo sledenje dostopu do pomnilnika. Čeprav se napad zanaša na skupni pomnilnik, ne izprazni vrstic predpomnilnika, kar omogoča prikrite napade, ki ne izločijo podatkov iz predpomnilnika zadnje ravni.

Na podlagi tehnik Collide+Probe in Load+Reload so raziskovalci prikazali več scenarijev napada stranskega kanala:

  • Prikazana je možnost uporabe metod za organizacijo skritega posrednega komunikacijskega kanala med dvema procesoma, ki omogoča prenos podatkov s hitrostjo do 588 kB na sekundo.
  • Z uporabo kolizij v μTag je bilo mogoče zmanjšati entropijo za različne različice ASLR (Address Space Layout Randomization) in obiti zaščito ASLR v jedru v popolnoma posodobljenem sistemu Linux. Prikazana je možnost izvajanja napada za zmanjšanje entropije ASLR tako iz uporabniških aplikacij kot z uporabo kode JavaScript, ki se izvaja v okolju peskovnika, in kode, ki se izvaja v drugem gostujočem okolju.

    Dva napada na mehanizem napovedovanja kanala predpomnilnika v procesorjih AMD

  • Na podlagi metode Collide+Probe je bil izveden napad za obnovitev šifrirnega ključa iz ranljive izvedbe (na podlagi T-miza) šifriranje AES.
  • Z uporabo metode Collide+Probe kot kanala za pridobivanje podatkov je napad Spectre uspel izvleči zasebne podatke iz jedra brez uporabe skupnega pomnilnika.

Ranljivost se pojavlja pri procesorjih AMD, ki temeljijo na mikroarhitekturah
Buldožer, Piledriver, Steamroller, Zen (Ryzen, Epic), Zen+ in Zen2.
AMD je bil o težavi obveščen 23. avgusta 2019, vendar doslej ni izdal poročila z informacijami o blokiranju ranljivosti. Po mnenju raziskovalcev je težavo mogoče blokirati na ravni posodobitve mikrokode z zagotavljanjem bitov MSR za selektivno onemogočanje sistema za napovedovanje kanalov, podobno kot je Intel naredil za nadzor onemogočanja mehanizmov za napovedovanje vej.

Dva napada na mehanizem napovedovanja kanala predpomnilnika v procesorjih AMD

Vir: opennet.ru

Dodaj komentar