Comprueba si estás afectado por Meltdown y Spectre y defiéndete!!!

Meltdown y Spectre son las tendencias de los últimos días, prácticamente no se habla de otra cosa y es que no es para menos, ya que son probablemente las vulnerabilidades más importantes de la historia. Afectan gravemente a la seguridad de nuestros sistemas y si el sistema es de una empresa o tienes datos relevantes el problema es mucho más grave. No obstante siempre se piensa que solo están afectados los equipos de sobremesa, portátiles, servidores y supercomputadoras, pero los daños van más allá y afectan a muchos más dispositivos, como los basados en cores ARM y ahí se incluyen desde tablets, smartphones, algunos dispositivos IoT, industriales, domótica, hasta coches conectados.

Como bien sabes tampoco es algo único de Linux ni mucho menos, sino que afecta a diversos sistemas operativos, también Microsoft Windows y macOS están afectados por ello, sin olvidar a iOS y Android. Por tanto pocos se escapan de estas amenazas, aunque bien es cierto que ciertas arquitecturas de CPUs se libran y que si tenemos un chip de AMD probablemente las posibilidades de explotación de estas vulnerabilidades sean menores, pero eso no quiere decir que no exista riesgo alguno.

¿Cuál es la situación actual para Linux?

Linux básicamente mueve al mundo, a pesar de que muchos creen que es un sistema que apenas se utiliza, es todo lo contrario. Posiblemente ha fracasado en el aspecto de que fue creado para el escritorio y ese es precisamente el único sector donde es minioritario frente al todopoderoso Windows y frente a una buena porción que tiene Mac. Si nos vamos a dispositivos empotrados o embebidos, servidores, supercomputadoras, etc., Linux es dominante y es precisamente los servidores de Internet en los que se vuelve vital y sin él prácticamente se puede decir que Internet se caería…

Es por eso que en Linux se reaccionó antes que en ningún otro sistema para solventar los problemas que podrían dejar Meltdown y Spectre. Ya Linus Torvalds se pronunció al respecto con unas duras palabras hacia Intel y si hechas un vistazo a las LKML veréis que es un tema que preocupa y está a la orden del día. Y su mano derecha y número dos en el desarrollo del kernel Linux, Greg Kroah-Hartman también lo ha hecho. Para más información podéis consultar su blog personal donde encontraréis bastante información.

  • Meltdown: Básicamente Greg ha comentado que respecto a Meltdown se puede poner fin en los x86 optando por incluir CONFIG_PAGE_TABLE_ISOLATION, un aislamiento de tabla de página (PTI) que los equipos con procesadores de AMD, no afectados por ello, deberían evitar para no generar problemas con el rendimiento. Incluso habréis conocido que algunos equipos con chip AMD han dejado de arrancar porque el parche para Windows ha generado serios problemas. PTI será incluido en Linux 4.15 por defecto, pero por su importancia en cuanto a seguridad será incluido en versiones anteriores como las LTS 4.14, 4.9 y 4.4… y probablemente con el tiempo se vaya incorporando el parche en otras muchas versiones, pero paciencia porque supone una sobrecarga de trabajo para los desarrolladores. Y además se están topando con problemas derivados del parche como los de vDSO en algunas configuraciones de máquinas virtuales. En lo que respecta a ARM64, levemente afectado por Meltdown que es un problema principalemnte de Intel, los chips de muchos dispositivos móviles y otros aparatos también necesitan de un parche, aunque parece que no se fusionará con el árbol del kernel principal a corto plazo (tal vez en el Linux 4.16, aunque Greg ha comentado que tal vez nunca lleguen debido a la cantidad de requisitos previos que necesitan los parches para aprobarse) y por tanto se aconseja hacer uso de kernels específicos, es decir, Android Common Kernel en sus ramas 3.18, 4.4 y 4.9.
  • Spectre: el otro problema afecta a más arquitecturas, y es más complicado de tratar. Parece que no tendremos una solución buena a corto plazo y tendremos que coexistir con este problema durante un tiempo. En sus dos variantes necesita que el sistema sea parcheado y ya algunas comunidades de desarrollo de ciertas distros han comenzado a lanzar parches para mitigarlo, pero las soluciones aportadas son diversas y por el momento no se integrarán como parte de la rama principal del kernel hasta que se vea la mejor de las soluciones antes de que los diseñadores de CPUs aporten la mejor de las soluciones (rediseñar sus chips). Las soluciones se han estudiado y están encontrando algunos problemas por el camino, como el mayor desconocimiento sobre Spectre. Los desarrolladores necesitan un tiempo para saber cómo acatar el problema, y el propio Greg ha comentado que “esta va a ser un área de investigación en los próximos años para encontrar formas de mitigar posibles problemas que implican al hardware, que además intentarán predecirlas en el futuro antes de que sucedan“.
  • Chromebooks: si tienes un portátil de Google te alegrará saber que puedes ver el estado del trabajo que están haciendo para resolver Meltdown en esta lista.

