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

AMD je objavio izvješće u kojem analizira sigurnost tehnologije optimizacije PSF (Predictive Store Forwarding) implementirane u procesore serije Zen 3. Studija je teoretski potvrdila primjenjivost metode napada Spectre-STL (Spectre-v4), identificirane u svibnju 2018., na PSF tehnologiju, ali u praksi još uvijek nisu pronađeni predlošci koda koji bi mogli dovesti do napada te se ukupna opasnost procjenjuje kao beznačajna.

Podsjetimo, napad Spectre-v4 (Speculative Store Bypass) temelji se na vraćanju podataka koji su se smjestili u predmemoriju procesora nakon odbacivanja rezultata spekulativnog izvršavanja operacija prilikom obrade naizmjeničnih operacija pisanja i čitanja korištenjem neizravnog adresiranja. Kada operacija čitanja slijedi nakon operacije pisanja (npr. mov [rbx + rcx], 0x0; mov rax, [rdx + rsi]), pomak adrese čitanja može biti već poznat zbog sličnih operacija koje se izvode (operacije čitanja su izvodi mnogo češće i čitanja se mogu izvoditi iz predmemorije) i procesor može spekulativno izvoditi čitanja prije pisanja bez čekanja da se izračuna posredni pomak pisanja.

Ova značajka omogućuje instrukciju čitanja za pristup staroj vrijednosti na nekoj adresi dok operacija pohrane još nije dovršena. Ako postoji pogreška predviđanja, neuspješna spekulativna operacija bit će odbačena, ali će tragovi njezina izvođenja ostati u predmemorij procesora i mogu se dohvatiti jednom od metoda za određivanje sadržaja predmemorije na temelju analize promjena u pristupu. vrijeme do predmemoriranih i nekaširanih podataka.

Dodan AMD Zen 3 procesorima, PSF optimizira STLF (Store-To-Load-Forwarding), koji spekulativno izvodi operacije čitanja predviđajući odnos između operacija čitanja i pisanja. Kada koristi klasični STLF, procesor izvodi operaciju "učitavanja" podataka izravno proslijeđenih iz prethodne naredbe "store", ne čekajući da se rezultat stvarno zapiše u memoriju, ali osigurava da adrese korištene u "učitavanju" i naredbe "store" odgovaraju. PSF optimizacija čini provjeru adrese spekulativnom i izvodi operaciju "učitavanja" prije nego što se izračunaju informacije o adresi ako je prethodno izvršen par pohrana/učitavanje koji manipulira jednom adresom. Ako predviđanje ne uspije, stanje se vraća, ali podaci ostaju u predmemoriji.

Napad na PSF moguć je samo unutar okvira jedne razine privilegija, pokriva samo trenutni procesni kontekst i blokiran je metodama izolacije adresnog prostora ili hardverskim mehanizmima sandboxa. U tom slučaju problem potencijalno može utjecati na metode softverskog sandboxinga u procesima. Napad predstavlja prijetnju sustavima kao što su preglednici, virtualni strojevi za izvršavanje koda i JIT-ovi koji izvršavaju kod trećih strana unutar jednog procesa (napad bi mogao omogućiti nepouzdanom kodu u sandboxu da dobije pristup drugim podacima procesa).

AMD je osigurao niz metoda 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 onemogući prema zadanim postavkama. Za selektivnu zaštitu procesa koji izoliraju one koji izvršavaju nepouzdan kod, predlaže se onemogućiti PSF postavljanjem MSR bitova "SSBD" i "PSFD", uključujući za pojedinačne niti. Zakrpe su pripremljene za Linux kernel s implementacijom opcija retka za naredbe “psfd” i “nopsfd” koje kontroliraju kako se PSF uključuje i isključuje.

Izvor: opennet.ru

Dodajte komentar