Două atacuri asupra mecanismului de predicție a canalului cache la procesoarele AMD

Un grup de cercetători de la Universitatea Tehnică din Graz (Austria), cunoscut anterior pentru dezvoltarea metodelor de atac MDS, NetSpectre, Aruncă ciocanul и ZombieLoad, a efectuat cercetări privind optimizările hardware specifice procesoarelor AMD și a dezvoltat două noi metode de atacuri pe canale laterale care manipulează scurgerile de date în timpul funcționării mecanismului de predicție a canalului cache LXNUMX al procesoarelor AMD. Tehnicile pot fi utilizate pentru a reduce eficiența protecției ASLR, a recupera cheile în implementările vulnerabile AES și pentru a crește eficacitatea atacului Spectre.

Au fost identificate probleme în implementarea mecanismului de predicție a canalului (predictorul de cale) în memoria cache de date de prim nivel (L1D) a procesorului, utilizată pentru a prezice canalul cache care conține o anumită adresă de memorie. Optimizarea utilizată la procesoarele AMD se bazează pe verificarea μ-tags (μTag). μTag este calculat prin aplicarea unei anumite funcții hash la adresa virtuală. În timpul funcționării, motorul de predicție a canalului folosește μTag pentru a determina canalul cache din tabel. Astfel, μTag permite procesorului să se limiteze la accesarea doar a unui anumit canal, fără a căuta prin toate opțiunile, ceea ce reduce semnificativ consumul de energie al procesorului.

Două atacuri asupra mecanismului de predicție a canalului cache la procesoarele AMD

În timpul ingineriei inverse a implementării sistemului de predicție a canalelor în diferite generații de procesoare AMD lansate între 2011 și 2019, au fost identificate două noi tehnici de atac pe canal lateral:

  • Collide+Probe - permite unui atacator să urmărească accesul la memorie pentru procesele care rulează pe același nucleu logic al procesorului. Esența metodei este utilizarea adreselor virtuale care provoacă coliziuni în funcția hash utilizată pentru a calcula μTag pentru a urmări accesul la memorie. Spre deosebire de atacurile Flush+Reload și Prime+Probe folosite pe procesoarele Intel, Collide+Probe nu folosește memoria partajată și funcționează fără cunoștințe despre adresele fizice.
  • Load+Reload - vă permite să determinați foarte precis urmele de acces la memorie pe același nucleu fizic al procesorului. Metoda se bazează pe faptul că o celulă de memorie fizică poate fi o singură dată în memoria cache L1D. Acestea. accesarea aceleiași celule de memorie la o adresă virtuală diferită va face ca celula să fie evacuată din memoria cache L1D, permițând urmărirea accesului la memorie. Deși atacul se bazează pe memoria partajată, nu șterge liniile de cache, permițând atacuri ascunse care nu evacuează datele din memoria cache de ultimul nivel.

Pe baza tehnicilor Collide+Probe și Load+Reload, cercetătorii au demonstrat mai multe scenarii de atac pe canal lateral:

  • Este prezentată posibilitatea utilizării metodelor de organizare a unui canal de comunicare indirect ascuns între două procese, permițând transferul de date la viteze de până la 588 kB pe secundă.
  • Folosind coliziuni în μTag, a fost posibilă reducerea entropiei pentru diferite variante de ASLR (Address Space Layout Randomization) și ocolirea protecției ASLR în kernel pe un sistem Linux complet actualizat. Este prezentată posibilitatea de a efectua un atac pentru a reduce entropia ASLR atât din aplicațiile utilizatorului, cât și folosind codul JavaScript executat într-un mediu sandbox și codul care rulează într-un alt mediu invitat.

    Două atacuri asupra mecanismului de predicție a canalului cache la procesoarele AMD

  • Pe baza metodei Collide+Probe, a fost implementat un atac pentru a recupera cheia de criptare dintr-o implementare vulnerabilă (pe baza Masa T) Criptare AES.
  • Folosind metoda Collide+Probe ca canal de achiziție de date, atacul Spectre a putut extrage date private din nucleu fără a utiliza memoria partajată.

Vulnerabilitatea apare pe procesoarele AMD bazate pe microarhitecturi
Buldozer, Piledriver, Steamroller, Zen (Ryzen, Epic), Zen+ și Zen2.
AMD a fost notificat cu privire la problemă pe 23 august 2019, dar până acum nu a lansat raportul cu informații despre blocarea vulnerabilității. Potrivit cercetătorilor, problema poate fi blocată la nivelul de actualizare a microcodului prin furnizarea de biți MSR pentru a dezactiva selectiv sistemul de predicție a canalului, similar cu ceea ce a făcut Intel pentru a controla dezactivarea mecanismelor de predicție a ramurilor.

Două atacuri asupra mecanismului de predicție a canalului cache la procesoarele AMD

Sursa: opennet.ru

Adauga un comentariu