ESPECIAL Meltdown y Spectre: todo lo que necesitas saber de estos problemas

Se supone que en torno al 20% de los recursos temporales y económicos destinados a la creación de un nuevo chip se destinan al diseño en sí, mientras que el resto, es decir, mucho tiempo y dinero, se destina a las simulaciones, pruebas y test realizados para comprobar que todo funciona adecuadamente. Pues bien, parece que algunos fabricantes no han hecho las cosas del todo bien con sus productos, y ese es el caso de Intel, como veremos no es la única afectada, pero es que ya tiene un gran palmares en cuanto a problemas con sus chips, desde el famoso problema del coma flotante, pasando por otros fallos en sus chipsets, hasta la vulnerabilidad detectada también en el Management Engine, y ahora esto…

Todas las redes sociales y medios se han inundado de noticias, algunas algo contradictorias sobre este caso que va a dar mucho que hablar y que os aconsejo hacer un buen bol de palomitas para ver el culebrón, puesto que esto solo acaba de empezar. Por eso, para que los usuarios, especialmente los de Linux, no se pierdan con tanta información y sepan cómo actuar y a qué se atienen, además de saber si están o no afectados, vamos a publicar este artículo en LxA.

¿Qué es Spectre y Meltdown?

ESPECIAL Meltdown y Spectre: todo lo que necesitas saber de estos problemas

Probablemente el problema de Rowhammer que ya vimos sea algo insignificante comparado con el calado que está teniendo este otro problema. Seguramente ya has escuchado los famosos nombres que están sembrando el pánico, y esos son Meltdown y Spectre. Estos ataques que pueden comprometer seriamente nuestra seguridad aprovechan algunas características como la ejecución fuera de orden y la ejecución especulativa que se implementa en todos los procesadores contemporáneos para mejorar el rendimiento. Vamos por partes a explicar qué es cada uno:

  • Meltdown: se llama así porque básicamente derrite los límites de seguridad entre aplicaciones que son impuestos por el hardware, aunque en la base de información de MITRE se le conoce como CVE-2017-5754. Es el más grave de los problemas que se han detectado y afecta específicamente a los procesadores de Intel lanzados en la última década. Por culpa de esta vulnerabilidad se podría acceder a un proceso sin privilegios a una zona reservada en la memoria para el kernel, lo cual es un serio problema de seguridad. Por ejemplo se podría volcar zonas de la memoria RAM.
  • Spectre: su nombre radica en lo complicado que resulta solventarlo, por tanto como un espectro nos seguirá durante bastante tiempo. Aparece en un par de variantes (CVE-2017-5753 y CVE-2017-5717), siendo potencialmente graves, ya que puede permitir que un proceso “engañe” al kernel para que mueva información de zonas de memoria que controla dicho proceso, es decir, rompe la barrera entre aplicaciones. En este caso sí que afecta a más microprocesadores…

Esto es todo en cuanto a Meltdown y Spectre explicado de un modo simple y sin usar lenguaje muy técnico para que todos lo entiendan. En definitiva lo que hemos visto es que Meltdown y Spectre pueden acceder a datos guardados en memoria de los programas en ejecución y esto con exploits y código maliciosos es una amenaza. Ahora bien, y ésto en qué me puede afectar a mi. Pues la respuesta es sencilla también, ya que pueden permitir modificar datos, filtrar contraseñas y datos confidenciales, fotos, emails, datos de formularios, etc. Por tanto es un gran problema de seguridad, probablemente uno de los más grandes de los últimos tiempos.

Linus Torvalds se ha pronunciado

ESPECIAL Meltdown y Spectre: todo lo que necesitas saber de estos problemas

Linus Torvalds, el creador de NVIDIA Fuck you! ahora parece que le ha dado un toque de atención a Intel por el error tan enorme que han cometido. Y en los hilos de discusión sobre el problema que se han mantenido por verse afectado el kernel Linux no se han hecho esperar las primeras palabras del creador:

