Llegamos a ustedes gracias a:



Reportajes y análisis

33 vulnerabilidades de hardware y firmware: una guía para las amenazas

[30/01/2021] En enero del 2018, toda la industria informática se puso en alerta por dos nuevas vulnerabilidades de procesador denominadas Meltdown y Spectre, que derrotaron los límites de seguridad fundamentales del sistema operativo que separan el kernel y la memoria del espacio del usuario. Las fallas surgieron de una característica de desempeño de las CPU modernas, conocida como ejecución especulativa; y mitigarlas requirió uno de los mayores esfuerzos de coordinación de actualizaciones de la historia, involucrando a fabricantes de CPU, fabricantes de dispositivos y proveedores de sistemas operativos.

Meltdown y Spectre ciertamente no fueron las primeras vulnerabilidades resultantes de una decisión de diseño de hardware, pero su impacto generalizado despertó el interés de la comunidad de investigación de seguridad en tales fallas. Desde entonces, muchos investigadores, tanto del mundo académico como del sector privado, han estado estudiando el funcionamiento de bajo nivel de las CPU y otros componentes de hardware, y han descubierto cada vez más problemas.

Algunas vulnerabilidades de hardware son imposibles de mitigar por completo sin lanzar una nueva generación de componentes, mientras que otras se pueden solucionar en el firmware, la programación de bajo nivel presente en los chips de hardware. En cualquier caso, la aplicación de actualizaciones no es sencilla, por lo que estos defectos pueden seguir afectando a los dispositivos del mundo real durante mucho tiempo.

A continuación, una lista de vulnerabilidades relacionadas con el hardware que debe conocer, descubiertas antes y después de Meltdown:

Ataques de canal lateral de CPU

Variante 1 de Spectre - CVE-2017-5753: También conocido como bypass de verificación de límites, CVE-2017-5753 permite a los atacantes explotar la función de predicción de ramas de las CPU modernas para extraer información de la memoria de otros procesos, utilizando la memoria caché de la CPU como un canal lateral. Permite que un proceso extraiga información confidencial de la memoria de otro proceso, pero también podría eludir el límite de privilegios de la memoria del kernel/usuario. La vulnerabilidad afecta a Intel, IBM y un número limitado de CPUs ARM.

Variante 2 de Spectre - CVE-2017-5715: La variante 2 de Spectre tiene el mismo impacto que la variante 1 pero utiliza una técnica de explotación diferente, llamada inyección de objetivo de ramificación. Mitigar esta variante de Spectre de manera eficiente requiere actualizaciones del microcódigo de la CPU afectada, que se puede aplicar a través de actualizaciones de BIOS/UEFI o mediante el sistema operativo en cada reinicio.

Meltdown variante 3 - CVE-2017-5754: También conocida como Rogue Data Cache Load (RDCL) o variante 3 de las fallas de ejecución especulativa de la CPU, Meltdown es una vulnerabilidad que aprovecha las capacidades de ejecución fuera de orden de las CPU Intel modernas. Permite que un proceso de usuario lea la memoria del núcleo protegida a través de los límites de seguridad. La solución solo requiere actualizaciones del sistema operativo, e implica la aplicación de un aislamiento más estricto de la memoria del kernel que generalmente contiene secretos confidenciales, a través de mecanismos como el aislamiento de tabla de páginas del kernel de Linux (KPTI).

Meltdown-GP - CVE-2018-3640: Una variante de Meltdown, o variante 3a, utiliza lecturas especulativas de los registros del sistema para lograr fugas de información de canal lateral. Debido a esto, también se conoce como lectura de registro de sistema no autorizado (RSRE, por sus siglas en inglés). La mitigación requiere actualizaciones de microcódigo.

Meltdown-NM - CVE-2018-3665: Una falla de ejecución especulativa relacionada con Meltdown que también se conoce como LazyFP y se puede usar para filtrar el estado de la unidad de punto flotante (FPU, por sus siglas e inglés) -un coprocesador matemático especializado presente en las CPU modernas de Intel que se utiliza para acelerar las operaciones matemáticas en números de coma flotante. El estado de la FPU puede contener información confidencial de operaciones criptográficas. Esta vulnerabilidad se puede mitigar aplicando un cambio de contexto de FPU "ansioso en lugar de "perezoso a nivel del sistema operativo.

