6 puntos por kuroneko 2023-08-25 | 1 comentarios | Compartir por WhatsApp
  • Con un analizador lógico barato es posible eludir el cifrado de disco completo de BitLocker en computadoras con un chip TPM dedicado.
  • BitLocker primero genera la FVEK (Full Volume Encryption Key) y luego la cifra con la VMK (Volume Master Key) para almacenarla en el disco duro.
    • Cuando el TPM está activado, la VMK se guarda dentro del TPM, y durante el arranque se obtiene la VMK desde el TPM para descifrar el disco duro.
    • Pero en el proceso de obtener la VMK, el mensaje se transmite en texto plano.
  • Para descifrar esto, hay que capturar los comandos SPI que van y vienen entre la CPU y el chip TPM con un analizador lógico.
    • Como es muy difícil conectar un analizador lógico directamente al chip TPM, se empieza capturando la señal conectándose a otro chip que comparte el bus SPI con el TPM.
    • Primero hay que capturar solicitudes SPI fáciles de reconocer y luego decodificar TIS, que representa la comunicación según la especificación de la interfaz TPM.
    • Como no existe una forma sencilla de decodificar TIS, se hizo manualmente y así se pudo identificar el byte inicial de la señal TPM.
    • El siguiente paso es capturar el comando TPM2_Unseal definido en la especificación TPM 2.0 para obtener la contraseña.
    • Con los bytes identificados en TIS, se buscan los comandos TPM 2.0, se separan las respuestas y luego se usa una herramienta como tpmstream-web para extraer el búfer de la respuesta TPM.
  • Una vez obtenida la clave, ya se puede acceder a los datos del disco duro.
    • Se extrae el disco duro y se conecta a otro sistema, y luego se usan herramientas como dislocker para explorar el sistema de archivos cifrado.
    • Después se crea un shell del sistema utilizable desde la pantalla de inicio de sesión usando el método tradicional de reemplazar cierto programa por cmd.exe.
    • Como ya se obtuvo un cmd con privilegios de administrador, se puede hacer cualquier cosa.
  • En conclusión, si hay un TPM físico, BitLocker se vuelve muy vulnerable, por lo que se recomienda usar fTPM, que está completamente integrado en la CPU y hace imposible este tipo de ataque.
  • Si se quiere usar BitLocker de forma segura en un sistema con TPM físico, es necesario configurar un PIN o una contraseña.

1 comentarios

 
kuroneko 2023-08-25

Esta es otra publicación sobre el mismo tema.

Al parecer, este problema ocurre porque BitLocker, de forma extraña, no usa la sesión cifrada que el TPM incluye precisamente para evitar este tipo de ataques de intermediario.
systemd no tiene este problema cuando se usa TPM con cifrado LUKS.

BitLocker resultó ser mucho más vulnerable de lo que pensaba en ciertas situaciones.
Como incluso lleva "Trusted" en el nombre del módulo de seguridad, pensé que no tendría este tipo de problema...