Meltdown y Spectre, las amenazas que han hecho temblar el mundo de la computación

Recientemente se ha confirmado la existencia de dos fallos críticos de seguridad en la inmensa mayoría de los procesadores integrados del mundo que dejarían vulnerables áreas protegidas de la memoria del núcleo o Kernel del sistema operativo.

Tras revelarse un error de diseño en los microprocesadores de Intel conocido como Meltdown, hace pocas horas hemos conocido a Spectre, una variante todavía más grave dado que afecta no solo a sus procesadores, sino también a los de AMD y ARM, presentes en miles de millones de dispositivos en todo el mundo.

Meltdown y Spectre son fallos de seguridad diferentes descubiertos por equipos diferentes, aunque hay una empresa que ha tomado parte en ambos. El primero fue descubierto por investigadores de la Universidad Técnica de Graz, en Austria; la firma de seguridad alemana Cerberus Security; y Project Zero de Google. El segundo fue descubierto independientemente por Project Zero y el investigador en seguridad independiente Paul Kocher.

Ahora vamos a describir cada uno de los dos fallos encontrados en los procesadores modernos.

MELTDOWN

Meltdown ha sido el fallo que ha impulsado la actualización de todos los sistemas operativos y se apoya en la ejecución especulativa para filtrar datos desde el kernel a los programa que suelen usar los usuarios. Abarca una vulnerabilidad, cuyo código es CVE-2017-5754.

Los procesadores Intel, AMD y ARM llevan a cabo operaciones especulativas sobre los accesos a la memoria, sin embargo, los de la primera compañía realizan esto de forma especialmente agresiva. La memoria de los sistemas operativos tienen unos metadatos asociados que determinan si se puede acceder desde los programas del usuario o si bien dicho acceso está restringido solo al kernel.

Los procesadores de Intel permiten a los programas de los usuarios utilizar de forma especulativa datos del kernel, haciendo que la comprobación de acceso por parte del programa del usuario ocurra un tiempo después de que la instrucción haya iniciado su ejecución. Es posible bloquear la ejecución especulativa correctamente, pero su impacto en la caché del procesador puede ser medido, abriendo la puerta a deducir los valores almacenados en la memoria del kernel.

Los investigadores no han sido capaces de llevar cabo el mismo tipo de ejecución especulativa sobre la memoria del kernel en AMD y ARM, aunque no descartan que se pueda realizar de alguna forma. AMD ha repetido en varias ocasiones que sus procesadores no especulan con las direcciones de la memoria del kernel de la misma manera que permite la explotación Meltdown, mientras que ARM ha reconocido que algunos modelos son vulnerables y ya ha publicado un parche para el kernel Linux con el fin de corregir el problema.

En el caso de Intel el asunto es más grave, debido a que cualquier memoria del kernel puede ser leída por los programas del usuario. Para corregir el problema, que lleva presente desde 1995, se ha tenido que eliminar el mapeo del kernel compartido, lo que ha provocado la separación total de la memoria del kernel y las aplicaciones ejecutadas por el usuario, además de la posible merma en el rendimiento del sistema operativo, ya que ahora cada cambio que se haga en la memoria del kernel va a requerir que sus páginas sean recargadas.

Intel ya dijo que la merma en el rendimiento dependería de la carga de trabajo, y eso es porque depende del nivel de interacción que tenga la aplicación con el sistema operativo. Por ejemplo, aplicaciones pesadas como juegos last gen no suelen interaccionar mucho con el sistema operativo, por lo que su rendimiento no tendría que verse muy afectado. Sin embargo, aplicaciones que interaccionan con el sistema operativo de forma intensiva, generalmente para realizar operaciones de disco o de red, pueden terminar impactados gravemente (Ver Video).

SPECTRE

Spectre es un ataque de tipo más general basado en una mayor cantidad de características de la ejecución especulativa, por lo que puede ser llevado a cabo con éxito contra los procesadores AMD y ARM, además de Intel. Abarca dos vulnerabilidades, cuyos códigos son CVE-2017-5753 y CVE-2017-5715.