Spectre -NG - CVE-2018-3639: También conocida como variante 4 de Spectre o Bypass de almacenamiento especulativo (SSB, por sus siglas en inglés), esta es una variante de Spectre que permite realizar lecturas de memoria antes de que se conozcan las direcciones de escritura de memoria anteriores, y se puede utilizar para filtrar información de datos de procesamiento cruzado. La mitigación requiere actualizaciones de microcódigo y del sistema operativo.

Spectre -PHT - CVE-2018-3693: También conocido como Spectre 1.1, es una variante de Spectre que aprovecha las tiendas especulativas para crear desbordamientos de búfer especulativos. Permitió eludir algunas de las mitigaciones anteriores basadas en software para Spectre y requiere actualizaciones del sistema operativo.

Meltdown-RW: También conocido como Spectre 1.2, es una variante que aprovecha los almacenes especulativos para sobrescribir datos de solo lectura y punteros de código. Esta variante se puede utilizar para violar sandboxes de software y está relacionada con Spectre 1.1. La mitigación requirió actualizaciones del sistema operativo.

Foreshadow-OS - CVE-2018-3620: También conocido como L1 Terminal Fault, Foreshadow es un ataque de ejecución especulativa contra las CPU Intel, que permite extraer información del caché de datos L1 del procesador. Esto es particularmente sensible en el contexto de las máquinas virtuales que dividen la misma CPU física en varias CPU virtuales, porque esas CPU virtuales usan la misma caché L1. Esta variante permite a los atacantes extraer información del sistema operativo o SMM (modo de administración del sistema), un modo alternativo de operación de la CPU que está separado del sistema operativo, y está diseñado para ser utilizado por BIOS/UEFI o código OEM de bajo nivel.

Foreshadow-VMM - CVE-2018-3646: Una variante de Foreshadow que afecta a las máquinas virtuales y permite que un sistema operativo invitado, que se ejecuta dentro de una máquina virtual, lea potencialmente la memoria sensible de otras máquinas virtuales invitadas o del propio hipervisor.

Foreshadow-SGX - CVE-2018-3615: Una variante de Foreshadow que les permite a los atacantes leer la memoria de enclaves de Intel Software Guard Extensions (SGX). SGX es un ambiente de ejecución confiable, proporcionado por algunas CPU de Intel que les permite a los desarrolladores almacenar datos y ejecutar código de forma segura, incluso si el sistema operativo se ha visto comprometido.

Meltdown-PK y Meltdown-BND: Meltdown-PK (Protection Key Bypass) y Meltdown-BND (Bounds Check Bypass) son dos variantes de Meltdown, presentadas en noviembre del 2018 por un equipo de investigadores académicos como parte de una evaluación más amplia de ataques de ejecución transitoria. Meltdown-PK afecta a las CPU de Intel, mientras que Meltdown-BND afecta tanto a Intel como a AMD.

Spectre -PHT-CA-OP, Spectre -PHT-CA-IP y Spectre -PHT-SA-OP: Estas son variantes de Spectre que aprovechan la tabla de historial de patrones (PHT, por sus siglas en inglés) de la CPU. Fueron revelados al mismo tiempo que Meltdown-PK y Meltdown-BND por el mismo equipo.

Spectre -BTB-SA-IP y Spectre -BTB-SA-OP: Son variantes del ataque Spectre que aprovechan el búfer de destino de rama (BTB, por sus siglas en inglés). Fueron revelados en noviembre del 2018 por el mismo equipo que encontró Meltdown-PK y Meltdown-BND. El equipo concluyó en ese momento que "la mayoría de las defensas, incluidas las desplegadas, no pueden mitigar por completo todas las variantes de ataque.