¿Por qué todo esto se tiene sin opciones de configuración? Un ingeniero de la CPU competente arreglaría esto asegurándose de que la especulación no pase a través de dominios de protección. […] Creo que INtel necesita echar un vistazo a sus CPUs, y realmente admitir que tienen problemas en lugar de escribir una palabrería de relaciones públicas diciendo que todo funciona como lo diseñaron. (En referencia a las declaraciones de Intel). …y eso realmente significa que todos esos parches para mitigar el problema deberían ser escritos con un “no todos los CPUs son basura” en mente. (En referencia a que el parche se aplica y afecta a todos los microprocesadores x86-64, incluidos los AMD a pesar de no estar afectados con la consiguiente pérdida de rendimiento) ¿O está Intel básicamente diciendo ‘estamos comprometidos a venderte mierda por siempre y para siempre, sin arreglar nada nunca’? […] Porque si es el caso, tal vez deberíamos comenzar a mirar más hacia el lado de la gente de ARM64 (En referencia a si Intel va o no a resolver el problema o seguirá vendiendo productos problemáticos). Por favor, hablen con administración. Porque yo realmente veo exactamente dos posibilidades:

  1. Intel no pretende arreglar nada nunca.
  2. O estas soluciones tienen una forma de desactivarse.

Las declaraciones hacen referencia a que el código del parche aplicado perjudican seriamente al rendimiento de la CPU y afectan a todos los procesadores de esta familia, estén o no afectados por la vulnerabilidad. Por eso AMD ha indicado que trabajan para evitar que sus microprocesadores también tengan la perdida de rendimiento del parche ya que no están afectados.

¿A qué procesadores afecta?

ESPECIAL Meltdown y Spectre: todo lo que necesitas saber de estos problemas

Esta es la cuestión del millón, ya que no solo afecta a Linux ni mucho menos, es un problema del chip y por tanto afecta tanto a macOS, como a Windows, Android e incluso iOS, etc. Por tanto no es algo puntual, y ahora vamos a ver qué chips están afectados por este problema de diseño:

Microprocesadores afectados por Meltdown:

Prácticamente todos los microprocesadores Intel fabricados desde 1995 hasta la actualidad están afectados por este grave problema, ya que aprovecha la ejecución fuera de orden para su aprovechamiento. Eso implica portátiles, sobremesas, servidores y supercomputadoras que usen estos procesadores, e incluso algunos dispositivos móviles con chips Atom, etc. Las excepciones son los Intel Atom que usan una ejecución en orden (los que salieron antes de 2013, ya que los Atom más modernos sí que usan OoOE) y también los Intel Itanium que nadie tendrá uno en casa puesto que están destinados a grandes máquinas.

Microprocesadores ¿Afectado?
Intel Celeron SI
Intel Pentium SI
Intel Core i3 SI
Intel Core i5 SI
Intel Core i7 SI
Intel Core i9 SI
Intel Celeron SI
Intel Xeon SI
Intel Atom *Solo los lanzados después de 2013
Intel Itanium NO

*ULTIMA HORA: ARM Cortex-A75 también está afectado por Meltdown. Por el momento solo este modelo parece estar afectado, pero ya sabes que ARM licencia cores IP para otros diseñadores de SoCs y si éstos tienen un Cortex-A75 también estarán afectados. Pero sí que parece que la afectación es mínima en este caso…

Los microprocesadores AMD y los basados en ARM (Qualcomm, Samsung, Apple, Mediatek, etc.) no están afectados por este problema. Si tienes uno de estos chips puedes respirar tranquilo… Eso ha provocado que se vendan acciones de Intel y éstas caigan en la bolsa de forma estrepitosa al mismo tiempo que las de AMD se han incrementado. El motivo es que AMD no permite referencias a memoria de este tipo, incluidas las referencias especulativas, por tanto son invulnerables a Meltdown.

Microprocesadores afectados por Spectre:

En este caso se amplía el número de dispositivos y chips afectados, ya que también vemos cómo las tablets, smartphones, equipos de sobremesa, portátiles, servidores, supercomputadoras, etc. están afectados. En este caso los chips de Intel están afectados, todos aquellos ARM Cortex-A, y también podrían verse afectados los de AMD.

Microprocesadores ¿Afectados?
Intel SI
ARM *Solo los Cortex-A
AMD **Véase siguiente tabla

*En el caso de ARM, afecta a gran cantidad de SoCs que implementan diseños modificados o núcleos IP ARM en su interior como los de Qualcomm Snapdragon, Samsung Exynox, Apple A-Series, Mediatek, NVIDIA (no me refiero a las GPUs, sino a los SoCs basados en ARM), etc.

