AMD ha confirmado que una optimización de la microarquitectura dentro de las CPU Zen 3 puede explotarse de manera similar a las vulnerabilidades de Spectre que plagaron las CPU de Intel en su momento. Es posible deshabilitar la optimización, pero conllevará una penalización de rendimiento, en donde AMD no cree que valga la pena.
En un documento técnico publicado recientemente, titulado «Predictive Store Forwarding«, AMD describe la naturaleza de la vulnerabilidad y analiza las complicaciones asociadas. En términos simples, la implementación de Predictive Store Forwarding (PSF) reabre las líneas de ataque previamente amenazadas por Spectre v1, v2 y v4, debido a su naturaleza especulativa.
AMD describe a PSF como una optimización de hardware
AMD describe a PSF como una optimización de hardware «diseñada para mejorar el rendimiento de la ejecución del código mediante la predicción de dependencias entre cargas y almacenamientos». Al igual que la predicción de branch, una función que permitió algunos ataques anteriores de Spectre, PSF hace predicciones para permitir que el procesador ejecute instrucciones posteriores más rápido. Entonces PSF crea una vulnerabilidad cuando realiza una predicción incorrecta.
Las predicciones incorrectas pueden ser el resultado de dos escenarios, dice AMD.
«En primer lugar, es posible que el par de almacenamiento/carga haya tenido una dependencia durante un tiempo pero que después deje de tenerla. Esto puede ocurrir si la dirección del almacén o de la carga cambia durante la ejecución del programa.»
«La segunda fuente de predicciones PSF incorrectas puede ocurrir si hay un alias en la estructura del predictor PSF. El predictor PSF está diseñado para rastrear los pares de almacenamiento/carga basándose en partes de su RIP. Es posible que un par de almacenamientos/cargas que tenga una dependencia tenga un alias en el predictor con otro par de almacenamientos/cargas que no la tenga. Esto puede dar lugar a una especulación incorrecta cuando se ejecute el segundo par de tienda/carga».
Los procesadores de las series Ryzen 5000 y Epyc 7003 utilizan la arquitectura Zen 3 y se ven afectados por esta vulnerabilidad.
«Dado que la especulación de PSF se limita al contexto actual del programa, el impacto de una mala especulación de PSF es similar al de la derivación del almacén especulativo (por ejemplo, Spectre v4). En ambos casos, surge un problema de seguridad si existe código que implementa algún tipo de control de seguridad que puede ser eludido cuando la CPU especula incorrectamente.
Este puede ocurrir si un programa (como un navegador web) alberga piezas de código no fiable y el código no fiable es capaz de influir en la forma en que la CPU especula en otras regiones de forma que se produzca una fuga de datos.Esto es similar al riesgo de seguridad riesgo de seguridad con otros ataques de tipo Spectre.»
Al igual que Spectre v4, la vulnerabilidad se produce cuando una de las medidas de seguridad del procesador se pasa por alto por la especulación incorrecta. En combinación con otros ataques; AMD usa Spectre v1 como ejemplo, la predicción incorrecta puede resultar en una fuga de datos. «Esto es similar al riesgo de seguridad de otros ataques de tipo Spectre», dice AMD.
Los programas que dependen del software sandboxing para la seguridad son los más vulnerables a los ataques de PSF. Los programas que utilizan aislamiento de hardware «pueden considerarse seguros» de los ataques de PSF porque la especulación de PSF no ocurre en los espacios de direcciones. Tampoco ocurre en los dominios de privilegios.
AMD ha descubierto que técnicas como el aislamiento del espacio de direcciones son suficientes para detener los ataques de PSF, sin embargo, han proporcionado los medios para desactivar PSF, incluso por subproceso, si se desea. Pero debido a que el riesgo de seguridad es «bajo» y debido a que «AMD no tiene conocimiento de ningún código que se considere vulnerable debido al comportamiento de PSF», recomiendan dejar la función de PSF habilitada como configuración predeterminada.
Fuente: AMD