Fallout - CVE-2018-12126: Fallout, también conocido como muestreo de datos de búfer de almacenamiento de microarquitectura (MSBDS, por sus siglas en inglés), es una vulnerabilidad cuyos efectos son similares a Meltdown en el sentido de que se puede usar para filtrar secretos confidenciales de regiones de memoria protegidas a través de los límites de seguridad. Es parte de una nueva clase de ataques de canal lateral contra CPU que Intel llama muestreo de datos de microarquitectura (MDS, por sus siglas en inglés). La falla afecta tanto a los sistemas operativos como a los hipervisores y la mitigación requiere actualizaciones de microcódigo de la CPU.

RIDL - CVE-2018-12127 y CVE-2018-12130: Otras dos variantes de ataques MDS conocidas como muestreo de datos de puerto de carga de microarquitectura (MLPDS) y muestreo de datos de búfer de relleno de microarquitectura (MFBDS). Al igual que Fallout, la mitigación requiere actualizaciones de microcódigo de la CPU.

Zombieload - CVE-2019-11091: Una cuarta variante de ataques MDS conocida como memoria no caché de muestreo de datos de microarquitectura (MDSUM). Al igual que Fallout y RIDL, se puede utilizar para filtrar la memoria sensible del kernel o del hipervisor.

Starbleed: Starbleed es un defecto de diseño en el proceso de cifrado de flujo de bits de matrices de puertas programables en campo (FPGA) fabricadas por Xilinx. A diferencia de las CPU, que vienen con un conjunto predeterminado de instrucciones de propósito general que se adaptan a la mayoría de las tareas informáticas, los FPGA son circuitos integrados cuya lógica es completamente programable por el cliente. Por lo general, están configurados para realizar una tarea específica mejor y de manera más eficiente que las CPU de propósito general, y se usan ampliamente para aplicaciones críticas de misión o seguridad en sectores como el aeroespacial, las finanzas y el ejército.

Los archivos de configuración cargados por los clientes en FPGA se denominan flujos de bits y los fabricantes de FPGA, como Xilinx, que controla alrededor del 50% del mercado de FPGA, han agregado mecanismos de validación de flujo de bits y cifrado para permitir que los clientes protejan su propiedad intelectual y otros secretos que sus FPGAs implementados pueden contener. Un equipo de investigadores del Instituto Horst Goertz de Seguridad de TI de la Universidad Ruhr de Bochum en Alemania ha encontrado una falla de diseño en el mecanismo de seguridad de flujo de bits de las FPGA Xilinx 7-Series y Virtex-6, que puede permitir que un atacante descifre flujos de bits e incluso los modifique.

"Mediante nuestro ataque, podemos eludir el cifrado de flujo de bits y descifrar un flujo de bits, supuestamente seguro, en todos los dispositivos Xilinx Serie 7 por completo y parcialmente en los dispositivos Virtex-6, escribieron los investigadores en su artículo, que se presentará en la 29a edición de USENIX Security Symposium. "Además, también podemos manipular el flujo de bits ajustando el HMAC. En general, la configuración de ataque externo es la misma que se encuentra comúnmente en la práctica convencional: el adversario solo necesita acceso a la interfaz de configuración de una FPGA en campo. En esta configuración, la clave secreta de descifrado ya se ha cargado en la FPGA; por ejemplo, después de la fabricación del dispositivo, la clave se almacena en la RAM interna con backup de batería (BBRAM, por sus siglas en inglés) o eFUSEs. Como se mostrará más adelante, el adversario usa la FPGA con la clave almacenada como un oráculo para descifrar el flujo de bits.

Para llevar a cabo el ataque Starbleed, los hackers necesitan acceso a una interfaz de configuración de hardware en la FPGA, lo que normalmente significa que necesitarían acceso físico al dispositivo. Sin embargo, algunos FPGA se programan y reprograman a través de microcontroladores separados, que se pueden conectar a una red, en cuyo caso dicho ataque podría ejecutarse de forma remota.

La falla de diseño no se puede reparar porque existe en el silicio, por lo que se corregirá en las generaciones futuras de FPGA Xilinx. La empresa fue notificada de la vulnerabilidad antes de que se publicara el documento y envió un aviso a los clientes.

