AMD je potvrdio potencijalnu ranjivost AMD Zen 3 CPU-a na Spectre-STL napad

AMD je objavio izvještaj u kojem se analizira sigurnost PSF (Predictive Store Forwarding) optimizacijske tehnologije implementirane u procesorima serije Zen 3. Studija je teoretski potvrdila primjenjivost Spectre-STL (Spectre-v4) metode napada, identificirane u maju 2018, na PSF tehnologija, ali u praksi još nisu pronađeni šabloni koda koji bi mogli dovesti do napada, a ukupna opasnost se procjenjuje kao beznačajna.

Podsjetimo da je napad Spectre-v4 (Speculative Store Bypass) zasnovan na vraćanju podataka koji su se smjestili u keš memoriju procesora nakon odbacivanja rezultata spekulativnog izvršenja operacija prilikom obrade naizmjeničnih operacija pisanja i čitanja korištenjem indirektnog adresiranja. Kada operacija čitanja prati operaciju pisanja (npr. mov [rbx + rcx], 0x0; mov rax, [rdx + rsi]), pomak adrese čitanja može već biti poznat zbog sličnih operacija koje se izvode (operacije čitanja su obavlja mnogo češće i čitanja se mogu izvoditi iz keš memorije) i procesor može spekulativno izvršiti čitanje prije pisanja bez čekanja da se izračuna indirektni pomak upisivanja.

Ova funkcija omogućava instrukciji za čitanje da pristupi staroj vrijednosti na nekoj adresi dok operacija trgovine još nije završena. Ako dođe do greške predviđanja, neuspješna spekulativna operacija će biti odbačena, ali će tragovi njenog izvršenja ostati u kešu procesora i mogu se dohvatiti nekom od metoda za određivanje sadržaja keša na osnovu analize promjena u pristupu. vrijeme za keširane i nekeširane podatke.

Dodat AMD Zen 3 procesorima, PSF optimizuje STLF (Store-To-Load-Forwarding), koji obavlja operacije čitanja spekulativno predviđajući odnos između operacija čitanja i pisanja. Kada se koristi klasični STLF, procesor izvodi operaciju "učitavanja" podataka direktno proslijeđenih iz prethodne "store" komande, bez čekanja da se rezultat stvarno upiše u memoriju, ali vodeći računa da adrese korištene u "učitavanju" i "pohrani" komande se podudaraju. Optimizacija PSF-a čini provjeru adrese špekulativnom i izvodi operaciju "učitavanja" prije nego što su informacije o adresi izračunate ako je par pohranjivanje/učitavanje koji manipulira jednom adresom prethodno bio izvršen. Ako predviđanje ne uspije, stanje se vraća, ali podaci ostaju u kešu.

Napad na PSF je moguć samo u okviru jednog nivoa privilegija, pokriva samo trenutni kontekst procesa i blokiran je metodama izolacije adresnog prostora ili hardverskim sandbox mehanizmima. U ovom slučaju, problem može potencijalno uticati na metode softverskog okruženja u procesima. Napad predstavlja prijetnju sistemima kao što su pretraživači, virtuelne mašine za izvršavanje koda i JIT-ovi koji izvršavaju kod treće strane unutar jednog procesa (napad bi mogao omogućiti nepouzdanom zaštićenom kodu da dobije pristup drugim podacima procesa).

AMD je pružio brojne metode za potpuno ili selektivno onemogućavanje PSF-a, ali s obzirom na zanemariv rizik za većinu aplikacija, preporučio je da se ova optimizacija ne deaktivira prema zadanim postavkama. Da bi se selektivno zaštitili procesi koji izoluju one koji izvršavaju nepouzdani kod, predlaže se onemogućavanje PSF-a postavljanjem MSR bitova “SSBD” i “PSFD”, uključujući za pojedinačne niti. Za Linux kernel su pripremljene zakrpe sa implementacijom opcija komandne linije “psfd” i “nopsfd” koje kontroliraju kako se PSF uključuje i isključuje.

izvor: opennet.ru

Dodajte komentar