¿Cómo comprobar fácilmente si estoy afectado?

Para no andar consultando tablas o listas de microprocesadores, aquí te proponemos un script que han creado para poder comprobar fácilmente si estamos afectados o no, simplemente tenemos que descargarlo y ejecutarlo y nos dirá si estamos o no en peligro por Spectre y Meltdown. Las instrucciones o pasos a seguir son sencillos:


git clone https://github.com/speed47/spectre-meltdown-checker.git

cd spectre-meltdown-checker/

sudo sh spectre-meltdown-checker.sh

Tras ejecutar esto nos aparecerá un recuadro en rojo para indicarnos si somos vulnerables a Meltdown o a Spectre o un indicador en verde en el caso de que estemos a salvo de las variantes de estas vulnerabilidades. En mi caso, por ejemplo, al tener una APU AMD (sin ni siquiera haber actualizado el sistema), el resultado ha sido:

En caso de que el resultado haya sido en rojo VULNERABLE leer siguiente aparatado…

¿Qué hacer si estoy afectado?

La mejor solución, como algunos dicen, pasa por cambiar a una CPU o microprocesador que no esté afectado por el problema. Pero esto no es factible para muchos de los usuarios por falta de presupuesto u otros motivos. Además, los fabricantes como Intel siguen vendiendo microprocesadores afectados y que han sido lanzados hace poco, como Coffee Lake, puesto que las microarquitecturas suelen tener largos tiempos de desarrollo y ahora se trabaja en el diseño de futuras microarquitecturas que aparecerán en el mercado en próximos años, pero todos los chips que se están comercializando ahora y que probablemente se comercialicen en los próximos meses seguirán estando afectados a nivel de hardware.

Por eso, en el caso de padecer este mal y necesitar “solucionarlo” no nos queda otra que parchear nuestro sistema operativo (no olvides los navegadores, etc.), sea cual sea, y también actualizar todo el software del que disponemos. Si tener bien configurado el sistema de actualizaciones era ya muy importante, ahora más que nunca debes mantenerte al día de las actualizaciones, ya que con ellas vendrán los parches que solventan desde la parte del software el problema de Meltdown y Spectre, no sin una pérdida de rendimiento como ya dijimos…

La solución no es complicada para el usuario, no tenemos que hacer nada “especial”, simplemente asegurarnos de que el desarrollador de nuestra distribución ha lanzado la actualización para Meltdown y Spectre y que la tenemos instalada. Más información al respecto.

Si quieres, puedes comprobar si se instaló el parche (en caso de necesitarlo) para Meltdown en tu distro con este comando:

 dmesg | grep "Kernel/User page tables isolation: enabled" && echo "Tienes el parche! :)" || echo "Ooops...no tienes la actualización instalada en tu kernel! :(" 

*Cuidado con el kernel 4.4.0-108-generic de Ubuntu, algunos usuarios han reportado problemas en sus equipos al arrancar tras la actualización y han tenido que volver a una versión previa. Canonical parece que lo ha solventado en la 4.4.0-109-generic…

Pérdida de rendimiento: se hablaba del 30% en algunos casos, pero dependerá de la microarquitectura. En arquitecturas más antiguas la pérdida de rendimiento puede ser muy severa debido a que las ganancias de rendimiento que tienen estas arquitecturas se basan principalmente en las mejoras aportadas por la ejecución OoOE y el TLB… En arquitecturas más modernas se habla de entre el 2% y el 6% dependiendo del tipo de software en ejecución para usuarios domésticos, posiblemente en centros de datos las pérdidas sean bastante superiores (sobre 20%). Según ha reconocido la propia Intel, tras quitarle importancia por lo que se les venía encima, el rendimiento en procesadores anteriores a Haswell (2015) la caída de rendimiento será mucho peor que ese 6% incluso para usuarios normales…

No olvides dejar tus comentarios con tus dudas o sugerencias…


Categorías

GNU / Linux, Kernel

Soy un apasionado de la tecnología, F1 e informática... y me encanta compartir, pero sobre todo aprender cada día más. En definitiva me gusta todo lo que tenga que ver con la ciencia.

