AMD je potrdil potencialno ranljivost procesorjev AMD Zen 3 za napad Spectre-STL

AMD je objavil poročilo o analizi varnosti optimizacijske tehnologije PSF (Predictive Store Forwarding), implementirane v procesorje serije Zen 3. Študija je teoretično potrdila uporabnost metode napada Spectre-STL (Spectre-v4), identificirane maja 2018, za PSF tehnologijo, vendar v praksi še niso bile najdene kodne predloge, ki bi lahko vodile do napada, in splošna nevarnost je ocenjena kot nepomembna.

Naj spomnimo, da napad Spectre-v4 (Speculative Store Bypass) temelji na obnavljanju podatkov, ki so se usedli v predpomnilnik procesorja po zavrženju rezultata špekulativnega izvajanja operacij pri obdelavi izmeničnih operacij pisanja in branja z uporabo posrednega naslavljanja. Ko operacija branja sledi operaciji pisanja (npr. mov [rbx + rcx], 0x0; mov rax, [rdx + rsi]), je odmik naslova branja morda že znan zaradi podobnih operacij, ki se izvajajo (operacije branja so se izvajajo veliko pogosteje in se branja lahko izvajajo iz predpomnilnika), procesor pa lahko špekulativno izvaja branja pred pisanjem, ne da bi čakal, da se izračuna posredni odmik pisanja.

Ta funkcija omogoča navodilo za branje za dostop do stare vrednosti na nekem naslovu, medtem ko operacija shranjevanja še ni dokončana. Če pride do napake napovedi, bo neuspešna špekulativna operacija zavržena, vendar bodo sledi njene izvedbe ostale v predpomnilniku procesorja in jih je mogoče pridobiti z eno od metod za določanje vsebine predpomnilnika na podlagi analize sprememb v dostopu. čas do predpomnjenih in nepredpomnjenih podatkov.

PSF, dodan procesorjem AMD Zen 3, optimizira STLF (Store-To-Load-Forwarding), ki operacije branja izvaja špekulativno s predvidevanjem razmerja med operacijami branja in pisanja. Pri uporabi klasičnega STLF procesor izvede operacijo "naloži" podatke, ki so neposredno posredovani iz prejšnjega ukaza "shrani", ne da bi čakal, da se rezultat dejansko zapiše v pomnilnik, ampak poskrbi, da so naslovi, uporabljeni v "nalaganju" in ukaza "store" se ujemata. Optimizacija PSF naredi preverjanje naslovov špekulativno in izvede operacijo "nalaganja", preden so bile informacije o naslovu izračunane, če je bil predhodno izveden par shranjevanje/nalaganje, ki manipulira z enim naslovom. Če napoved ne uspe, se stanje povrne nazaj, vendar podatki ostanejo v predpomnilniku.

Napad na PSF je možen le v okviru ene ravni privilegijev, pokriva le trenutni kontekst procesa in je blokiran z metodami izolacije naslovnega prostora ali mehanizmi peskovnika strojne opreme. V tem primeru lahko težava potencialno vpliva na metode peskovnika programske opreme v procesih. Napad predstavlja grožnjo za sisteme, kot so brskalniki, navidezni stroji za izvajanje kode in JIT-ji, ki izvajajo kodo tretjih oseb znotraj enega procesa (napad lahko nezaupljivi kodi v peskovniku omogoči dostop do drugih podatkov procesa).

AMD je ponudil številne metode za popolno ali selektivno onemogočanje PSF, vendar glede na zanemarljivo tveganje za večino aplikacij priporoča, da se ta optimizacija privzeto ne onemogoči. Za selektivno zaščito procesov, ki izolirajo tiste, ki izvajajo kodo, ki ni vredna zaupanja, je predlagano onemogočanje PSF z nastavitvijo bitov MSR »SSBD« in »PSFD«, vključno za posamezne niti. Za jedro Linuxa so bili pripravljeni popravki z implementacijo možnosti ukazne vrstice »psfd« in »nopsfd«, ki nadzirata, kako se PSF vklopi in izklopi.

Vir: opennet.ru

Dodaj komentar