Cómo romper el cifrado Bitlocker de Windows con un ataque de 15€: El bug en la comunicación entre TPM y CPU
Figura 2: Libro de Raspberry Pi para hackers & Makers PoCs & Hacks Just for Fun en 0xWord escrito por Pablo Abel Criado, Hector Alonso y Amador Aparicio |
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.
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.
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.
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.
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).
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! 😉
Contactar con Fran Ramírez en MyPublicInbox |
Powered by WPeMatico