Saltar al contenido
Think Tecno

¿Cuáles son las vulnerabilidades del espectro y la fusión?

Dos de las vulnerabilidades más publicitadas en la década de 2010 estaban estrechamente relacionadas entre sí. En lugar de ser vulnerabilidades de seguridad en el software, Spectre y Meltdown son vulnerabilidades en el diseño fundamental de las CPU que hacen que el problema sea más difícil de resolver. Los problemas en sí mismos son particularmente graves y permiten la divulgación de memoria de otras aplicaciones y del sistema operativo.

Tabla de contenidos

Visión general

Las CPU utilizan diseños increíblemente avanzados para lograr el máximo rendimiento, incluidas técnicas que incluyen ejecución especulativa y predicción de ramas. La ejecución especulativa es donde la CPU comienza a ejecutar un proceso antes de saber si es necesario, en un esfuerzo por ahorrar tiempo cuando determina que es necesario. La predicción de rama es un subconjunto de la ejecución especulativa que intenta predecir el resultado de un proceso y luego comienza a calcular el siguiente paso en función de ese valor predicho, lo que permite a la CPU ejecutar una serie de instrucciones fuera de orden.

La vulnerabilidad Spectre surge de la implementación de estas dos características. Permite que una aplicación infrinja las técnicas de aislamiento de memoria integradas en la mayoría del software moderno al permitir la divulgación de memoria, incluidos secretos como contraseñas y claves de cifrado. Uno de los problemas de Spectre es que es posible acceder a datos de aplicaciones que no tienen vulnerabilidades de seguridad ya que solo se requiere un programa malicioso.

La vulnerabilidad Meltdown se basa en algunas técnicas de memoria, así como en el sistema de ejecución especulativa mencionado anteriormente. Utiliza una “condición de carrera” entre la ejecución del proceso y la comprobación de privilegios y permite que un programa malicioso acceda a la memoria de otras aplicaciones y al sistema operativo.

Sugerencia: Una “condición de carrera” es un problema en el que una actividad debe depender de otra, pero no se aplica el orden de ejecución correcto. Esto puede hacer que el “segundo” proceso se ejecute primero y use la memoria no inicializada que debería haber contenido el resultado del “primer” proceso, perdiendo el contenido anterior de esa memoria. En este caso específico, el proceso no debe realizarse hasta que una verificación de permisos haya verificado que está permitido, pero la verificación de permisos se puede realizar más tarde debido a optimizaciones de rendimiento.

Efectos

A mediados de 2017, varios equipos descubrieron de forma independiente e informaron sobre Meltdown y Spectre a los fabricantes de CPU que desarrollaron parches. Debido a los parches destinados a optimizar el rendimiento, terminaron reduciendo el rendimiento de la CPU hasta en un 30% en el peor de los casos, con una disminución del rendimiento del 2-14% que es más representativa de las experiencias de las personas.

Las vulnerabilidades afectaron a muchas CPU x86, CPU IBM POWER y algunas CPU basadas en ARM. Meltdown afecta al hardware que normalmente se encuentra en computadoras personales y servidores en la nube. El espectro afecta a computadoras personales, servidores en la nube y dispositivos móviles. Todas las CPU de Intel desde 1995 hasta mediados de 2018 fueron vulnerables a problemas (con la excepción de las líneas Itanium y Atom antes de 2013). Las CPU de AMD no se vieron afectadas por Meltdown, pero eran vulnerables a Spectre.

Se han desarrollado y lanzado parches de mitigación de software a través de proveedores de sistemas operativos que resuelven la mayoría de los problemas. Desde mediados de 2018, Intel ha actualizado el diseño de la CPU para incluir mitigaciones de hardware para los problemas.

Ambos problemas pueden explotarse a través de páginas web maliciosas con JavaScript listo, por lo que es muy importante asegurarse de que se instalen parches de seguridad en todos los sistemas, incluso si la pérdida de rendimiento será grave. Desafortunadamente, los problemas no se pueden resolver con un solo parche, ya que son problemas extremadamente complejos con una integración profunda en el hardware, los parches de seguridad continuarán implementándose con el tiempo a medida que se descubran nuevas variantes.