Spectre es ejecutado mediante la utilización de especulación sobre, por ejemplo, una matriz de comprobación de límites o instrucciones de salto para filtrar información. Además de filtrar información del kernel a los programas del usuario, también puede ser utilizado desde hipervisores de virtualización hacia los sistemas invitados.

Lo peor de Spectre es que su solución no es tan sencilla como en el caso de Meltdown, por lo que los parches liberados para los distintos sistemas operativos todavía no lo corrigen, aunque también es algo más complicado de explotar. El motivo es porque la especulación es necesaria para los procesadores de alto rendimiento, y aunque se podría bloquear la ejecución de ciertas operaciones especulativas, no se sabe de momento cómo aplicar una técnica que evite cualquier fuga de información provocada por la ejecución especulativa.

Ciertas piezas de código sensibles pueden ser modificadas para incluir instrucciones de serialización, que son instrucciones que obligan al procesador a esperar a que finalicen todas las operaciones de lectura y de escritura en la memoria, evitando así cualquier especulación en dichas operaciones. ARM, Intel y AMD ya han desarrollado o están desarrollando instrucciones para al menos mitigar Spectre.

IMPACTO PARA LOS USUARIOS

El problema que se nos presenta es sobre todo por la anulación de un sistema de protección incorporado en los sistemas operativos: ASLR. Esto quiere decir que el impacto directo de Meltdown y Spectre en los escritorios comunes no tendría que ser muy grande, siendo sobre todo un apoyo para la ejecución de ataques y la explotación de otras vulnerabilidades, ya que ninguno es capaz, por ejemplo, de salirse de la ejecución de un navegador web.

¿ESTOY AFECTADO POR MELTDOWN Y SPECTRE?

Es probable que sí, dada la dimensión de la amenaza. Prácticamente cualquier procesador fabricado después de 1995 está en riesgo (lista completa que ha publicado Intel) pero, si queréis verificarlo de manera manual se puede realizar mediante la Powershell de Windows, siguiendo las instrucciones que indica Microsoft.

En la siguiente captura, se puede observar un ejemplo de los resultados sobre un equipo sin el parche instalado:

¿ES POSIBLE DETECTAR SI HE SIDO ATACADO?
No es seguro, pero por lo que sabemos hasta ahora los ataques podrían no dejar rastro y haber sido realizados hace tiempo. Por ello, es fundamental tomar precauciones cuanto antes.

¿SIRVE DE ALGO MI ANTIVIRUS?

No. A diferencia del malware habitual, Meltdown y Spectre son difíciles de distinguir por los motores de los antivirus habituales. Esperamos que en la próximas horas se liberen actualizaciones que permitan añadir esta posibilidad.

¿QUÉ SOLUCIONES ESTÁN OFRECIENDO LAS EMPRESAS?

Las compañías están respondiendo en tiempo real a este problema. La mejor opción es consultar las páginas oficiales de seguridad de cada proveedor en función del hardware que tengamos desplegado y actuar siguiendo sus instrucciones. Estos son algunos de los proveedores afectados y sus respectivos anuncios y/o parches:

Proveedores   Aviso/Anuncio/Parche
Amazon (AWS) Boletín con información
AMD Respuesta a la Vulnerabilidad
Apple
 
ARM Actualización de seguridad
Azure
 
Google Project Zero
IBM Potential CPU Security Issue
Intel
 
Microsoft
 
 
 
 
 
Mozilla Speculative execution side-channel attack ("Spectre")
Red Hat Respuesta a la vulnerabilidad
SUSE Respuesta a la vulnerabilidad
VMware Aviso de Seguridad de VMware
Xen
 
El aviso de seguridad de Intel (INTEL-SA-00088 Speculative Execution and Indirect Branch Prediction Side Channel Analysis Method) lista 44 familias de procesadores afectadas, y cada una tiene docenas de modelos. ARM ha lanzado un aviso titulado “Vulnerability of Speculative Processors to Cache Timing Side-Channel Mechanism” que actualmente lista 10 modelos de procesadores afectados.
 
 
Servicios: