domingo, febrero 11, 2024

Cómo romper el cifrado Bitlocker de Windows con un ataque de 15€: El bug en la comunicación entre TPM y CPU

Hace muy poco se ha publicado un vídeo titulado "Breaking Bitlocker: Bypassing Windows Disk Encryption" donde se ha conseguido romper el cifrado de Windows BitLocker usando una Raspberry Pi Pico que cuesta unos 15€. Una hazaña increíble teniendo en cuenta el tiempo que lleva BitLocker instalado en todos los ordenadores con Windows usando esta arquitectura.
El objetivo del ataque es extraer la clave de cifrado de Bitlocker interceptando la comunicación entre el Módulo de Plataforma de Confianza (TPM) y el procesador del sistema, y lo logra en menos de un minuto y como he comentado antes, con un coste inferior a 20€. A pesar de la Inteligencia Artificial, menos mal que aún queda hacking de ingeniería inversa al más puro “old style” ;)

Por cierto, te recomiendo este libro si estás interesado en aprender cómo utilizar la Rasbperry Pi como herramienta de hacking: “Raspberry Pi para Hackers & Makers: PoCs & Hacks Just for Fun!”, y el de "Máxima Seguridad en Windows: Secretos Técnicos" para que puedas aprender de BitLocker y todas las técnicas de cifrado y protección en sistemas Windows. Vamos a ver cómo funciona primero el sistema de cifrado Bitlocker.

Figura 3: Máxima Seguridad en Windows Gold Edition
de Sergio de los Santos en 0xWord.

Bitlocker es la solución de cifrado de disco completo que protege los datos en dispositivos Windows contra accesos no autorizados. Utiliza un TPM, un chip criptográfico en la placa base, para almacenar de forma segura las claves de cifrado. El TPM asegura que la clave de cifrado solo se comparta si la configuración del hardware no ha sido alterada desde el último arranque.

Figura 4: Chip TMP.

Explicado un poco más en detalle, el proceso de medición del TPM verifica la integridad del sistema al arrancar, utilizando los Registros de Configuración de Plataforma (PCR). Cada componente crítico del sistema (BIOS, bootloader, etcétera) se mide, es decir, se calcula un hash de su configuración y este hash se almacena en las PCR. Sólo si los valores de las PCR coinciden con los esperados, el TPM libera la clave de cifrado a Windows.

Vulnerabilidad en la Comunicación TPM-CPU

La vulnerabilidad que se ha conseguido explotar, reside en la comunicación no cifrada entre el TPM y el CPU. Cuando el sistema arranca y verifica la integridad del hardware, si todo está ok, el TPM envía la clave de cifrado a la CPU en texto plano. 

Figura 5: Breaking BitLocker. Bypassing Windows Disk Encryption

Y claro, aquí tenemos el problema. Por lo tanto, el problema radica en este diseño (más que en BitLocker como tal) permite que un atacante, con acceso físico al bus de comunicación entre el TPM y la CPU, intercepte dicha clave de cifrado, comprometiendo así la confidencialidad de la información sin necesidad de conocer la contraseña o PIN del usuario.


En la explotación se utiliza una Raspberry Pi Pico y pogo pins, contactos que permiten crear una conexión física temporal con los puntos de prueba o los pines de un circuito impreso. El objetivo es acceder físicamente al bus LPC (Low Pin Count), un bus de comunicación utilizado por el TPM para transmitir datos al CPU. Se seleccionó este bus por su simplicidad y la facilidad con la que se pueden interceptar los datos.

Figura 7: Conexión de la Raspberry Pi Pico al bus LPC

El primer paso es un proceso de ingeniería inversa y análisis detallado del protocolo LPC para entender cómo se transmiten los datos entre el TPM y el CPU. Una vez que se analizado, creamos un firmware personalizado para el Raspberry Pi Pico, que permita capturar y decodificar las señales transmitidas a través del bus LPC durante el proceso de arranque del sistema. Esta es quizás la parte más compleja de todo el ataque ya que requiere un alto conocimiento de electrónica para poder crear ese firmware.

