Como protegerse de Spectre y Meltdown en Windows y Linux

Todo lo que necesitas saber sobre Meltdown / Spectre y como protegerte

Como ya han hecho público los medios, esta semana hemos vivido un absoluto revuelo a causa de dos vulnerabilidades que afectan masivamente a procesadores de todas las marcas (aunque Intel se lleva la peor parte) y a “grosso modo” a cualquier dispositivo con procesador aparecido en los últimos 20 años.

En mi último artículo te explico como verificar si tu equipo está actualizado frente a estos fallos mediante el uso de Powershell

Sin embargo se trata de dos vulnerabilidades bien diferenciadas y con alcances y gravedad diferentes, así que vamos a hablar brevemente sobre ambos

Meltdown vs Spectre, Intel, ARM y AMD

1. Vulnerabilidad Meltdown

Está relacionada con el contexto de seguridad de la CPU que se encarga de las ejecuciones “fuera de límites”, neutralizando de este modo el modelo de seguridad basado en aislamiento de espacio de memoria  que los procesos deben respetar para funcionar de forma segura e independiente. También afecta a la paravirtualización que utilizan plataformas de contenedores, por ejemplo Docker.

Los procesadores de Intel (como tantos otros) utilizan lo que se denomina “ejecución especulativa” y “predicción indirecta de rama”, permitiendo una filtración potencial de información a un atacante con acceso local mediante el análisis de un canal lateral.

Los expertos ya han comenzado a dar muestras de lo sencillo que resulta explotar este fallo de seguridad:

En resumidas cuentas, la vulnerabilidad de nombre Meltdown permitiría a cualquier aplicación leer cualquier espacio de memoria previamente mapeado, incluyendo a nivel del “kernel”. Más información sobre Meltdown.

2. Vulnerabilidad Spectre

Por su parte, Spectre es un tipo de vulnerabilidad algo distinta y que afecta a rama la predicción o especulación y permitiría a las aplicaciones leer igualmente la memoria del kernel. Es decir, que en esencia producen los mismos resultados pero llegan mediante caminos diferentes.

Es importante reseñar que estas dos vulnerabilidades afectan a la capa de hardware, por lo que son comparativamente mucho más difíciles de solucionar dado que parchear un software es más sencillo como todos sabemos.

Los dispositivos futuros dejarán atrás estos problemas pero para los cientos de millones de equipos basados en procesadores comunes el problema, normalmente, será minimizado mediante la eliminación/limitación de acceso a ciertas instrucciones de CPU. Esto sin embargo no ofrece una garantía de seguridad del 100%.

¿Quién es vulnerable a Meltdown y Spectre?

  • Spectre incluye un bypass de chequeo de límites con CVE-2017-5753 y una serie de inyecciones de “branch target” discutidas en CVE-2017-5715. Afecta a Intel, ARM y un pequeño porcentaje de procesadores AMD.
  • Meltdown afecta masivamente a Intel y representa una carga maliciosa de caché de datos recogida en CVE-2017-5754

Estas vulnerabilidades permiten al atacante leer la memoria “protegida” de sistema y que en condiciones normales no debería permitir acceso a un programa externo. Meltdown actúa más rápido en este sentido que Spectre (unos 120 Kb/s). Ambas vulnerabilidades son explotables tras reinicios de sistema, aunque el “branch target injection” requiere un mínimo de 10 minutos para inicializarse en sistemas con 64 GB de memoria RAM (el tiempo aumenta en función de la cantidad de RAM instalada).

A continuación copio el detalle ofrecido por el instituto Carnegie Mellon sobre proveedores afectados,

Amazon Affected 05 Jan 2018
AMD Affected 03 Jan 2018
Android Open Source Project Affected 05 Jan 2018
Apple Affected 04 Jan 2018
Arm Affected 03 Jan 2018
CentOS Affected 05 Jan 2018
Cisco Affected 05 Jan 2018
Citrix Affected 05 Jan 2018
Debian GNU/Linux Affected 05 Jan 2018
Fedora Project Affected 05 Jan 2018
Fortinet, Inc. Affected 05 Jan 2018
FreeBSD Project Affected 05 Jan 2018
Google Affected 03 Jan 2018
IBM Corporation Affected 05 Jan 2018
Intel Affected 05 Jan 2018

Spectre

Volviendo a las plataformas afectadas, el bypass de “chequeo de límites” para los procesos de sistema puede ser explotado en los 3 principales fabricantes de procesadores del mundo: Intel, ARM y AMD. Existe una prueba de concepto desarrollada en Java para explotar la vulnerabilidad, demostrando que permite acceso al proceso del navegador local.

Eso en cuanto a procesos sin proteger. En cuanto a la lectura de la memoria del kernel tanto Intel como AMD están afectados, aunque de forma diferente:

  • La prueba es satisfactoria en procesadores de AMD con BPF JIT habilitado en el kernel de Linux (debe hacerse manualmente y no es la configuración por defecto) así que podemos decir que, en principio, los procesadores de la firma se libran bastante del problema.
  • En equipos basados en Intel no importa el estado de BPF JIT, simplemente son vulnerables.

