AMD confirmou a potencial vulnerabilidade das CPU AMD Zen 3 ao ataque Spectre-STL

AMD publicou un informe no que analiza a seguridade da tecnoloxía de optimización PSF (Predictive Store Forwarding) implementada nos procesadores da serie Zen 3. O estudo confirmou teoricamente a aplicabilidade do método de ataque Spectre-STL (Spectre-v4), identificado en maio de 2018, para Tecnoloxía PSF, pero na práctica, aínda non se atoparon modelos de código capaces de provocar un ataque e o perigo global é avaliado como insignificante.

Lembremos que o ataque Spectre-v4 (Speculative Store Bypass) baséase en restaurar os datos que se instalaron na caché do procesador despois de descartar o resultado da execución especulativa de operacións ao procesar operacións alternas de escritura e lectura mediante o direccionamento indirecto. Cando unha operación de lectura segue a unha operación de escritura (por exemplo, mov [rbx + rcx], 0x0; mov rax, [rdx + rsi]), é posible que xa se coñeza a compensación do enderezo de lectura debido a que se están realizando operacións similares (as operacións de lectura son realízase con moita máis frecuencia e as lecturas pódense realizar desde a caché) e o procesador pode realizar lecturas antes de escribir de forma especulativa sen esperar a que se calcule a compensación indirecta da escritura.

Esta función permite que unha instrución de lectura acceda a un valor antigo nalgún enderezo mentres a operación da tenda aínda non está completada. Se hai un erro de predición, descartarase a operación especulativa sen éxito, pero os rastros da súa execución permanecerán na caché do procesador e poderán ser recuperados por algún dos métodos para determinar o contido da caché baseándose nunha análise dos cambios no acceso. tempo para os datos cachés e sen caché.

Engadido aos procesadores AMD Zen 3, PSF optimiza STLF (Store-To-Load-Forwarding), que realiza operacións de lectura de forma especulativa ao predicir a relación entre as operacións de lectura e escritura. Cando se usa STLF clásico, o procesador realiza unha operación de "carga" sobre os datos reenviados directamente desde o comando "almacenar" anterior, sen esperar a que o resultado se escriba na memoria, pero asegurándose de que os enderezos utilizados na "carga" e os comandos "almacenar" coinciden. A optimización PSF fai que a comprobación de enderezos sexa especulativa e realiza unha operación de "carga" antes de que se calcule a información do enderezo se se executou previamente un par de almacenamento/carga que manipula un só enderezo. Se a predición falla, o estado retrovólvese, pero os datos permanecen na caché.

Un ataque a PSF só é posible no marco dun nivel de privilexios, cobre só o contexto do proceso actual e está bloqueado por métodos de illamento do espazo de enderezos ou mecanismos de sandbox de hardware. Neste caso, os métodos de sandboxing de software nos procesos poden verse afectados polo problema. O ataque supón unha ameaza para sistemas como navegadores, máquinas virtuais de execución de código e JIT que executan código de terceiros nun único proceso (o ataque podería permitir que código sandbox non fiable acceda a outros datos do proceso).

AMD proporcionou unha serie de métodos para desactivar de forma completa ou selectiva PSF, pero dado o risco insignificante para a maioría das aplicacións, recomendou que esta optimización non se desactive por defecto. Para protexer selectivamente os procesos que illan aqueles que executan código non fiable, proponse desactivar PSF configurando os bits MSR "SSBD" e "PSFD", incluso para fíos individuais. Preparáronse parches para o núcleo de Linux coa implementación das opcións de liña de comandos "psfd" e "nopsfd" que controlan como se activa e desactiva PSF.

Fonte: opennet.ru

Engadir un comentario