Figura 8: Datos capturados directamente desde los pines del bus.
 
Una vez que el dispositivo está correctamente conectado al bus LPC mediante los pogo pins, actúa como un "sniffer" de bus, escuchando y registrando la comunicación entre el TPM y el CPU. Al interceptar esta comunicación, el firmware del Raspberry Pi Pico analiza los datos capturados para identificar y extraer la clave de cifrado de Bitlocker enviada en texto plano. Y ya lo tenemos, a partir de ahora con esta clave podemos descifrar la información del disco. Todo el material utilizado para este ataque puedes encontrarlo aquí.

Las implicaciones de este ataque

La capacidad de descifrar Bitlocker a través de este ataque tiene consecuencias realmente significativas y críticas en la seguridad de la información almacenada en dispositivos que confían en esta tecnología para la protección de datos (que son muchos, ya que es el que se usa habitualmente en Windows). 
Y quizás el punto más importante es que este ataque expone a riesgos críticos la confidencialidad de los datos, permitiendo a un atacante con acceso físico al dispositivo, obtener de manera relativamente sencilla (y con un costo mínimo), acceso completo a la información previamente considerada segura bajo el cifrado de Bitlocker. Esto incluye documentos personales, datos empresariales sensibles, información financiera, entre otros, poniendo en peligro la privacidad de individuos y la seguridad de organizaciones.


Moraleja: el hardware es importante en el pentesting los ataques físicos, aunque requieren acceso al hardware objetivo, pueden llevarnos a descubrir vulnerabilidades críticas que no serían tan evidentes mediante técnicas de software. El bajo costo y la disponibilidad de herramientas como el Raspberry Pi Pico (o el conocido Flipper Zero) hacen que tengamos acceso a técnicas de pentesting más avanzadas, permitiendo a los investigadores de ciberseguridad explorar nuevas vías de ataque y defensa.


El pentesting usando hardware es un aviso claro: la seguridad de los sistemas informáticos no solo depende del software y la configuración, sino también de la integridad física y la seguridad del hardware subyacente. En el contexto de la seguridad informática, es vital considerar y protegerse contra ataques físicos, implementando medidas como el cifrado de disco con autenticación previa al arranque y la protección de los componentes de hardware críticos.

Figura 12: Libro de Cifrado de las comunicaciones digitales:
de la cifra clásica a RSA 2ª Edición de 0xWord

Ya para terminar, lo que realmente llama la atención de este ataque es la ingeniosidad y la simplicidad del mismo contra Bitlocker, una técnica de cifrado que hasta hoy pensábamos que era segura y que realmente lo sigue siendo, porque como hemos podido comprobar, el problema está en la implementación no en el algoritmo como tal. La innovación en herramientas de pentesting, especialmente en el ámbito del hardware, juega un papel crucial en la identificación y mitigación de vulnerabilidades de seguridad que de otra forma sería imposible detectar, asegurando la protección efectiva de los datos en un panorama de amenazas en constante evolución.

Hoy más que nunca, Happy Hacking Hackers! ;)

Autor: Fran Ramírez, es investigador de seguridad y miembro del equipo de Ideas Locas en CDO en Telefónica, co-autor del libro "Microhistorias: Anécdotas y Curiosidades de la historia de la informática (y los hackers)", del libro "Docker: SecDevOps", también de "Machine Learning aplicado a la Ciberseguridad” además del blog CyberHades. Puedes contactar con Fran Ramirez en MyPublicInbox.

 Contactar con Fran Ramírez en MyPublicInbox

No hay comentarios:

Entrada destacada

10 maneras de sacarle el jugo a tu cuenta de @MyPublicInbox si eres un Perfil Público

Cuando doy una charla a algún amigo, conocido, o a un grupo de personas que quieren conocer MyPublicInbox , siempre se acaban sorprendiendo ...

Entradas populares