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 | – |
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,
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:
- Red Hat Enterprise Linux 5 (including clones such as CentOS/Oracle/Scientific Linux 5)
- Red Hat Enterprise Linux 6 (including clones such as CentOS/Oracle/Scientific Linux 6)
- Red Hat Enterprise Linux 7 (including clones such as CentOS/Oracle/Scientific Linux 7)
- RHEV-M 4.0
- RHEV-M for Servers
- Red Hat Enterprise Linux OpenStack Platform 7.0 (Kilo) for RHEL 7
- Red Hat Enterprise Linux OpenStack Platform 6.0 (Juno) for RHEL 7
- Red Hat Enterprise MRG 2
- Red Hat OpenStack Platform v 8/9/10/11/12
- Debian Linux wheezy
- Debian Linux jessie
- Debian Linux stretch
- Deiban Linux buster, sid
- SUSE Linux Enterprise Server for Raspberry Pi 12 SP2
- SUSE OpenStack Cloud 6
- Openstack Cloud Magnum Orchestration 7
- SUSE Container as a Service Platform ALL
- SUSE Linux Enterprise High Availability 12 SP2/SP3
- SUSE Linux Enterprise Live Patching 12
- SUSE Linux Enterprise Module for Public Cloud 12
- SUSE Linux Enterprise Server 11 SP3-LTSS
- SUSE Linux Enterprise Server 11 SP4
- SUSE Linux Enterprise Software Development Kit 11/12 SP3/SP4
- SUSE Linux Enterprise for SAP 12 SP1
- SUSE Linux Enterprise 11
- SUSE Linux Enterprise 12
- OpenSuse Linux based upon SUSE 12/11
- Fedora Linux 26
- Fedora Linux 27
- 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