Mucho se ha hablado de las vulnerabilidades de los procesadores desde el año 2018, tanto de Intel como de AMD, y aunque el primero se ha llevado gran parte de las críticas, la segunda parece que tampoco se quedará atrás. En un documento técnico los de Lisa Su hablan sobre una vulnerabilidad mediante exploit al más puro estilo Side-Channel en lo que sería un ataque similar a Spectre y que afectaría a la tecnología propia de la compañía denominada como Predictive Store Forwarding o PSF.
Los problemas de seguridad con la predicción de los procesadores actuales trae de cabeza a los ingenieros de seguridad de hardware de ambos bandos. La mejora del rendimiento utilizando estas técnicas es innegable y no se va a renunciar a ellas, pero ahora AMD admite que sus CPU Zen 3 son vulnerables en dicha especulación al nivel de lo visto con Spectre V4. ¿Hay solución?
Especulaciones y predicciones, una técnica con riesgos de seguridad
Este tipo de noticias o documentos técnicos no son ni mucho menos raros en la industria de la ciberseguridad, pero lo cierto es que, al parecer, no hay CPU segura frente a los intrusos por ataque lateral. Con Zen 3, AMD introdujo una tecnología llamada PSF, la cual aumenta el rendimiento en la ejecución del código que pasa por sus núcleos y cachés al predecir la relación entre las llamadas loads y stores.
Cuanto mejor trabajo hace PSF, menos posibilidades hay de que las predicciones sean trabajo en balde, pero aunque se perdiese rendimiento o mejor dicho, no se ganase rendimiento, el problema de la seguridad está ahí presente.
A este tipo de acciones se les llama especulación incorrecta de la CPU y ahí es donde atacan para sacar la información del procesador, ya que el software que se basa en las llamadas «sandboxing» es muy vulnerable a dichos ataques Side-Channel, como vimos en Spectre V4.
Dos escenarios para que un atacante se haga con datos
AMD especifica claramente dos escenarios donde sus CPU Zen 3 pueden ser atacadas:
Primero, es posible que el par store/load haya tenido una dependencia por un tiempo, pero luego deje de tener dicha dependencia. Esto puede ocurrir si la dirección de la store o de la load cambia durante la ejecución del programa.
La segunda fuente de predicciones de PSF incorrectas puede ocurrir si hay un alias en la estructura del predictor de PSF. El predictor de PSF está diseñado para rastrear pares de store/load en función de partes de su RIP. Es posible que un par de store/load tengan una dependencia con un alias en el predictor y a su vez con otro par de stores/load que no lo tenga. Esto puede resultar en una especulación incorrecta cuando se ejecuta el segundo par citado.
Por lo tanto, el reenvío de Store/load va a tener una mejora de rendimiento a costa de una implicación de seguridad. Aun así, AMD afirma que no ha visto ningún código que se considere vulnerable a la predicción errónea de PSF, donde tampoco hay casos de vulnerabilidad detectados, así que recomiendan dejar habilitado PSF.
Pero al mismo tiempo y de forma sorprendente, a los usuarios que trabajan con herramientas de sandboxing y en Linux, AMD lanzó parches para dicho SO que deshabilitarían el reenvío predictivo, contradiciéndose claramente. ¿Estamos a punto de ver una nueva variante Spectre V5 destinada solo para AMD? Visto el documento ¿cuánto tardará en ser explotada dicha vulnerabilidad?