Meltdown es un agujero de seguridad en el hardware que afecta a los procesadores Intel x86, a los procesadores IBM POWER, y también a algunos procesadores basados en la arquitectura ARM, y que permite que un proceso malicioso pueda leer de cualquier lugar de la memoria virtual, aún sin contar con autorización para hacerlo.
Meltdown afecta a una amplia gama de sistemas. En el momento de hacerse pública su existencia, se incluían todos los dispositivos que no utilizasen una versión convenientemente parcheada de iOS, GNU/Linux, macOS, Windows y Windows 10 Mobile. Por lo tanto, muchos servidores y servicios en la nube se han visto impactados, así como potencialmente la mayoría de dispositivos inteligentes y sistemas embebidos que utilizan procesadores con arquitectura ARM (dispositivos móviles, televisores inteligentes y otros), incluyendo una amplia gama de equipo usado en redes. Se ha considerado que una solución basada únicamente en software para Meltdown ralentizaría los ordenadores entre un cinco y un 30 por ciento dependiendo de la tarea que realizasen. Por su parte, las compañías responsables de la corrección del software en relación con este agujero de seguridad informan de un impacto mínimo según pruebas tipo.
A Meltdown le fue asignado en enero de 2018 el identificador CVE-2017-5754, también conocido como carga maligna de la caché de datos (Rogue Data Cache Load). Su existencia fue revelada junto con la de otra vulnerabilidad, Spectre, con la cual comparte algunas características. Las vulnerabilidades Meltdown y Spectre han sido consideradas como «catastróficas» por algunos analistas de seguridad.https://www.cylance.com/en_us/blog/this-week-in-security-internet-meltdown-over-spectre-of-cpu-bug.htmlhttp://www.rudebaguette.com/2018/01/08/meltdown-spectre-heres-what-you-should-know/ Su gravedad es de tal magnitud que al comienzo los investigadores no daban crédito.
Se han publicado varios procedimientos para ayudar a proteger las computadoras personales y otros dispositivos relacionados contra las vulnerabilidades de seguridad Meltdown y Spectre. Los parches para Meltdown pueden producir una pérdida de rendimiento. Asimismo, se ha informado de que los parches para Spectre degradan también de forma significativa el rendimiento, especialmente en los ordenadores más antiguos; en las nuevas plataformas de octava generación se han medido caídas de rendimiento de entre un 2 y un 14 %. El 18 de enero de 2018 se supo de problemas con reinicios indeseados tras la instalación de los parches para Meltdown y Spectre, afectando incluso a los chips más recientes de Intel. En cualquier caso y según Dell: «No se ha tenido constancia hasta la fecha (26 de enero de 2018) de que estas vulnerabilidades hayan sido puestas en práctica en el mundo real, a pesar de que los investigadores han publicado pruebas de concepto». Asimismo, entre las medidas preventivas recomendadas citan «instalar de inmediato las actualizaciones de software a medida que se publiquen, evitar seguir enlaces a sitios desconocidos, no descargar archivos o aplicaciones de fuentes desconocidas... seguir los protocolos de seguridad a la hora de usar contraseñas seguras... (usar) software de seguridad para ayudar a protegerse del malware (programas avanzados de prevención de amenazas, o antivirus)».
El 25 de enero de 2018 se presentó un informe sobre el estado actual así como de las posibles consideraciones a tomar de cara al futuro con el fin de resolver las vulnerabilidades Meltdown y Spectre.
Base de funcionamiento Meltdown explota una condición de carrera inherente al diseño de muchas CPU actuales. Esta condición se da entre los accesos a la memoria y la comprobación de privilegios durante el procesamiento de instrucciones. Además, en combinación con un ataque de canal lateral a la caché de la CPU, esta vulnerabilidad permite que un proceso se salte las comprobaciones habituales de nivel de privilegio que normalmente aislarían al proceso maligno e impedirían que accediese a datos que pertenecen al sistema operativo y otros procesos concurrentes. La vulnerabilidad permite que un proceso no autorizado lea información de cualquier dirección mapeada al espacio de memoria del proceso actual. Dado que la segmentación de instrucciones reside en los procesadores afectados, la información de una dirección no autorizada casi siempre se cargará temporalmente en la caché de la CPU durante la ejecución fuera de orden, pudiendo posteriormente leerse desde la caché. Esto puede suceder incluso cuando la instrucción de lectura original falla debido a una comprobación de privilegios que da negativo, o cuando no produce un resultado legible.
Dado que muchos sistemas operativos mapean la memoria física, los procesos del núcleo y otros procesos del espacio de usuario en el espacio de direcciones de cada proceso, Meltdown permite que un proceso maligno pueda leer cualquier memoria mapeada física, del núcleo o de otro proceso, con independencia de si debería o no poder hacerlo. Las defensas contra Meltdown exigirían evitar el uso del mapeo de memoria de un modo que resultase vulnerable a tales amenazas (una solución basada en software), o bien evitar la condición de carrera subyacente (una modificación del microcódigo de la CPU o la ruta de ejecución).
El agujero es viable en cualquier sistema operativo en el que la información privilegiada se mapee a memoria virtual para procesos no privilegiados, una característica que incorporan muchos sistemas operativos actuales. Por lo tanto, potencialmente Meltdown puede afectar a una gama de dispositivos mayor que la identificada actualmente, dado que apenas hay variaciones entre las familias de microprocesadores utilizados por estos sistemas.
Un ataque basado en esta vulnerabilidad sería indetectable.https://spectreattack.com/https://www.cybereason.com/blog/what-are-the-spectre-and-meltdown-vulnerabilities
Historia El 8 de mayo de 1995, un documento titulado La arquitectura del procesador Intel 80x86: trampas para los sistemas seguros y publicado en el simposio de 1995 del IEEE referente a seguridad y privacidad advertía de un canal de temporización encubierto en la caché de la CPU y el TLB. Este análisis fue llevado a cabo bajo los auspicios del Programa de Evaluación de Productos de Confianza (TPEP) de la Agencia de Seguridad Nacional estadounidense.
En julio de 2012, el núcleo XNU de Apple (utilizado, entre otros, por macOS, iOS y tvOS) integró la aleatoriedad en la disposición del espacio de direcciones del núcleo (KASLR) con el lanzamiento de Mac OS X Mountain Lion 10.8: la base del sistema, incluido el núcleo y los módulos cargados por él y las zonas se relocalizan de forma aleatoria durante el arranque del sistema en un esfuerzo por reducir la vulnerabilidad del sistema operativo ante los ataques.
En 2014, el núcleo Linux adoptó a su vez la funcionalidad KASLR para mitigar las fugas de direcciones de memoria.
El 4 de agosto de 2016, Anders Fogh y Daniel Gruss presentaron "Cómo usar comportamiento no documentado de la CPU para explorar el espacio del núcleo y de paso romper la protección KASLR" en la conferencia Black Hat de 2016.
El 10 de agosto de 2016, Moritz Lipp y otros miembros de Universidad Tecnológica de Graz publicaron ARMagedón: Ataques a la caché en dispositivos móviles con motivo de la celebración de la 25 edición del simposio de seguridad USENIX. Aunque el trabajo estaba enfocado en ARM, sentaba las bases del vector de ataque.
El 27 de diciembre de 2016 y durante la celebración del 33C3, Clémentine Maurice y Moritz Lipp de la Universidad Tecnológica de Graz presentaron su charla "¿Qué podría salir mal al usar <inserte aquí una instrucción x86>?". Entre los efectos colaterales se mencionaban «los ataques de canal lateral y el baipás al ASLR del núcleo», que ya daban una idea de lo que estaba por llegar.
El 1 de febrero de 2017 los códigos CVE 2017-5715, 2017-5753 y 2017-5754 fueron asignados a Intel.
El 27 de febrero de 2017, Bosman y otras personas de la Universidad Libre de Ámsterdam hicieron públicos en el simposio NDSS sus hallazgos sobre cómo podía abusarse de la aleatoriedad en la disposición del espacio de direcciones (ASLR) en arquitecturas basadas en caché.
El 27 de marzo de 2017, investigadores de la Universidad Tecnológica de Graz desarrollaron una prueba de concepto que podía obtener claves RSA de enclaves de las extensiones de salvaguarda de software (Intel SGX) corriendo en el mismo sistema en cuestión de 5 minutos, empleando ciertas instrucciones de la CPU y una temporización muy granularizada para explotar canales laterales de la caché DRAM.
En junio de 2017, se detectó que KASLR contaba por sí mismo con una nueva clase de nuevas vulnerabilidades. Los investigadores de la Universidad Tecnológica de Graz mostraron cómo resolver estas vulnerabilidades impidiendo todo acceso a páginas no autorizadas. Una presentación de la técnica KAISER fue remitida al congreso Black Hat en julio de 2017, pero fue rechazada por los organizadores. En cualquier caso, este trabajo condujo al aislamiento de tablas de páginas del núcleo (KPTI, originalmente conocido como KAISER) en 2017, que se confirmó que eliminaba un gran número de fallos de seguridad, incluyendo el por entonces aún no descubierto Meltdown, extremo éste confirmado por los autores de Meltdown.
En julio de 2017, investigaciones publicadas por el sitio CyberWTF por parte del investigador de seguridad Anders Fogh describían el uso de un ataque coordinado a la caché para leer la información del espacio del núcleo observando los resultados de operaciones especulativas condicionados a datos obtenidos mediante privilegios no válidos.
La vulnerabilidad Meltdown fue descubierta de forma independiente por Jann Horn del Proyecto Cero de Google, Werner Haas y Thomas Prescher de Cyberus Technology, así como Daniel Gruss, Moritz Lipp, Stefan Mangard y Michael Schwarz de la Universidad Tecnológica de Graz. Los mismos equipos de investigación que descubrieron Meltdown también descubrieron una vulnerabilidad de seguridad relacionada con la CPU, que ahora se conoce como Spectre.
En octubre de 2017, la funcionalidad ASLR para la arquitectura amd64 se añadió a la rama NetBSD-current, convirtiendo a NetBSD en el primer sistema BSD formado totalmente por código abierto en soportar la aleatoriedad en la disposición del espacio de direcciones del núcleo (KASLR). Sin embargo, el sistema operativo Darwin, que es parcialmente de código abierto y forma la base, entre otros, de macOS e iOS, está basado en FreeBSD; KASLR se añadió a su núcleo XNU en 2012 tal como se indicó más arriba.
El 14 de noviembre de 2017, el investigador de seguridad Alex Ionescu mencionó públicamente cambios en la nueva versión de Windows 10 que causarían cierta degradación en el rendimiento, aunque sin explicar la necesidad de dichos cambios, refiriéndose simplemente a los cambios similares realizados en GNU/Linux.
Una vez que los fabricantes del hardware y el software afectados tuvieron conocimiento del problema el 28 de julio de 2017, las dos vulnerabilidades se hicieron públicas conjuntamente el 3 de enero de 2018, varios días antes de la fecha de anuncio decidida del 9 de enero de 2018, debido a que varios sitios de noticias comenzaron a informar sobre los cambios al núcleo Linux y los mensajes a su lista de correo. Como resultado de este adelanto en los acontecimientos, no se disponía todavía de parches para algunas plataformas, como Ubuntu, cuando se revelaron ambas vulnerabilidades.
La vulnerabilidad fue denominada Meltdown porque «básicamente lo que hace es derretir las barreras de seguridad que normalmente coloca el hardware».
Hardware afectado