**Ahora vamos al caso de AMD, en la web oficial del diseñador de CPUs podemos ver una tabla que nos lleva al optimismo y nos deja algo más tranquilos:

Variante Título en Google Project Zero Detalles
1 Bounds Check Bypass Solucionable con actualizaciones o parches del SO sin apenas impacto de rendimiento.
2 Branch Target Injection Las diferencias en las microarquitecturas AMD hacen que el riesgo de explotación sea casi cero.
3 Rogue Data Cache Load Ningún riesgo para los procesadores AMD debido a sus diferencias en la microarquitecturas.

¿Cuál es la solución?

ESPECIAL Meltdown y Spectre: todo lo que necesitas saber de estos problemas

Aplicar parches o actualizar nuestro sistema, sea cual sea, y con los parches tendremos una posible pérdida de rendimiento que aclararemos cuál es en el último punto, pero al menos a nivel de seguridad estaremos algo más protegidos. Decir que ya existen parches contra Meltdown para Linux, y otros sistemas operativos. Lo peor es en cuanto a los dispositivos Android, que no todos gozan de actualizaciones por OTA…

Podéis ver más información al respecto en estos enlaces:

¿Cuál es la pérdida de rendimiento?

ESPECIAL Meltdown y Spectre: todo lo que necesitas saber de estos problemas

Nos encontramos con dos posibles soluciones:

  1. Por software: implica implementar parches para los sistemas operativos macOS, Linux, Windows, iOS y Android, pero estos desgraciadamente no vienen solo a resolver el problema de seguridad sino que van a hacer que nuestro sistema sea más lento debido al modo en el que actúan afectando a esa ejecución fuera de orden, la ejecución especulativa o borrando el TLB de nuestra CPU con pérdidas bastante notables de rendimiento. Algunos hablaban de hasta un 50% menos de rendimiento en nuestra CPU, otras predicciones menos negativas hablan de entre 5 y 30% de rendimiento perdido según el tipo de software que ejecutemos. Algunos están intentando calmar la alarma y alegan que algunos videojuegos sobre los que se han realizado pruebas tan solo han dado una pérdida del 2% del rendimiento en cuanto a FPS (solo en el caso de Linux, en Windows no han sido analizados), ya que en los videojuegos raramente el juego pide saltar al espacio del kernel, pero qué ocurre con otros programas y con software cuyo código tengan muchas instrucciones dependientes de condiciones… ¿? Aquí la pérdida de rendimiento sí que puede ser considerable. Lo que sí es cierto es que algunos como Intel y otras webs han intentado calmar a los usuarios y decir que las pérdidas de rendimiento no serán apreciables para la mayoría de usuarios domésticos y que se trata de un problema que afectará más a datacenters, servidores, y supercomputadoras… ¿A qué previsiones creemos? Lo cierto es que habrá que mantener la calma y esperar a ver qué ocurre.
  2. Por hardware: implica una revisión de los chips actuales y un rediseño de las actuales microarquitecturas para que esto no ocurra, lo cual lleva mucho tiempo, es muy costoso, y no podemos esperar soluciones pronto. En cuanto a que Intel se decida a sustituir los chips de todos sus clientes afectados yo creo que la respuesta más clara es: jajaja, espera sentado. Eso supondría pérdidas multimillonarias para la compañía y no creo que suceda.

Las pérdidas de rendimiento no se notarán en todos los usos y todos los modelos de CPU de igual modo, evidentemente, así que habrá modelos que se vean más afectados que otros. Y sí, es una gran putada pagar por un chip de última generación y ver que por uno de estos parches no puedes explotar su rendimiento al 100%, pero es lo que hay cuando algunos no hacen bien su trabajo.

Ya se han visto afectados grandes centros de datos como los de Amazon Web Service, Microsoft Azure y también Google Cloud por este problema al usar microprocesadores Intel en sus servidores, las pérdidas de rendimiento se estiman en torno al 20% en estos casos donde se manejan bases de datos SQL.

Como digo el culebrón solo acaba de empezar, y tengo la sensación de que se escribirá mucho de esta noticia:

ESPECIAL Meltdown y Spectre: todo lo que necesitas saber de estos problemas

No olvides dejar tus comentarios… Si tienes comentarios que agregar, dudas, o lo que sea.

El artículo ESPECIAL Meltdown y Spectre: todo lo que necesitas saber de estos problemas ha sido originalmente publicado en Linux Adictos.