Meltdown

Los procesadores de AMD no son vulnerables a este fallo de seguridad, como tampoco lo son los de ARM. Se ha modificado un parche previamente desarrollado para el kernel de Linux y, de esta forma, AMD ha quedado excluída del problema.

Todos los procesadores de Intel están afectados por Meltdown y Spectre a excepción de los de serie “Atom” previos a 2013 y de la serie Itanium.

Listado de CPUs Intel afectadas por Meltdown

  • Intel® Core™ i3 processor (45nm and 32nm)
  • Intel® Core™ i5 processor (45nm and 32nm)
  • Intel® Core™ i7 processor (45nm and 32nm)
  • Intel® Core™ M processor family (45nm and 32nm)
  • 2nd generation Intel® Core™ processors
  • 3rd generation Intel® Core™ processors
  • 4th generation Intel® Core™ processors
  • 5th generation Intel® Core™ processors
  • 6th generation Intel® Core™ processors
  • 7th generation Intel® Core™ processors
  • 8th generation Intel® Core™ processors
  • Intel® Core™ X-series Processor Family for Intel® X99 platforms
  • Intel® Core™ X-series Processor Family for Intel® X299 platforms
  • Intel® Xeon® processor 3400 series
  • Intel® Xeon® processor 3600 series
  • Intel® Xeon® processor 5500 series
  • Intel® Xeon® processor 5600 series
  • Intel® Xeon® processor 6500 series
  • Intel® Xeon® processor 7500 series
  • Intel® Xeon® Processor E3 Family
  • Intel® Xeon® Processor E3 v2 Family
  • Intel® Xeon® Processor E3 v3 Family
  • Intel® Xeon® Processor E3 v4 Family
  • Intel® Xeon® Processor E3 v5 Family
  • Intel® Xeon® Processor E3 v6 Family
  • Intel® Xeon® Processor E5 Family
  • Intel® Xeon® Processor E5 v2 Family
  • Intel® Xeon® Processor E5 v3 Family
  • Intel® Xeon® Processor E5 v4 Family
  • Intel® Xeon® Processor E7 Family
  • Intel® Xeon® Processor E7 v2 Family
  • Intel® Xeon® Processor E7 v3 Family
  • Intel® Xeon® Processor E7 v4 Family
  • Intel® Xeon® Processor Scalable Family
  • Intel® Xeon Phi™ Processor 3200, 5200, 7200 Series
  • Intel® Atom™ Processor C Series
  • Intel® Atom™ Processor E Series
  • Intel® Atom™ Processor A Series
  • Intel® Atom™ Processor x3 Series
  • Intel® Atom™ Processor Z Series
  • Intel® Celeron® Processor J Series
  • Intel® Celeron® Processor N Series
  • Intel® Pentium® Processor J Series
  • Intel® Pentium® Processor N Series

¿Consecuencias en el rendimiento?

Gran parte de la conmoción generada por estos fallos viene por la sospecha de que se produzca una eventual degradación de la capacidad de proceso de millones de procesadores y sistemas en la nube que todos usamos a diario. El hecho de tener que separar la capa de kernel de la de usuario (por simplificarlo un poco) implica que el sistema tenga que pasar más tiempo gestionando asignaciones de memoria y muchos han estimado una horquilla del 5% al 30% de pérdida de rendimiento.

Dependiendo de la carga de trabajo y el empleo del sistema podemos esperar más o menos consecuencias. Por ejemplo, se ha estimado una pérdida de rendimiento en máquinas virtuales (dedicadas a manejar procesos Apache, PostgreSQL y Redis) de un 10%, en las pruebas realizadas en Phoronix. En los test sintéticos los resultados han sido algo más abultados.

¿Cómo protegerse de Meltdown?

Sistemas Windows

Microsoft lanzó el viernes varios parches de seguridad fuera de ciclo para tapar las vulnerabilidades encontradas en procesadores de Intel, ARM y AMD. Para las versiones más recientes de Windows 10 (Build 16299.192) se ha liberado el parche KB4056892,

Parche para Meltdown

Mientras los siguientes han sido lanzados para las ediciones anteriores de Windows 10.

  • Windows 10 version 1703 (Creators Update): KB4056891
  • Windows 10 version 1607 (Anniversary Update): KB4056890
  • Windows 10 version 1511 (November Update): KB4056888
  • Windows 10 version 1507 (Initial Release): KB4056893

Parches para sistemas Windows anteriores a Windows 10

Estos y los anteriormente mencionados pueden además ser descargados desde Windows Update Catalog, así como los referentes a Internet Explorer 11.

Sistemas operativos Linux

Distribuciones de Linux

