AMD har bekræftet den potentielle sårbarhed af AMD Zen 3 CPU'er over for Spectre-STL angrebet

AMD har udgivet en rapport, der analyserer sikkerheden af ​​PSF (Predictive Store Forwarding) optimeringsteknologi implementeret i Zen 3-seriens processorer. Undersøgelsen bekræftede teoretisk anvendeligheden af ​​Spectre-STL (Spectre-v4) angrebsmetoden, identificeret i maj 2018, til PSF-teknologi, men i praksis er der endnu ikke fundet kodeskabeloner, der kan føre til et angreb, og den samlede fare vurderes som ubetydelig.

Lad os huske på, at Spectre-v4 (Speculative Store Bypass)-angrebet er baseret på gendannelse af data, der har sat sig i processorcachen efter at have kasseret resultatet af spekulativ udførelse af operationer, når der behandles skiftende skrive- og læseoperationer ved hjælp af indirekte adressering. Når en læseoperation følger en skriveoperation (f.eks. mov [rbx + rcx], 0x0; mov rax, [rdx + rsi]), er forskydningen af ​​læseadressen muligvis allerede kendt på grund af lignende operationer, der udføres (læseoperationer er udføres meget hyppigere og læsninger kan udføres fra cachen), og processoren kan spekulativt udføre læsninger før skrivninger uden at vente på, at skrivningens indirekte offset beregnes.

Denne funktion tillader en læseinstruktion for at få adgang til en gammel værdi på en eller anden adresse, mens butikshandlingen endnu ikke er afsluttet. Hvis der er en forudsigelsesfejl, vil den mislykkede spekulative operation blive kasseret, men spor af dens udførelse vil forblive i processorcachen og kan hentes ved en af ​​metoderne til at bestemme indholdet af cachen baseret på en analyse af ændringer i adgangen tid til cachelagrede og ikke-cachelagrede data.

Tilføjet til AMD Zen 3-processorer optimerer PSF STLF (Store-To-Load-Forwarding), som udfører læseoperationer spekulativt ved at forudsige forholdet mellem læse- og skriveoperationer. Når du bruger klassisk STLF, udfører processoren en "load"-operation på de data, der er sendt direkte fra den forrige "store"-kommando, uden at vente på, at resultatet rent faktisk bliver skrevet til hukommelsen, men sørger for, at de adresser, der bruges i "load" og "store"-kommandoer matcher. PSF-optimeringen gør adressekontrol spekulativ og udfører en "indlæs"-operation, før adresseinformationen er blevet beregnet, hvis et lager/indlæsningspar, der manipulerer en enkelt adresse, tidligere er blevet udført. Hvis forudsigelsen mislykkes, rulles tilstanden tilbage, men dataene forbliver i cachen.

Et angreb på PSF er kun muligt inden for rammerne af ét niveau af privilegier, dækker kun den aktuelle proceskontekst og er blokeret af adresserumsisoleringsmetoder eller hardware-sandbox-mekanismer. I dette tilfælde kan software-sandboxing-metoder i processer potentielt blive påvirket af problemet. Angrebet udgør en trussel mod systemer som browsere, virtuelle maskiner til kodeeksekvering og JIT'er, der udfører tredjepartskode inden for en enkelt proces (angrebet kunne tillade upålidelig sandboxed-kode at få adgang til andre procesdata).

AMD har leveret en række metoder til fuldstændig eller selektivt at deaktivere PSF, men har i betragtning af den ubetydelige risiko for de fleste applikationer anbefalet, at denne optimering ikke deaktiveres som standard. For selektivt at beskytte processer, der isolerer dem, der udfører upålidelig kode, foreslås det at deaktivere PSF ved at indstille "SSBD" og "PSFD" MSR-bit, inklusive for individuelle tråde. Patches er blevet forberedt til Linux-kernen med implementeringen af ​​"psfd" og "nopsfd" kommandolinjeindstillinger, der styrer, hvordan PSF tændes og slukkes.

Kilde: opennet.ru

Tilføj en kommentar