6 comentarios

  1.   Shalem Dior Juz dijo

    Muy buen post, muchas gracias y felicitaciones. También con una APU AMD, corrí el script y todo bien. Unas de cal, otras arena: y pensar que cuando me hice a éste equipo fue por una excelente promoción aparecida años atrás en un almacén de cadena y al pasar el tiempo maldecía mi destino dado el infierno vivido por los drivers privativos AMD para GNU/Linux (ya vencido opté por entregarme a los Drivers libres y ando contento, mejor funcionamiento que Windows 10). Tengo amigos afectados seriamente por el problema y sus aparatos realmente retrocedieron a la época de Pentium 4, teniendo procesadores i3 e i5.

  2.   luppe dijo

    Spectre and Meltdown mitigation detection tool v0.28

    Checking for vulnerabilities against running kernel Linux 4.14.12-1-MANJARO #1 SMP PREEMPT Sat Jan 6 21:03:39 UTC 2018 x86_64
    CPU is Intel(R) Core(TM) i5-2435M CPU @ 2.40GHz

    CVE-2017-5753 [bounds check bypass] aka ‘Spectre Variant 1’
    * Checking count of LFENCE opcodes in kernel: NO
    > STATUS: VULNERABLE (only 21 opcodes found, should be >= 70, heuristic to be improved when official patches become available)

    CVE-2017-5715 [branch target injection] aka ‘Spectre Variant 2’
    * Mitigation 1
    * Hardware (CPU microcode) support for mitigation: NO
    * Kernel support for IBRS: NO
    * IBRS enabled for Kernel space: NO
    * IBRS enabled for User space: NO
    * Mitigation 2
    * Kernel compiled with retpoline option: NO
    * Kernel compiled with a retpoline-aware compiler: NO
    > STATUS: VULNERABLE (IBRS hardware + kernel support OR kernel with retpoline are needed to mitigate the vulnerability)

    CVE-2017-5754 [rogue data cache load] aka ‘Meltdown’ aka ‘Variant 3’
    * Kernel supports Page Table Isolation (PTI): YES
    * PTI enabled and active: YES
    > STATUS: NOT VULNERABLE (PTI mitigates the vulnerability)

    A false sense of security is worse than no security at all, see –disclaimer

    en esta parte me parco que si, y en la imagen tu tinees que no.
    * PTI enabled and active: YES
    que debo de hacer

    1.    Isaac dijo

      Hola,

      No uso Manjaro, pero supongo que estarán trabajando en alguna actualización. Así que mantén tu sistema lo más actualizado posible. Las últimas versiones del kernel también implementan soluciones si quieres instalarlas…

      Un saludo y gracias por leernos!

  3.   Daniel dijo

    En Ubuntu solucionaron el problema de Meltdown con la actualización del Kernel, el 4.13.0.
    Uso Peppermint 8 y al hacer el test de vulnerabilidad de Meltdown ya no me arroja vulnerable.
    Saludos.

  4.   Nasher_87(ARG) dijo

    Spectre and Meltdown mitigation detection tool v0.28

    Checking for vulnerabilities against running kernel Linux 4.14.13-041413-generic #201801101001 SMP Wed Jan 10 10:02:53 UTC 2018 x86_64
    CPU is AMD A6-7400K Radeon R5, 6 Compute Cores 2C+4G

    CVE-2017-5753 [bounds check bypass] aka ‘Spectre Variant 1’
    * Checking count of LFENCE opcodes in kernel: NO
    > STATUS: VULNERABLE (only 29 opcodes found, should be >= 70, heuristic to be improved when official patches become available)

    CVE-2017-5715 [branch target injection] aka ‘Spectre Variant 2’
    * Mitigation 1
    * Hardware (CPU microcode) support for mitigation: NO
    * Kernel support for IBRS: NO
    * IBRS enabled for Kernel space: NO
    * IBRS enabled for User space: NO
    * Mitigation 2
    * Kernel compiled with retpoline option: NO
    * Kernel compiled with a retpoline-aware compiler: NO
    > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)

    CVE-2017-5754 [rogue data cache load] aka ‘Meltdown’ aka ‘Variant 3’
    * Kernel supports Page Table Isolation (PTI): YES
    * PTI enabled and active: NO
    > STATUS: NOT VULNERABLE (your CPU vendor reported your CPU model as not vulnerable)

    A false sense of security is worse than no security at all, see –disclaimer

    ¿No era que se solucionaba con tener el ultimo kernel?

    Saludos

  5.   Lolo dijo

    ¿Hay alguna forma de medir cómo nos afecta el rendimiento antes y despues de aplicar el parche???

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.