AMD ha confirmat la vulnerabilitat potencial de les CPU AMD Zen 3 a l'atac Spectre-STL

AMD ha publicat un informe que analitza la seguretat de la tecnologia d'optimització PSF (Predictive Store Forwarding) implementada als processadors de la sèrie Zen 3. L'estudi va confirmar teòricament l'aplicabilitat del mètode d'atac Spectre-STL (Spectre-v4), identificat el maig de 2018, per Tecnologia PSF, però a la pràctica, encara no s'ha trobat cap plantilla de codi capaç de provocar un atac i el perill global es valora com a insignificant.

Recordem que l'atac Spectre-v4 (Speculative Store Bypass) es basa en la restauració de dades que s'han instal·lat a la memòria cau del processador després de descartar el resultat de l'execució especulativa d'operacions en processar operacions d'escriptura i lectura alternades mitjançant l'adreçament indirecte. Quan una operació de lectura segueix una operació d'escriptura (p. ex., mov [rbx + rcx], 0x0; mov rax, [rdx + rsi]), el desplaçament de l'adreça de lectura ja es pot conèixer a causa d'operacions similars que s'estan realitzant (les operacions de lectura són es realitza amb molta més freqüència i les lectures es poden fer des de la memòria cau) i el processador pot realitzar de manera especulativa lectures abans de les escriptures sense esperar que es calculi el desplaçament d'indirecció de l'escriptura.

Aquesta característica permet que una instrucció de lectura accedeixi a un valor antic en alguna adreça mentre l'operació de la botiga encara no s'hagi completat. Si hi ha un error de predicció, es descartarà l'operació especulativa fallida, però els rastres de la seva execució romandran a la memòria cau del processador i es podran recuperar mitjançant un dels mètodes per determinar el contingut de la memòria cau a partir d'una anàlisi dels canvis en l'accés. temps per a les dades emmagatzemades i sense caché.

Afegit als processadors AMD Zen 3, PSF optimitza STLF (Store-To-Load-Forwarding), que realitza operacions de lectura de manera especulativa predint la relació entre les operacions de lectura i escriptura. Quan s'utilitza STLF clàssic, el processador realitza una operació de "càrrega" sobre les dades reenviades directament des de l'ordre "emmagatzema" anterior, sense esperar que el resultat s'escrigui realment a la memòria, però assegurant-se que les adreces utilitzades a la "carrega" i les ordres "emmagatzema" coincideixen. L'optimització de PSF fa que la comprovació d'adreces sigui especulativa i realitza una operació de "càrrega" abans que s'hagi calculat la informació de l'adreça si prèviament s'ha executat un parell d'emmagatzematge/càrrega que manipula una única adreça. Si la predicció falla, l'estat es revertirà, però les dades romanen a la memòria cau.

Un atac a PSF només és possible en el marc d'un nivell de privilegis, cobreix només el context del procés actual i està bloquejat per mètodes d'aïllament de l'espai d'adreces o mecanismes de prova de maquinari. En aquest cas, els mètodes de sandboxing del programari dels processos poden veure's afectats pel problema. L'atac suposa una amenaça per a sistemes com ara navegadors, màquines virtuals d'execució de codi i JIT que executen codi de tercers dins d'un sol procés (l'atac podria permetre que el codi sandbox no fiable tingui accés a altres dades del procés).

AMD ha proporcionat una sèrie de mètodes per desactivar PSF de manera completa o selectiva, però donat el risc insignificant de la majoria de les aplicacions, ha recomanat que aquesta optimització no es desactivi de manera predeterminada. Per protegir selectivament els processos que aïllen aquells que executen codi no fiable, es proposa desactivar PSF establint els bits MSR "SSBD" i "PSFD", fins i tot per a fils individuals. S'han preparat pedaços per al nucli de Linux amb la implementació de les opcions de línia d'ordres "psfd" i "nopsfd" que controlen com s'activa i desactiva PSF.

Font: opennet.ru

Afegeix comentari