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.

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 lugar”, 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 expertos ya han comenzado a dar muestras de lo sencillo que resulta explotar este fallo de seguridad:

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
AMD Affected
Android Open Source Project Affected
Apple Affected
Arm Affected
CentOS Affected
Cisco Affected
Citrix Affected
Debian GNU/Linux Affected
Fedora Project Affected
Fortinet, Inc. Affected
FreeBSD Project Affected
Google Affected
IBM Corporation Affected
Intel Affected

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.

 

¿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

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.

Fuente noticia: https://protegermipc.net/
Fuente foto: blogspot.com