Aquí tenéis una lista detallada de todas las distribuciones Linux que deberían ser parcheadas ASAP:

  1. Red Hat Enterprise Linux 5 (including clones such as CentOS/Oracle/Scientific Linux 5)
  2. Red Hat Enterprise Linux 6 (including clones such as CentOS/Oracle/Scientific Linux 6)
  3. Red Hat Enterprise Linux 7 (including clones such as CentOS/Oracle/Scientific Linux 7)
  4. RHEV-M 4.0
  5. RHEV-M for Servers
  6. Red Hat Enterprise Linux OpenStack Platform 7.0 (Kilo) for RHEL 7
  7. Red Hat Enterprise Linux OpenStack Platform 6.0 (Juno) for RHEL 7
  8. Red Hat Enterprise MRG 2
  9. Red Hat OpenStack Platform v 8/9/10/11/12
  10. Debian Linux wheezy
  11. Debian Linux jessie
  12. Debian Linux stretch
  13. Deiban Linux buster, sid
  14. SUSE Linux Enterprise Server for Raspberry Pi 12 SP2
  15. SUSE OpenStack Cloud 6
  16. Openstack Cloud Magnum Orchestration 7
  17. SUSE Container as a Service Platform ALL
  18. SUSE Linux Enterprise High Availability 12 SP2/SP3
  19. SUSE Linux Enterprise Live Patching 12
  20. SUSE Linux Enterprise Module for Public Cloud 12
  21. SUSE Linux Enterprise Server 11 SP3-LTSS
  22. SUSE Linux Enterprise Server 11 SP4
  23. SUSE Linux Enterprise Software Development Kit 11/12 SP3/SP4
  24. SUSE Linux Enterprise for SAP 12 SP1
  25. SUSE Linux Enterprise 11
  26. SUSE Linux Enterprise 12
  27. OpenSuse Linux based upon SUSE 12/11
  28. Fedora Linux 26
  29. Fedora Linux 27
  30. Amazon Linux AMI (Bulletin ID: ALAS-2018-939)

Pasos a realizar

Primero realizaremos (preferiblemente) un backup del sistema por si algo sale mal.

Ahora comprobaremos la versión del kernel instalado con:

uname -r

O también podemos utilizar

cat /etc/*release

Ahora, dependiendo de la distribución y el gestor de paquetes que tengamos lanzaremos el comando apropiado para actualizar nuestro sistema:

CentOS/RHEL/Fedora/Oracle/Scientific Linux

sudo yum update

En Fedora usaremos lo siguiente:

sudo dnf --refresh update kernel

O bien:

sudo dnf update

Para verificar su correcto parcheo, deberemos recibir datos al lanzar el siguiente comando:

rpm -q --changelog kernel | egrep 'CVE-2017-5715|CVE-2017-5753|CVE-2017-5754'

En Ubuntu / Debian

Actualizaremos repositorios:

sudo apt-get update

Actualizaremos:

sudo apt-get upgrade

Pasos para Arch Linux

Usaremos el gestor de paquetes pacman:

pacman -Syu

reboot

En todos los casos será necesario reiniciar el sistema para que los cambios tengan efecto.

Verificar protección frente a Meltdown y Spectre en SUSE Linux / Enterprise Server

Los expertos de SUSE han estado publicando nuevos parches para el kernel de sus distribuciones basadas en Linux durante los últimos días. Hasta la fecha una buena parte de sus productos han sido protegidos, aunque no todos, así que estad atentos a nuevas actualizaciones.

La empresa mantiene un post constantemente actualizado donde se explican los productos afectados, versiones de kernel actualizadas y métodos para verificar la protección de los procesadores.

Una vez actualizado el kernel de nuestro sistema, podemos comprobar el directorio /proc/cpuinfo en busca del valor “kaiser”, así como “pti” o “spec_ctrl”. En función de la salida obtenida podemos considerar:

kaiser‘ o ‘pti‘ aparecen, significa que la versión 3 de protección (Meltdown) está presente.
spec_ctrl‘ aparece, significa que la versión 1/2 de protección (Spectre) está presente.

NOTA: Kaiser aparece en versiones Suse Linux Enterprise 12, mientras que la versión SLE 15 usará la bandera pti.

Actualizado a 8/01/2017

¿Cómo saber si estoy afectado por Meltdown o Spectre rápidamente?

  • Visita la web https://www.amiaffectedbyspectre.com/ y tendrás una respuesta bien clara y rápida. Eso sí, solo detecta si el modelo de CPU es susceptible de ser vulnerado (si ya has aplicado parches puedes obviar un resultado positivo). Cortesía de un desarrollador español.

amiaffectedbyspectre.com

Lista de CPUs ARM afectadas por la vulnerabilidad

En el siguiente advisory podéis encontrar la lista completa de equipos ARM vulnerables (imagen inferior) además de los pasos a seguir para instalar el nuevo microcódigo / firmware que parchea el fallo. No es posible en todos los sistemas operativos, por ejemplo los usuarios de Android tendrán que consultar a Google acerca de su kernel.

Procesadores ARM afectados por Spectre y Meltdown

Comunicado de AMD sobre la vulnerabilidad

La vulnerabilidad que afecta a la “ejecución especulativa” o Spectre ha tenido la siguiente respuesta por parte de AMD, básicamente lo que hemos citado previamente en este artículo, confirmando que AMD solo es claramente vulnerable a uno de los tipos de ataque, mientras que es muy improbable que sea al segundo y en absoluto es vulnerable a Meltdown.

Comunicado de Intel al respecto

Deja tu comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

w

Conectando a %s