AMD har bekreftet den potensielle sårbarheten til AMD Zen 3 CPUer for Spectre-STL-angrepet

AMD har publisert en rapport som analyserer sikkerheten til PSF-optimaliseringsteknologien (Predictive Store Forwarding) implementert i prosessorer i Zen 3-serien. Studien bekreftet teoretisk anvendeligheten til Spectre-STL (Spectre-v4) angrepsmetoden, identifisert i mai 2018. PSF-teknologi, men i praksis er det ennå ikke funnet kodemaler som kan føre til et angrep, og den samlede faren vurderes som ubetydelig.

La oss huske at Specter-v4 (Speculative Store Bypass)-angrepet er basert på å gjenopprette data som har satt seg i prosessorbufferen etter å ha forkastet resultatet av spekulativ utførelse av operasjoner ved behandling av alternerende skrive- og leseoperasjoner ved bruk av indirekte adressering. Når en leseoperasjon følger en skriveoperasjon (f.eks. mov [rbx + rcx], 0x0; mov rax, [rdx + rsi]), kan forskyvningen av leseadressen allerede være kjent på grunn av lignende operasjoner som utføres (leseoperasjoner er utføres mye oftere og lesninger kan utføres fra hurtigbufferen) og prosessoren kan spekulativt utføre lesinger før skrivinger uten å vente på at skrivenes indirekte offset skal beregnes.

Denne funksjonen lar en leseinstruksjon få tilgang til en gammel verdi på en adresse mens butikkoperasjonen ikke er fullført ennå. Hvis det er en prediksjonsfeil, vil den mislykkede spekulative operasjonen bli forkastet, men spor av dens utførelse vil forbli i prosessorbufferen og kan hentes ved en av metodene for å bestemme innholdet i hurtigbufferen basert på en analyse av endringer i tilgang tid til hurtigbufrede og ubufrede data.

Lagt til AMD Zen 3-prosessorer, optimaliserer PSF STLF (Store-To-Load-Forwarding), som utfører leseoperasjoner spekulativt ved å forutsi forholdet mellom lese- og skriveoperasjoner. Når du bruker klassisk STLF, utfører prosessoren en "load"-operasjon på dataene som er sendt direkte fra forrige "store"-kommando, uten å vente på at resultatet faktisk blir skrevet til minnet, men sørge for at adressene som brukes i "load" og "store"-kommandoer samsvarer. PSF-optimaliseringen gjør adressesjekking spekulativ og utfører en "last"-operasjon før adresseinformasjonen er beregnet hvis et lagrings-/last-par som manipulerer en enkelt adresse tidligere har blitt utført. Hvis prediksjonen mislykkes, rulles tilstanden tilbake, men dataene forblir i hurtigbufferen.

Et angrep på PSF er bare mulig innenfor rammen av ett nivå av privilegier, dekker bare gjeldende prosesskontekst og er blokkert av adresseromsisolasjonsmetoder eller maskinvaresandboksmekanismer. I dette tilfellet kan programvaresandboxing-metoder i prosesser potensielt bli påvirket av problemet. Angrepet utgjør en trussel mot systemer som nettlesere, virtuelle maskiner for kodekjøring og JIT-er som kjører tredjepartskode innenfor en enkelt prosess (angrepet kan tillate uklarert sandkassekode for å få tilgang til andre prosessdata).

AMD har gitt en rekke metoder for fullstendig eller selektivt deaktivering av PSF, men gitt den ubetydelige risikoen for de fleste applikasjoner, har vi anbefalt at denne optimaliseringen ikke deaktiveres som standard. For selektivt å beskytte prosesser som isolerer de som kjører upålitelig kode, foreslås det å deaktivere PSF ved å sette "SSBD" og "PSFD" MSR-biter, inkludert for individuelle tråder. Patcher er utarbeidet for Linux-kjernen med implementeringen av kommandolinjealternativene "psfd" og "nopsfd" som kontrollerer hvordan PSF slås av og på.

Kilde: opennet.ru

Legg til en kommentar