Spectre, una vez más. Porque sabemos que te lo perdiste...
Spectre y su primo Meltdown llevan con nosotros desde 2018, y uno podría pensar que ya hemos oído todo lo que hay que oír sobre estas vulnerabilidades. Pero, aquí estamos, con otro post sobre Spectre.
¿Por qué sigue apareciendo Spectre? El problema con Spectre es que la vulnerabilidad es esencialmente tan amplia que equivale a una categoría de vulnerabilidades en lugar de una única vulnerabilidad.
Siguen apareciendo nuevas versiones de Spectre - ya informamos a principios de 2021 de cómo nuevo código de explotación de Spectre apareció en un repositorio públicoasí como en dos CVE que se registraron debido a ese código.
Y así, con este artículo, abordamos otra nueva variante de Spectre. Te contaremos cómo funciona, incluido el debate en torno a la respuesta de Intel hasta el momento. También cubrimos los puntos clave en los que debes pensar para proteger tus operaciones contra Spectre en general, así como contra la última variante.
Contenido:
1. Spectre y Meltdown: un repaso
2. ¿Cómo funciona Spectre?
3. Cuál es la historia detrás de la última variante de Spectre...?
4. ...¿Y quién se supone que debe arreglarlo?
5. Intel dice que no depende de ellos
6. ¿Es sólo cuestión de codificar correctamente?
7. Cómo proteger su carga de trabajo contra Spectre
Spectre y Meltdown: un repaso
Los procesadores actuales recurren a complejos algoritmos de eficiencia para mejorar su rendimiento. Uno de ellos es la ejecución especulativa.
Explicado de forma sencilla, la ejecución especulativa consiste en que un procesador realiza el trabajo que cree que puede necesitar una aplicación, sin saber con seguridad si ese trabajo será necesario. Si resulta que el trabajo era necesario, los resultados están disponibles más rápidamente, lo que acelera la aplicación. Si no, los resultados simplemente se descartan.
De hecho, la ejecución especulativa es un elemento esencial de los procesadores modernos. Pero resulta que la ejecución especulativa tiene consecuencias no deseadas, y ahí es donde entra en juego Spectre. En 2018, salió a la luz una forma en la que actores malintencionados pueden abusar de la ejecución especulativa y rápidamente causó una gran preocupación en la comunidad tecnológica.
¿CÓMO FUNCIONA SPECTRE?
No entraremos en detalles sobre el funcionamiento de Spectre, esta guía de TechRepublic es un buen comienzo. Además, cada exploit de Spectre funciona de forma diferente. Pero, a grandes rasgos, Spectre y los exploits relacionados manipulan los procesadores para que accedan a los datos "descartados" de la ejecución especulativa, lo que significa que un actor malintencionado puede acceder indirectamente a datos no autorizados.
Un aspecto "positivo" de Spectre es que es bastante difícil construir un exploit Spectre: es difícil intentar diseñar un ataque de ejecución especulativa con la intención de robar algo específico. No obstante, los piratas informáticos pueden explotar vulnerabilidades relacionadas con Spectre para intentar desviar datos que pueden resultar útiles o no.
Sin embargo, un aspecto preocupante de Spectre es que incluso los datos cifrados son vulnerables a un ataque Spectre, ya que estos datos pueden ser capturados en su estado no cifrado mientras los datos están siendo manejados por el procesador.
A medida que se ha ido conociendo más sobre Meltdown y Spectre se han publicado varios parches para mitigar los exploits que los expertos en seguridad conocían, aunque ningún parche podría mitigar por completo todas las vulnerabilidades relacionadas con Spectre. De nuevo, esto se debe a que Spectre se basa esencialmente en una desventaja de la ejecución especulativa más que en un fallo como tal.
¿CUÁL ES LA HISTORIA DETRÁS DE LA ÚLTIMA VARIANTE DE SPECTRE...?
Ni que decir tiene que surgió otro exploit de Spectre, esta vez en mayo de 2021. Puedes leer leer el artículo completo de Ars Technica aquípero echemos un vistazo a algunos de los puntos clave. En primer lugar, sí, se trata de otro nuevo exploit de ejecución especulativa. Esto demuestra que las preocupaciones planteadas por la comunidad tecnológica en 2018 eran válidas: Spectre es una amenaza abierta que no va a desaparecer rápidamente.
Esta vez, investigadores de la Universidad de Virginia descubrieron un nuevo ataque de ejecución que elude todas las mitigaciones publicadas por Intel y AMD hasta la fecha. El ataque se dirige a un búfer de la CPU que sirve de caché para las "micro-ops", órdenes simplificadas derivadas de las instrucciones más complejas. Una vez más, la función de micro-ops se utiliza en aras de la eficiencia para que los programas puedan ejecutarse más rápidamente.
En el documento, el equipo explica cómo un atacante puede utilizar la caché de microoperadores en un ataque de "canal lateral", es decir, como una forma de hacer observaciones sobre los datos almacenados en un sistema informático. Observando de cerca el comportamiento de la CPU, el atacante puede sacar conclusiones sobre datos que de otro modo no podría ver.
De nuevo, se trata de un exploit relativamente complicado de construir, pero el problema existe y añade una nueva dimensión al drama de Spectre hasta la fecha.
...¿Y QUIÉN DEBE ARREGLARLO?
El nuevo exploit Spectre afecta a procesadores fabricados por Intel y AMD, ya que ambos dependen de un conjunto de instrucciones de procesador similar. Por el momento, AMD no ha respondido a la nueva vulnerabilidad. Sin embargo, se ha tomado nota con interés de la respuesta de Intel.
Los anteriores exploits de Spectre se mitigaron mediante una mezcla de parches de hardware de Intel y AMD, así como parches del sistema operativo. Una vez más, no existe un único parche que pueda ocuparse de todos los exploits relacionados con Spectre, pero los exploits individuales pueden gestionarse mediante parches, tanto a nivel de hardware como de software.
La última variación de Spectre, sin embargo, rompe todas estas defensas. Naturalmente, nos preguntamos cuándo estará disponible un nuevo parche para corregir Spectre.
INTEL DICE QUE NO DEPENDE DE ELLOS
Esta vez, según informan varias fuentes, entre ellas Ars Technica y ThreatpostIntel está sugiriendo esencialmente que no se lanzará ningún parche para el último exploit Spectre. Según la empresa, basta con aplicar buenas prácticas en el desarrollo de software para garantizar que el último exploit de Spectre no suponga un riesgo.
La empresa declaró a Threatpost:
"Intel revisó el informe e informó a los investigadores de que no se estaban eludiendo las medidas de mitigación existentes y que esta situación se aborda en nuestras directrices de codificación segura. El software que sigue nuestras directrices ya cuenta con protecciones contra los canales incidentales, incluido el canal incidental de la caché de uop. No se necesitan nuevas mitigaciones o directrices".
Por supuesto, nadie discutirá las buenas prácticas de codificación: la codificación segura puede limitar o anular el impacto de muchas vulnerabilidades y produce software más seguro, y punto. Uno de los puntos centrales de la guía de codificación segura de Intel es el uso de la programación en tiempo constante, pero es una técnica que supone un reto para los programadores, al tiempo que afecta al rendimiento.
¿ES SÓLO CUESTIÓN DE CODIFICAR CORRECTAMENTE?
El código de la prueba de concepto en el documento de investigación no se adhiere a los principios de programación sugeridos por Intel, y por lo tanto Intel está diciendo que no es una nueva vulnerabilidad en absoluto - sino un problema que puede evitarse simplemente programando correctamente. Un investigador de seguridad se mostró de acuerdo, sugiriendo que el documento apunta a una mayor limpieza de las prácticas de programación, aunque ello implique una merma del rendimiento.
En respuesta, los autores del documento respondieron que la vulnerabilidad reside en la CPU y, por tanto, requiere un parche de microcódigo, que fue lo que Intel proporcionó para mitigar las amenazas de Spectre en el pasado.
El equipo también afirma que demasiado software de uso cotidiano no aplica la programación en tiempo constante y que no esperan que esto cambie en un futuro próximo. En concreto, los autores del artículo señalan que la programación en tiempo constante solo suele utilizarse en rutinas de seguridad especiales de una aplicación, debido a la sobrecarga que implica esta práctica.
El debate continúa y, al menos por ahora, la falta de un parche deja esta vulnerabilidad Spectre ahí fuera para que la aproveche un atacante, aunque de momento no ha aparecido ningún exploit.
CÓMO PROTEGER SU CARGA DE TRABAJO CONTRA SPECTRE
Uno de los problemas frustrantes de las mitigaciones de Spectre ha sido siempre el impacto en el rendimiento, porque los parches de Spectre modifican las herramientas de eficiencia del procesador, como la ejecución especulativa, para limitar las oportunidades de un exploit.
Este artículo reciente de The Register describe las dificultades que entraña la mitigación de las vulnerabilidades Spectre. También hace una observación crucial: aunque los exploits de Spectre son muy graves por naturaleza, han surgido relativamente pocos casos en el mundo real de un pirateo exitoso impulsado por un exploit de Spectre. Esto refleja lo que hemos dicho antes en este artículo: es difícil diseñar un ataque basado en las debilidades de la ejecución especulativa.
Eso no significa que su organización pueda sentarse e ignorar Spectre y su creciente familia de exploits. Algunos parches de Spectre tienen un mayor impacto en el rendimiento que otros: investigue y encuentre un equilibrio entre la aplicación de parches contra Spectre y el mantenimiento del rendimiento.
Como hemos explicado, no hay parche para el último exploit Spectre. Dependiendo de su carga de trabajo, y de si puede cambiar el código que la controla, es posible que desee seguir las mejores prácticas sugeridas por Intel para proteger su carga de trabajo contra ataques derivados de las técnicas descritas en este documento.
Sin embargo, la mayoría de los usuarios no podrán hacerlo. Su mejor opción es asegurarse de que despliega los parches tan pronto como se publiquen. puede ayudarle a hacerlo..
Mientras tanto, no pierda de vista el panorama de las amenazas ni nuestro blog. Lo más probable es que esta no sea la última vez que escribamos sobre Spectre.