PLATYPUS: PLATYPUS es un ataque de canal lateral que abusa de la interfaz de límite de potencia promedio en ejecución (RAPL, por sus siglas en inglés) que se usa para medir el consumo de energía en los núcleos de la CPU, y está presente en todas las CPU Intel desarrolladas desde el 2011 (Sandy Bridge). Es el primer ataque de análisis de potencia diferencial que puede ejecutarse de forma remota y usarse para filtrar secretos como claves de cifrado de la memoria del kernel de Linux y enclaves seguros de Intel SGX.

El ataque se anunció en noviembre del 2020 y fue ideado por un equipo de investigadores de la Universidad de Tecnología de Graz, la Universidad de Birmingham en el Reino Unido y el Centro CISPA Helmholtz para la Seguridad de la Información. Los desarrolladores del kernel de Linux actualizaron las vulnerabilidades, que se rastrean como CVE-2020-8694 y CVE-2020-8695, al evitar que las aplicaciones sin privilegios accedan a los datos de consumo de energía de RAPL.

Sin embargo, esto no aborda el vector de ataque privilegiado contra Intel SGX, un ambiente de ejecución confiable (TEE, por sus siglas en inglés) integrado en la CPU, que se supone que mantiene seguros los datos criptográficos confidenciales incluso en el caso de un compromiso total del sistema operativo. Para solucionar esto, los usuarios deben implementar actualizaciones de microcódigo de CPU publicadas por Intel.

Si bien los investigadores probaron y confirmaron su ataque a las CPU de Intel, advirtieron que las CPU de otros fabricantes de chips, incluidos AMD, Nvidia y ARM, también tienen medidores de energía integrados que son accesibles y podrían ser vulnerables a una variación de este ataque.

Ataques de Rowhammer de memoria DRAM

Rowhammer: Rowhammer es un efecto físico con implicaciones de seguridad que se produce dentro de los chips SDRAM cuando se lee la misma fila física de celdas de memoria una gran cantidad de veces en rápida sucesión, una acción denominada martilleo. Esto puede hacer que las cargas eléctricas de las celdas en la fila martillada se filtren a filas adyacentes, modificando el valor de las celdas en esas filas. Esto se conoce como cambio de bits y es posible debido a la mayor densidad de celda de los chips SDRAM modernos, en particular DDR3 y DDR4.

Si bien el efecto Rowhammer se conoce o documenta desde hace mucho tiempo, en marzo del 2015, los miembros del equipo Project Zero de Google fueron los primeros en demostrar que puede tener implicaciones de seguridad cuando revelaron dos exploits de escalada de privilegios basados en él.

Rowhammer.js: Rowhammer.js fue una implementación del ataque Rowhammer a través de JavaScript, lo que demuestra que esta falla se puede explotar de forma remota a través del navegador, simplemente visitando una página web maliciosa. Los proveedores de navegadores han agregado mitigaciones contra este exploit.

Drammer - CVE-2016-6728: Drammer es un exploit de tipo Rowhammer, demostrado en el 2016, contra dispositivos Android. Hasta entonces, se pensaba que los chips de memoria de los dispositivos móviles no se veían afectados.

Flip Feng Shui: una implementación del ataque Rowhammer contra máquinas virtuales, donde una máquina virtual invitada y maliciosa puede invertir bits en la memoria física, lo cual afecta a una máquina virtual diferente de manera controlada. Los investigadores demostraron esto al romper la autenticación de clave pública OpenSSH en la máquina virtual de destino.

ECCploit: ECCploit es un ataque que demuestra que los ataques de tipo Rowhammer pueden funcionar incluso contra chips SDRAM que tienen capacidades de código de corrección de errores (ECC, por sus siglas en inglés). Se pensaba que este tipo de memoria, que normalmente se usa en servidores, era inmune a Rowhammer.

Throwhammer: Un ataque Rowhammer que se puede explotar a través de una red, aprovechando la función de acceso directo a memoria remota (RDMA), presente en las tarjetas de red rápidas como las que se utilizan en los servidores.

