Meltdown

From FdIwiki ELP
Jump to: navigation, search

Para entender qué es Meltdown, primero debemos saber lo que es el aislamiento de memoria. Pues bien, se trata de una característica de seguridad de los Sistemas Operativos, que impide que un programa informático acceda a la memoria de otro. De esta manera, las aplicaciones no pueden leer ni escribir en la memoria del Kernel (la parte central del Sistema operativo que comunica de forma segura el hardware con el software). Meltdown es una vulnerabilidad que permite pasar por alto el aislamiento de memoria y acceder a toda la memoria del Kernel, y por ende, a la memoria de las aplicaciones. De esta manera, un programa que se aproveche de Meltdown puede obtener acceso a los datos de otros programas, como gestores de contraseña, navegadores o gestores de correo, obteniendo así lo datos confidenciales que se almacenan en estos.


¿Porque ocurrio esto?

Erik Bosman, un investigador del grupo de seguridad VUSEC de la Universidad de Amsterdam, lograba hace reproducir un ataquea provechando la vulnerabilidad de los procesadores de Intel. El problema tiene como raíz la llamada "ejecución especulativa ". Cuando un procesador Intel ejecuta código y llega un punto en un algoritmo en el que las instrucciones se bifurcan en dos direcciones distintas dependiendo de los datos de entrada, esas instrucciones ahorran tiempo "especulando" con el camino por el que se seguirá ejecutando el proceso. Básicamente lo que hacen es tratar de adivinar lo que va a pasar, por dónde va a seguir ejecutándose el programa, y adelantarse para ganar terreno y ventaja. Si el procesador se da cuenta de que esa apuesta especulativa era errónea, retrocede en el hilo de ejecución y tira a la basura ese trabajo.

El problema es que los procesadores Intel no separan de forma completa los procesos con privilegios bajos y de baja confianza de aquellos que pueden acceder a la memoria restringida del kernel del sistema operativo. O lo que es lo mismo: un hacker puede engañar al procesador y hacer que ese proceso "normal" eche un vistazo a la memoria del núcleo gracias a la ejecución especulativa.

Daniel Gruss, uno de los investigadores que descubrió estos ataques, explicaba cómo "básicamente lo que ocurre es que el procesador va demasiado lejos, ejecutando instrucciones que no debería". El problema es que si al final esa predicción especulativa no era válida, el procesador vuelve atrás y se deshace de esos datos con los que especulaba, pero no lo hace de forma efectiva.

Antes de hacerlo los almacena en su caché, una memoria especialmente rápida que da acceso a datos frecuentes. Un hacker podría ser capaz de diseñar peticiones al procesador para lograr aprovechar esos fallos especulativos y componer un puzzle muy peligroso: acceder a esa memoria privilegiada y a datos como contraseñas que quedaron guardadas en esa caché unos instantes antes de ser borrados. Instantes suficientes para que un código malicioso los recupere.

Como explican en Wired, algunos investigadores de seguridad creyeron que este problema de seguridad en las CPUs de Intel permitía a los hackers superar la seguridad impuesta por el KASLR (Kernel Address Space Layout Randomization) del que hablábamos ayer. Esa aleatoriedad con la que se almacena el código del núcleo hacía muy difícil poder acceder a dicha memoria, pero esta vulnerabilidad hacía que ese mecanismo de seguridad fallase. Lo que ocurre ahora es que con el descubrimiento de Bosman el error se vuelve más peligroso: no solo es posible localizar las zonas de memoria con el código del kernel: también se puede echar un vistazo a esas zonas y robar los datos que contienen.


¿A quién y qué afecta?

Principalmente los equipos con procesador Intel. Los investigadores que descubrieron esta amenaza elaboraron diversas pruebas sobre equipos con procesador Intel de 2011 en adelante. Todos ellos cayeron en la trampa. No obstante, los investigadores creen que el abanico de equipos afectados es mucho mayor: cualquier microprocesador de Intel desde 1995 podría estar afectado por esta vulnerabilidad. Solo dos modelos muy concretos —y poco comunes— se saltan esta norma.

Los equipos con procesador AMD están siendo objeto de controversia. Los investigadores ni aseguran ni desmienten que sus procesadores estén afectados, pero la compañía insiste rotundamente en que sus microprocesadores están exentos de dicha vulnerabilidad. Esto es lo que AMD dice respecto a la variante 3 (conocida como Meltdown):

     Cero vulnerabilidades en los chips de AMD debido a las diferencias en arquitectura.

Los equipos con procesador ARM (como los teléfonos móviles y muchas tabletas) son un caso similar: los investigadores no han podido demostrar que sean vulnerables, aunque la compañía sí reconoce que algunos de sus diseños (como el Cortex-A75) son vulnerables ante Meltdown.

¿Cómo solucionarlo?

Microsoft, Google y Linux ya han lanzado –o planean lanzar esta semana— actualizaciones de softwarepara sus productos. Apple no se ha pronunciado al respecto, aunque algunos expertos aseguran que la versión 10.13.2 y 10.13.3 ya integran medidas de protección ante Meltdown. La solución es tan simple como mantener tu equipo con la última versión del sistema operativo y las correspondientes aplicaciones.


¿Cuáles son las consecuencias?

Aun corrigiendo el problema, parece que atajarlo podría tener consecuencias notables para los usuarios. Proteger nuestros sistemas de esa vulnerabilidad hará que el impacto en el rendimiento de nuestros equipos baje de forma sensible, al menos en las primeras pruebas realizadas tras aplicar los primeros parches en Linux.

Según revelan los primeros estudios, esa bajada de rendimiento podría estar entre el 5 y el 30%, una cifra realmente preocupante que no obstante tiene que ser confirmada. Aún así al menos en el caso de Linux el impacto en el rendimiento se ha comprobado que podría ser notable. Como explicaban en el blog Python Sweetness, el mecanismo utilizado por Intel tradicionalmente parecía proporcionar un buen equilibrio entre seguridad y rendimiento. Al tener que prescindir de ese mecanismo, perdemos en prestaciones (curioso que lo evaluasen en una CPU de AMD que teóricamente no está afectada por el problema): En pruebas adicionales realizadas en Phoronix los responsables de este medio comprobaron cómo efectivamente la bajada de rendimiento es significativa en diversos ámbitos. Aclararon cómo los procesadores de Intel con PCID (Process-Context IDentifiers) probablemente "sufran menos" con estos parches y también como aun cuando en varias pruebas (pero no todas) el rendimiento bajaba, parece que en juegos ese rendimiento no se ve especialmente afectado.


Futuro

En una reciente llamada con inversionistas, Brian Krzanich, director general de Intel, aseguró que están trabajando para hacer cambios a sus productos que solucionen directamente las amenazas de Spectre y Meltdown. Por último, el directivo aseguró que estos procesadores lleguen antes de que termine el año. Es por esto que muchos creen que tendrán la microarquitectura Cannon Lake o Ice Lake.

Enlaces externos