
En enero de 2018, los investigadores de Google pusieron a disposición del público información sobre vulnerabilidades fundamentales de hardware en la mayoría de los procesadores modernos con ejecución especulativa de instrucciones. El espectro de vulnerabilidad (y Meltdown adyacente) explota el mecanismo de predicción de rama en la CPU y permite que los datos se lean a través de un canal externo en forma de una jerarquía de caché común. En otras palabras, cualquier aplicación en la computadora puede obtener acceso de lectura a ubicaciones de memoria arbitrarias, lo que viola el aislamiento de programas, provoca fugas de datos, denegación de servicio y otros problemas.
Lo peor de todo es que casi todos los procesadores modernos (excepto RISC y el Elbrus ruso) son vulnerables, porque la predicción de ramas se ha convertido en una
parte fundamental de la arquitectura de las CPU modernas , que no pueden abandonarse sin una pérdida significativa de rendimiento.
De hecho, los investigadores encontraron la vulnerabilidad a mediados de 2017, simplemente no informaron al público en general para que los fabricantes de procesadores y sistemas tuvieran la oportunidad de preparar microcódigo y actualizaciones de software.
Por lo tanto, inmediatamente después del anuncio oficial a principios de enero, Intel
lanzó una actualización de microcódigo para una gran cantidad de modelos de procesadores actuales y obsoletos. La actualización está disponible como paquetes para Red Hat Enterprise Linux, SUSE Linux Enterprise Server, CentOS, Fedora, Ubuntu, Debian y Chrome OS, lo que le permite actualizar el firmware sin actualizar el BIOS. La actualización del microcódigo no elimina la necesidad de aplicar parches KPTI al kernel de Linux. Es cierto que las primeras versiones de Linus Torvalds
llamaron "basura absoluta" , e Intel pidió que dejara de instalarlas, y luego volvió a lanzarlas.
Otros fabricantes lanzaron actualizaciones para sus productos, y los parches correspondientes se lanzaron para la mayoría de los sistemas operativos. Un
parche para Windows 10 no escapó a las aventuras: Microsoft lo lanzó, lo recordó y luego lo lanzó nuevamente.
Pero después de todas estas aventuras, la historia parecía terminar: se lanzaron versiones estables de parches y todos los que quisieron instalarlos. Parece que puedes poner fin a esto. Pero no Un año después, el 14 de febrero de 2019, un grupo de investigadores de Google publicó un informe con el dicho:
"Specter se quedará con nosotros. Análisis de ataques a través de canales de terceros y ejecución especulativa " . Los investigadores concluyeron que es imposible cerrar completamente la vulnerabilidad solo con parches de software. Esto requerirá un "procesamiento significativo de los procesadores".
Del informe se puede concluir que la vulnerabilidad es verdaderamente fundamental. Los autores escriben que
todos los procesadores con ejecución especulativa siempre serán susceptibles a varios ataques de los canales laterales, a pesar de los métodos de protección parcial que pueden implementarse en el futuro .
El informe decía: "Creemos que con el hardware moderno, las vulnerabilidades especulativas socavan la confidencialidad a nivel de software. Al mismo tiempo, no existe una protección integral de software, ya que descubrimos que el código malicioso puede crear un mecanismo universal para leer toda la memoria en el mismo espacio de direcciones a través de canales de terceros ".
Intel dijo que tenía la intención de implementar algunos cambios de hardware en los procesadores para proteger contra Spectre. Pero el problema es que Specter no es solo un error. Los investigadores creen que esta es una
amplia clase de vulnerabilidades que explotan el mecanismo de predicción de sucursales. Por lo tanto, los parches simples no pueden hacer aquí.
Los investigadores han sugerido varias soluciones potenciales, a saber:
- desactivación completa de la ejecución especulativa;
- precisión disminuida del temporizador;
- enmascarar ramas (dado que cualquier comprobación de seguridad que esté incrustada en el código como una rama puede eludirse por la naturaleza de la predicción de rama, los autores proponen no considerar ramas en el diseño de mecanismos de seguridad).
Los investigadores llegan a una conclusión decepcionante: “Nuestros modelos, nuestros modelos
mentales están equivocados; sacrificamos la seguridad por el rendimiento y la complejidad, y no lo sabíamos. La amarga ironía ahora es que la protección requiere la introducción de una complejidad aún mayor utilizando herramientas de software, la mayoría de las cuales, como sabemos, están incompletas ... Parece que Specter tiene un nombre demasiado bueno porque está destinado a perseguirnos durante mucho tiempo ".