7 feb 2024

Cifrado de BitLocker roto en 43 segundos con Raspberry Pi Pico (¿cómo protegerse?)

Bitlocker es una de las soluciones de cifrado de más fácil acceso disponibles en la actualidad, ya que es una característica integrada de Windows 10 Pro y Windows 11 Pro que está diseñada para proteger los datos.

Sin embargo, YouTuber stacksmashing demostró una falla de seguridad colosal con Bitlocker que le permitió eludirlo en menos de un minuto con una Raspberry Pi Pico barata de menos de U$S 10, obteniendo así acceso a las claves de cifrado que pueden desbloquear datos protegidos. Después de crear el dispositivo, el exploit solo tardó 43 segundos en robar la clave maestra.

Para hacer esto, el YouTuber aprovechó un defecto de diseño que se encuentra en muchos sistemas que cuentan con un Módulo de Plataforma Confiable (TPM) dedicado. Para algunas configuraciones, Bitlocker depende de un TPM externo para almacenar información crítica, como los registros de configuración de la plataforma y la clave maestra de volumen (algunas CPU lo tienen integrado). Para TPM externos, la clave del TPM se comunica a través de un bus LPC con la CPU para enviarle las claves de cifrado necesarias para descifrar los datos en la unidad.

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.

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. 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.

Stacksmashing descubrió que las vías de comunicación (bus LPC) entre la CPU y el TPM externo no están cifradas en absoluto durante el arranque, lo que permite a un atacante rastrear datos críticos a medida que se mueven entre las dos unidades, robando así las claves de cifrado. Puedes ver su método en el vídeo a continuación.

Teniendo esto en cuenta, el YouTuber decidió probar un ataque en un portátil de diez años con cifrado Bitlocker. El bus LPC específico de su computadora portátil se puede leer a través de un conector desocupado en la placa base, ubicado justo al lado de uno de los puertos M.2 de la computadora portátil. Este mismo tipo de ataque se puede utilizar en placas base más nuevas que aprovechan un TPM externo, pero normalmente requieren más trabajo preliminar para interceptar el tráfico del bus.

Para leer los datos del conector, el YouTuber creó un dispositivo Raspberry Pi Pico económico que podía conectarse al conector no seguro simplemente haciendo contacto con las almohadillas metálicas que sobresalían de sí mismo. El Pico fue programado para leer los 1 y 0 sin procesar del TPM, otorgando acceso a la clave maestra de volumen almacenada en el módulo.

El trabajo de Stacksmashing demuestra que Windows Bitlocker, así como los TPM externos, no son tan seguros como muchos piensan porque las líneas de datos entre el TPM y la CPU no están cifradas. La buena noticia es que esta falla parece ser un problema regulado para TPM discretos. Si tiene una CPU con un TPM integrado, como los de las CPU Intel y AMD modernas, debería estar a salvo de esta falla de seguridad, ya que toda la comunicación del TPM se produce dentro de la propia CPU.

Cómo protegerse

Si quieres evitar que puedan acceder a tus datos por este medio, la mejor opción es crear un PIN para BitLocker. Básicamente, es una protección de seguridad adicional al cifrado con BitLocker. Eso sí, tendrás que poner el PIN cada vez que inicies el equipo, antes de que arranque Windows. Es independiente del PIN que uses en el sistema de Microsoft.

Para ello, lo primero que tienes que hacer es habilitar BitLocker desde Windows. Ten en cuenta que, de cara a poder usar BitLocker, necesitas tener las versiones de Windows 10 Pro o Windows 11 Pro; no funciona con las versiones Home.

Una vez lo tengas habilitado, tienes que ir al Editor de directivas de grupo, accedes a Configuración del equipo, Plantillas administrativas, Componentes de Windows y buscas Cifrado de unidad BitLocker. Posteriormente, tienes que marcar Unidades del sistema operativo y Requerir autenticación adicional al iniciar. Tienes que habilitar esta función y marcar Requerir PIN de inicio con TPM.

Cuando tengas esto realizado, tendrás que usar el comando manage-bde para habilitar el cifrado de BitLocker. A partir de ahí, ya podrás crear el PIN que quieras y siempre te lo solicitará la computadora antes de iniciar el sistema. Ese PIN lo vas a poder modificar en cualquier momento, así como quitar si quisieras.

Entonces, para ser justos, el cifrado no ha sido roto. La implementación del mecanismo en el almacenamiento de contraseña en texto plano es deficiente y permite obtenerla.

Fuente: RedesZone

Suscríbete a nuestro Boletín

3 comentarios:

  1. Y como sabemos si tenemos un TPM externo o integrado en la CPU ?

    ResponderBorrar
    Respuestas
    1. En la hoja de datos del producto podrás encontrar esa información, ya sea de la placa madre o del microprocesador.

      Borrar
  2. Bueno, el cifrado no está roto. La implementación del mecanismo en particular es deficiente y permite obtener la contraseña maestra. O sea que el cifrado sigue siendo útil, si se lo utiliza correctamente.

    ResponderBorrar

Gracias por dejar un comentario en Segu-Info.

Gracias por comentar!