Este es el rendimiento que pierden las CPU tras el parche para Downfall
Ayer os hablamos acerca de Downfall, una nueva vulnerabilidad basada en aprovecharse de la ejecución especulativa para ejecutar código no deseado. El problema afecta a las CPU de Intel para PC y servidores, por suerte el fabricante ya tiene una solución al mismo. Sin embargo, lo importante, al igual que ocurre en otros casos similares, los cambios en el microcódigo del procesador pueden llegar a perjudicar su rendimiento. ¿Cómo afecta el parche de Intel para Downfall a sus procesadores?
A día de hoy ningún procesador ejecuta las instrucciones tal cual están escritas en binario, independientemente de si hablamos de un x86 o un ARM. Sino que las descomponen en microoperaciones mucho más pequeñas y eso viene dictado por el microcódigo. Actualizarlo supone poder añadir o quitar características, pero incluso mejorar o empeorar el rendimiento de la CPU a la hora de ejecutar ciertas instrucciones. De ahí a que cada vez que aparece un parche de seguridad, terminemos cruzando los dedos.
El parche de Intel para Downfall solo afecta a una instrucción
A través de Phoronix, hemos podido saber que la solución en el parche de Intel para Downfall ha sido volver a escribir el código de la instrucción VGATHER, la cual forma parte del subconjunto de instrucciones AVX2/AVX-512. Se trata de una instrucción muy utilizada en las unidades del tipo SIMD, y lo que hace es que permite recolectar varios datos distintos al mismo tiempo desde la RAM hacia la caché y los registros.
Se ha dicho mucho que Downfall es un problema de seguridad que afecta a toda la unidad AVX2/AVX-512, pero realmente solo afecta a una instrucción. Aunque, la parte mala de todo ello es que se trata de una instrucción muy usada en ciertos programas y el nuevo microcódigo reduce el rendimiento de la CPU con la instrucción a la mitad, afectando el tiempo de ejecución de los programas. ¿De cuánto es el recorte de rendimiento? Pues del 50%.
Todo ello no significa que el rendimiento del procesador se vaya a la mitad, sino que el tiempo, medido en ciclos de reloj por instrucción, en el caso de VGATHER se ha duplicado con el nuevo parche de Intel contra Downfall. Pero solo afecta a dicha instrucción y sus variantes, el resto sigue teniendo el mismo rendimiento.
Downfall, es, en realidad, un problema menor
Pese al daño que se puede hacer con Downfall y el hecho de que Intel haya lanzado un parche afectando al microcódigo, el hecho de que solo afecte a una instrucción del subconjunto SIMD o vectorial del procesador hace que no se trate de un problema de importancia. A todo esto, se requiere que tanto que el ataque malicioso que se aprovecha de la vulnerabilidad y la misma se ejecuten bajo el mismo núcleo e hilo de ejecución al mismo tiempo. Lo cual dependerá siempre de como el sistema operativo distribuya el trabajo entre los diferentes núcleos del sistema.
Hemos de partir que la ejecución especulativa no puede ser controlada, tú no puedes decirle a una CPU que la ejecute en un núcleo concreto desde el momento en que no forma parte de la rama principal. Para que lo entendáis mejor, el núcleo A puede estar ejecutando un programa, pero las potenciales ramas del código que va a venir después pueden estar ejecutándose los núcleos C y E. Para que Downfall sea efectivo necesita que todo el proceso ocurra en el mismo hilo de ejecución.
Por lo que cuantos menos núcleos tenga nuestro sistema, más vulnerable es a Downfall. Sin embargo, con el aumento de los mismos en los procesadores Intel gracias al añadido de los E-Cores esa posibilidad es realmente baja, y si hablamos de aquellos usados en servidores donde se cuentan por decenas, pues, entonces son mucho más reducidas.