RAMBleed: RAMBleed es el primer ataque que ha demostrado que es posible usar el efecto Rowhammer para robar datos de las celdas de memoria, en lugar de simplemente modificarlos. Los ataques anteriores de Rowhammer comprometieron la integridad de la memoria a través de cambios de bits, lo que podría provocar una escalada de privilegios y otras condiciones. Mientras tanto, RAMBleed utiliza el martilleo de filas y un canal lateral para inferir información y, en última instancia, extraer datos de las celdas de memoria adyacentes. En ese sentido, es similar a los efectos de Meltdown y Spectre.

Vulnerabilidades de firmware de gran impacto

BlueBorne: Un conjunto de vulnerabilidades anunciadas en el 2017 en las implementaciones del stack Bluetooth de Linux, Android, Windows y macOS. Se estimó que estas vulnerabilidades afectaron a más de cinco mil millones de dispositivos y, aunque en las computadoras fue más fácil de solucionar mediante actualizaciones del sistema operativo, en relojes inteligentes con Bluetooth, televisores, dispositivos médicos, sistemas de información y entretenimiento para automóviles, dispositivos portátiles y otros dispositivos de Internet de las cosas se requirieron actualizaciones de firmware. Un año después, en el 2018, los investigadores estimaron que más de dos mil millones de dispositivos permanecían expuestos.

KRACK: KRACK, o el Ataque de Reinstalación de Claves, es un ataque revelado en el 2016 que explotó una debilidad en el estándar de seguridad inalámbrica WPA2, que se utiliza para proteger a la mayoría de las redes inalámbricas en uso actuales. Debido a que la debilidad estaba en el estándar en sí, las implementaciones de WPA2, en todo tipo de dispositivos, incluidos los routers domésticos y otros dispositivos de IoT, se vieron afectadas. La reparación de la vulnerabilidad requería actualizaciones de firmware, por lo que muchos dispositivos sin soporte seguían siendo vulnerables hasta el día de hoy.

BadUSB: Un ataque demostrado en el 2014 que permite reprogramar los microcontroladores en memorias USB para que falsifiquen otro tipo de dispositivos, como teclados, y los usen para tomar el control de computadoras o para exfiltrar datos. Muchas unidades de memoria USB siguen afectadas.

Thunderstrike y Thunderstrike 2: Dos ataques que aprovecharon las vulnerabilidades en el firmware de los dispositivos MacBook de Apple para instalar rootkits de firmware cuando se conectaban dispositivos maliciosos a los puertos Thunderbolt. Thunderstrike 2 también permitió comprometer a los dispositivos Thunderbolt recién insertados, creando la posibilidad de un gusano.

Thunderclap: Otro ataque reveló este año que puede ejecutar código privilegiado en computadoras equipadas con puertos Thunderbolt.

ROCA: The Return of Coppersmith's Attack (ROCA) es un ataque contra los módulos de plataforma confiable (TPM, por sus siglas en inglés) y elementos seguros (SE, por sus siglas en ingles) producidos por Infineon Technologies. Estos TPM y SE son utilizados en decenas de millones de computadoras comerciales, servidores, tokens de autenticación de hardware y varios tipos de tarjetas inteligentes, incluidas las tarjetas de identidad nacionales. La vulnerabilidad permite que las claves RSA generadas con estos componentes sean significativamente más vulnerables a la factorización: ataques diseñados para recuperar claves. Los investigadores estimaron que el costo de recuperar claves RSA individuales de 2048 bits, generadas por dichos dispositivos es de alrededor de veinte mil dólares y para claves RSA de 1024 bits, alrededor de cuarenta dólares.

Intel Management Engine: Intel Management Engine (ME) es un coprocesador, y subsistema dedicado, presente en muchas CPU de Intel, y se utiliza para tareas de administración fuera de banda. Intel ME ejecuta su propio sistema operativo liviano, el cual está completamente separado del sistema operativo instalado por el usuario, por lo que a menudo se lo ha descrito como una backdoor en la comunidad de seguridad. A lo largo de los años, se han encontrado vulnerabilidades graves en Intel ME y para solucionarlas es necesario instalar actualizaciones de firmware de los fabricantes de computadoras. Esto significa que probablemente muchos sistemas más antiguos, que carecen de soporte, no lleguen a recibir dichas actualizaciones.