Inception, la vulnerabilidad a lo «Spectre» para las CPU AMD Ryzen ¿perderán rendimiento?
Bajo el nombre de Inception ha aparecido una vulnerabilidad que recuerda mucho a las de Meltdown y Spectre que afectaron a las CPU de Intel hace unos años. Aunque la gran diferencia es que esta vez son las CPU AMD Zen las afectadas. ¿En qué consiste esta vulnerabilidad y que potenciales soluciones pueden aplicar ante un problema de este calibre?
La vulnerabilidad de la que hablamos solo afecta a los procesadores AMD Zen y tiene la capacidad de extraer información confidencial. Sus descubridores en el ETH de Zúrich consiguieron robar datos a una velocidad de 39 bytes por segundo. Una cifra que nos puede muy baja, pero que es suficiente para robar al menos la clave de acceso a tu banco.
¿Qué es Inception?
Al igual que Meltdown y Spectre hace unos años, Inception se aprovecha de la ejecución especulativa. Esta consiste en que debido a que las CPU actuales son muy rápidas, en el caso de un salto o un bucle en el código donde el procesador siga una línea de código u otra, lo que hará el procesador es ejecutarlas todas. Así, cuando se sepa que camino ha de tomar ya tendrá el camino hecho de antemano, claro está, que lo ha de hacer en un entorno aislado.
Claro está, que cuando hablamos de entornos aislados nos referimos a que la parte de la RAM donde se ejecutan esos hilos predictivos se encuentra protegida. Por lo que desde una aplicación normal no puedes acceder a dicha parte de la memoria. ¿Y cómo se consigue hacer? Pues a base de empujones, que lo que hacen es desplazar el programa hasta que este se termina ejecutando en una parte de la memoria que antes no se encontraba accesible.
En el caso que nos ocupa, Inception, la forma de conseguirla es a base de continuas instrucciones XOR, una de las operaciones booleanas más básicas. No olvidemos que una vez que el contador de programa apunta a un área protegida de la RAM, se hace mucho más fácil ejecutar código con un nivel de privilegio mucho mayor, lo que es una ventana a la ejecución de código malicioso. Se trata de la una versión mejorada de Phantom, una vulnerabilidad del mismo tipo que ya afecto a CPU de Intel y AMD por igual.
AMD ya tiene la solución
Pues bien, AMD a través de un boletín ha informado que tienen pensado añadir parches para sus CPU Zen 3 y Zen 4 en la próxima actualización de AGESA. Sin embargo, no hacen mención de Zen 1 y Zen 2. Aunque desconocemos por el momento si vamos a ver una pérdida de rendimiento una vez aplicado el parche.
Por el momento no lo sabemos, pero lo más lógico sería que retocasen el microcódigo de la ejecución especulativa, al menos en la parte que permite ejecutar la vulnerabilidad que es Inception. Lo que podría significar una pérdida de rendimiento importante. No olvidemos que la ejecución especulativa, pese a permitir problemas de seguridad como este, son un método para evitar caídas de rendimiento cuando la Branch Unit no hace bien sus predicciones de salto.
Se ha de tener en cuenta que todos los procesadores de AMD Ryzen, desde los primeros que usan Zen hasta los actuales con Zen 4. Por lo que no hablamos de un problema que afecta a un par de modelos de CPU o a una arquitectura en concreto. No obstante, los de Lisa Su han decidido centrarse solo en las dos últimas generaciones.