Dva napada na mehanizam predviđanja kanala predmemorije u AMD procesorima

Skupina istraživača s Tehničkog sveučilišta u Grazu (Austrija), prethodno poznata po razvoju metoda napada MDS, NetSpectre, Bacački čekić и ZombieLoad, proveo istraživanje optimizacija hardvera specifičnih za AMD procesore i se razvio dvije nove metode side-channel napada koji manipuliraju curenjem podataka tijekom rada mehanizma predviđanja kanala L1 predmemorije AMD procesora. Tehnike se mogu koristiti za smanjenje učinkovitosti ASLR zaštite, oporavak ključeva u ranjivim AES implementacijama i povećanje učinkovitosti Spectre napada.

Problemi su identificirani u implementaciji mehanizma predviđanja kanala (way predictor) u CPU-ovoj predmemoriji podataka prve razine (L1D), koji se koristi za predviđanje koji kanal predmemorije sadrži određenu memorijsku adresu. Optimizacija koja se koristi u AMD procesorima temelji se na provjeri μ-oznaka (μTag). μTag se izračunava primjenom specifične hash funkcije na virtualnu adresu. Tijekom rada, mehanizam za predviđanje kanala koristi μTag za određivanje kanala predmemorije iz tablice. Dakle, μTag omogućuje procesoru da se ograniči na pristup samo određenom kanalu, bez pretraživanja svih opcija, što značajno smanjuje potrošnju CPU energije.

Dva napada na mehanizam predviđanja kanala predmemorije u AMD procesorima

Tijekom obrnutog inženjeringa implementacije sustava predviđanja kanala u različitim generacijama AMD procesora izdanih od 2011. do 2019., identificirane su dvije nove tehnike napada bočnog kanala:

  • Collide+Probe - omogućuje napadaču praćenje pristupa memoriji za procese koji se izvode na istoj logičkoj CPU jezgri. Bit metode je korištenje virtualnih adresa koje uzrokuju kolizije u hash funkciji koja se koristi za izračun μTag za praćenje pristupa memoriji. Za razliku od napada Flush+Reload i Prime+Probe koji se koriste na Intelovim procesorima, Collide+Probe ne koristi zajedničku memoriju i radi bez znanja o fizičkim adresama.
  • Load+Reload - omogućuje vrlo precizno određivanje tragova pristupa memoriji na istoj fizičkoj CPU jezgri. Metoda se temelji na činjenici da fizička memorijska ćelija može biti u L1D cacheu samo jednom. Oni. pristup istoj memorijskoj ćeliji na drugoj virtualnoj adresi uzrokovat će izbacivanje ćelije iz L1D predmemorije, omogućujući praćenje pristupa memoriji. Iako se napad oslanja na zajedničku memoriju, on ne ispire linije predmemorije, dopuštajući prikrivene napade koji ne izbacuju podatke iz predmemorije zadnje razine.

Na temelju tehnika Collide+Probe i Load+Reload, istraživači su pokazali nekoliko scenarija napada bočnog kanala:

  • Prikazana je mogućnost korištenja metoda za organiziranje skrivenog neizravnog komunikacijskog kanala između dva procesa, koji omogućuje prijenos podataka brzinama do 588 kB u sekundi.
  • Korištenjem kolizija u μTagu bilo je moguće smanjiti entropiju za različite varijante ASLR-a (Address Space Layout Randomization) i zaobići ASLR zaštitu u jezgri na potpuno ažuriranom Linux sustavu. Prikazana je mogućnost izvođenja napada za smanjenje entropije ASLR-a iz korisničkih aplikacija i pomoću JavaScript koda koji se izvodi u sandbox okruženju i koda koji se izvodi u drugom gostujućem okruženju.

    Dva napada na mehanizam predviđanja kanala predmemorije u AMD procesorima

  • Na temelju metode Collide+Probe implementiran je napad za oporavak ključa za šifriranje iz ranjive implementacije (na temelju T-stol) AES šifriranje.
  • Korištenjem metode Collide+Probe kao kanala za prikupljanje podataka, Spectre napad uspio je izvući privatne podatke iz kernela bez korištenja zajedničke memorije.

Ranjivost se javlja na AMD procesorima koji se temelje na mikroarhitekturama
Buldožer, Piledriver, Parni valjak, Zen (Ryzen, Epic), Zen+ i Zen2.
AMD je o problemu obaviješten 23. kolovoza 2019., ali do sada nije objavio izvješće s informacijama o blokiranju ranjivosti. Prema istraživačima, problem se može blokirati na razini ažuriranja mikrokoda pružanjem MSR bitova za selektivno onemogućavanje sustava predviđanja kanala, slično onome što je Intel učinio za kontrolu onemogućavanja mehanizama predviđanja grananja.

Dva napada na mehanizam predviđanja kanala predmemorije u AMD procesorima

Izvor: opennet.ru

Dodajte komentar