volvervolver

Bitlocker en un contexto pospandémico

Luego de la pandemia por COVID-19 una encuesta realizada en 2023 por Global Workplace Analytics (GWA) reveló que el 8% de los empleados con un tipo de contratación en relación de dependencia en América Latina trabajan completamente desde su hogar, si bien esta cifra parece ser insignificante para quienes trabajamos en ambientes relacionados con la tecnología, se trata de un aumento significativo con respecto al período pre pandémico, cuando solo el 3% de los empleados trabajaba bajo la dinámica home-office. La consultora McKinsey & Company reveló que el 70% de las empresas de la región tiene previsto seguir ofreciendo opciones de trabajo remoto a sus empleados, así mismo el Banco Interamericano de Desarrollo (BID) concluyó que se espera que el número de trabajadores a distancia en América Latina crezca un 50% en los próximos cinco años. Esta nueva dinámica y tendencias en el mercado laboral fomenta a que las empresas y empleadores incluyan como diferenciador en sus propuesta un incentivo para estos puestos, ofreciendo equipamiento, como pueden ser notebooks, PC y teléfonos móviles, también kits de periféricos, como teclados, mouse, micrófonos y webcams, hasta en algunos casos vouchers para “equipar” una oficina en algún ambiente sin uso de los hogares de dichos candidatos.

Las últimas métricas según Statcounter nos indican que aproximadamente el 86% de la población en la región utiliza Windows como sistema operativo (SO) predeterminado, lo que nos indica un alto índice de probabilidad o casi nos confirma que es el sistema operativo predilecto a la hora de realizar trabajos a distancia.


Teniendo en cuenta esta información varios entes gubernamentales crearon campañas de concientización para empleados y empleadores respecto a la ciberseguridad. Extraemos textualmente del Cert.ar en su guía Recomendaciones para Teletrabajo el siguiente párrafo:

“ … El trabajo de manera remota ha tomado un protagonismo muy pocas veces visto, en un corto lapso de tiempo, donde tanto los que ya estaban acostumbrados a ese modelo de trabajo, como aquellos que por primera vez tuvieron que aprender a configurar una computadora con el internet hogareño, se ven obligados a estar continuamente conectados por diversos canales digitales, aprender de manera acelerada el uso de otros nuevos, y modificar un ritmo de vida entre lo personal y lo laboral que muchas veces pone en riesgo nuestra privacidad y la de las personas que conviven con nosotros. Esta combinación entre inexperiencia y necesidad de manejar nuevas herramientas sin el conocimiento adecuado, suele ser muy explotada por los delincuentes informáticos en beneficio propio, obteniendo información personal para lograr hacerse pasar por otras personas, robando audios, fotos y videos para su distribución sin permisos, o incluso armar relaciones entre conocidos de la posible víctima para difundir información falsa o armar perfiles con personas de diversas cualidades, en búsqueda de orientar futuros ataques cibernéticos o delitos mayores.”


Entre varias recomendaciones también nos sugieren algunos ítems relevantes para este post:

Si el dispositivo pertenece a tu empleador:

 • Protegelo en lugares públicos. Siempre debe estar bajo tu custodia.
 • No permitas que lo use nadie excepto vos, aunque sean compañeros de trabajo.
 • No instales software ni bajes archivos innecesarios.
 • Evitá hacer tareas personales desde este equipo, como acceder a un “home banking” o navegar en sitios      desconocidos.
 • Evita el uso de redes públicas o inseguras para la conexión.
 • Cuida la información de tu trabajo. Es realmente importante y no protegerla puede afectar a vos, a tu empleador y a otras personas que interactúan con la entidad.

Si eres responsable técnico dentro de la organización:

 • Habilitar el acceso remoto a la red informática de tu organización a través de un canal seguro (por ejemplo: VPN), y solo hacerlo para aquellos empleados para los cuales sea necesario.

 • Realizar un backup periódico de la información crítica.

 • Definir procedimientos y un canal de comunicación para que los empleados que están trabajando en forma remota puedan reportar cualquier situación de soporte, anómala o sospechosa.

 • Incrementar los niveles de monitoreo de eventos de seguridad, por ejemplo: intentos fallidos de acceso y autenticación que luego resultan exitosos, acceso con un mismo usuario desde múltiples direcciones IP, identificación de tráfico sospechoso de red y de conexiones desde ubicaciones anómalas, como países inusuales.

 • Limitar los accesos remotos únicamente a los servicios permitidos y a zonas aisladas adecuadamente en la red.

 • Requerir doble factor de autenticación, todas las veces que sea posible.

 • Revisar la capacidad de los enlaces y monitorearlos constantemente para contribuir a asegurar la continuidad de los servicios, ya que el trabajo remoto puede saturar las conexiones a Internet.

 • Asegurar que los equipos personales cuenten con cifrado de disco y aplicar controles de prevención de fuga de información.

 • Verificar los controles en equipos remotos, vinculados a antivirus, sistemas operativos, actualizaciones, configuraciones de seguridad, etc.).

Caso Hipotético

Ahora imaginemos que obtenemos un puesto que ofrece una dinámica home-office y que nos han asignado una notebook para que realicemos nuestras tareas diarias, según lo visto anteriormente existen muchas posibilidades de que esta sea una notebook con un sistema operativo Windows y si tenemos la suerte de participar en una organización que tiene en cuenta las recomendaciones de seguridad es muy probable que nos sintamos protegidos frente a posibles ataques. Sin embargo, un día tomamos dicho dispositivo para trabajar desde nuestra cafetería favorita, pero cuando decidimos regresar lo olvidamos (o sufrimos un robo), ¿podríamos responder las siguientes preguntas?:

¿Realmente nuestra información y la de la organización se encuentra protegida?

¿Es realmente seguro cifrar un disco rígido?

¿Y las redes a las cuales me conectaba? ¿Funcionan las VPNS?


A partir de este punto este post tomará un tono más técnico por lo que si tu perfil no lo es, haz foco en las recomendaciones que compartimos en un comienzo y comparta esta información con los responsables de la seguridad dentro de la organización a la que perteneces. Por otro lado, si tu rol está relacionado con la ciberseguridad o simplemente te da curiosidad o te interesa la criptografía, electrónica o el hardware, te invitamos a continuar con la lectura.

Actualidad

Últimamente, se ha retomado el tema en distintas conferencias de primer nivel y en centros de capacitación una técnica conocida como el BitLocker Bypass, como su nombre lo indica, consiste en saltar el cifrado de disco realizado con una aplicación nativa dentro de Windows. Años atrás, un grupo de investigadores de DolosGroup, W/labs y otros researchers tomados como referencia en este post se hicieron las mismas preguntas respecto a que se puede hacer con una notebook de nuestra flota que fue extraviada, pero antes de entrar en los detalles de sus investigaciones vamos a repasar algunos conceptos.

TPM

El Trusted Platform Module es un chip criptográfico complejo, que se encuentra en el motherboard de nuestros dispositivos e implementa un conjunto predefinido de operaciones criptográficas, almacenamiento seguro de claves y un conjunto de registros de configuración de la plataforma (PCR por sus siglas en inglés).

Una de las ventajas del TPM es la capacidad de liberar un fragmento de un secreto después de que se verifique la integridad de la plataforma. Esta verificación se logra midiendo cada paso en un proceso de arranque y almacenando las mediciones en PCR. El secreto se puede bloquear a los valores específicos de PCR, y solo se puede liberar si el estado actual de las PCR coincide con esos valores originales.

En resumen el TPM no expondrá las claves a menos que esté en un estado de arranque esperado (los registros PCR tienen un conjunto específico de valores en ellos).
Es por esta implementación que por ejemplo no podríamos bootear una imagen live de Ubuntu para simplemente romper el encriptado con un comando en el TPM. Para más información pueden visitar microsoft hardware-security tpm-fundamentals. BitLocker utiliza TPM para “sellar” su Volumen Maste Key (VMK), y la clave solo se puede exponer si el proceso de arranque no ha sido manipulado.

Por lo general, el chip TPM es un módulo discreto en la placa base, y se comunica con la CPU a través del Platform Controller Hub (PCH) o un puente sur. La especificación TPM describe las tres interfaces de comunicación diferentes: LPC, SPI e I2C particularmente hablaremos de uno durante el post. Por otro lado, existen dos tipos diferentes de encapsulados permitidos para TPM, que son TSSOP-28 (a la izquierda) y QFN-32. Este último al ser casi BGA hace más difícil que nos conectemos a sus pines, pero no imposible implementando distintas técnicas.



Imagen de Referencia de un chip TPM TSSOP-28 de un Surface 3


BitLocker

BitLocker es la aplicación nativa que utiliza Windows para cifrar unidades(discos rígidos). A partir de Windows 10 versión 1511, BitLocker utiliza el algoritmo de cifrado AES-XTS para cifrar todo el volumen. De forma predeterminada, la longitud de la clave es de 128 bits, pero también se puede configurar para usar una clave de 256 bits. Los datos se cifran utilizando la clave de cifrado de volumen completo (FVEK). El FVEK, a su vez, está encriptado con la clave maestra de volumen (VMK). El VMK está cifrado por múltiples protectores.


Uno de ellos es el TPM que vimos anteriormente, y el otro es la clave de recuperación. Todo esto existe para que si un atacante tiene acceso físico al dispositivo, no pueda arrancar el portátil en una distribución live de Linux (o eliminar la unidad) y acceder a sus datos con alguna técnica forense. Cuando se habilita BitLocker en su configuración predeterminada, no se requiere ninguna interacción adicional del usuario en el arranque. Esto se debe a que el chip TPM solo se utiliza para descifrar el VMK. La idea detrás de esto es que si el dispositivo es capturado, y el atacante no conoce su contraseña de inicio de sesión, no pueda acceder a la información ni retirando la unidad. Cualquier modificación en la Bios o en el código del gestor de arranque cambiará los valores del PCR, y el TPM no desencriptará el VMK.


Protocolo SPI

La interfaz periférica en serie (SPI) es un protocolo de comunicación en serie síncrona que admite la comunicación dúplex completa con frecuencias de Clock (SCLK) de alta velocidad. Utiliza la arquitectura maestro-esclavo, donde el dispositivo maestro siempre inicia la comunicación. El bus SPI consta de cuatro cables.


Se pueden conectar varios dispositivos esclavos al mismo bus SPI. Sin embargo, en esta situación, cada dispositivo esclavo requiere su propia línea SS, como se muestra a continuación.


Para capturar las señales SSX se necesita un analizador lógico que pueda capturar varias señales simultáneamente según la cantidad de dispositivos esclavos. La frecuencia de muestreo mínima depende de la velocidad utilizada en el bus. El estándar TPM define que será compatible con el rango entre 10 y 24 MHz. Sin embargo, el estándar también establece que se podrían admitir frecuencias de SCLK más rápidas. Hay que tener en cuenta que debemos usar al menos una frecuencia de muestreo cuatro veces más rápida que la velocidad que es utilizada en el bus por lo que recomendamos un analizador lógico de 100 MHz de mínima para realizar esta tarea lo que podría ser algo costoso.


Foto de W/Labs en donde encontramos una Dell Latitude E5470 junto a un analizador lógico Saleae Logic Pro 8, que es capaz de grabar cuatro señales de hasta 100 MHz. Conectados a un SOIC-8 que permite una rápida y fácil forma de conectar las sondas, todo el proceso de captura se puede realizar en menos de un minuto.

Prueba de Concepto

El equipo de DolosGroup recibió una notebook Lenovo pre configurada de forma segura según la organización a la que pertenecía.

No se contaba con ninguna información sobre este dispositivo, sin credenciales de prueba, sin detalles de configuración, y en ella se estaban siguiendo muchas de las mejores prácticas como las recomendadas al comienzo del post, imposibilitando muchos ataques conocidos.

Por ejemplo:

 • Ataques pcileech/DMA fueron bloqueados porque la configuración del BIOS VT-d de Intel estaba habilitada.

 • Todos los ajustes de la BIOS se bloquearon con una contraseña.

 • El orden de arranque de la BIOS se bloqueó para evitar el arranque desde USB o CD.

 • Secureboot estaba habilitado.

 • El bypass de autenticación de Kon-boot no funcionó debido al cifrado completo del disco.

 •  LAN turtle y otros ataques de respuesta a través de adaptadores Ethernet USB no devolvieron nada utilizable.

 • El SSD estaba encriptado en disco completo (FDE) utilizando BitLocker de Microsoft, protegido a través del módulo de plataforma de confianza (TPM).

Frente a esta situación se decidió realizar un BitlockerBypass trabajando directamente sobre el chip TPM en este caso con un encapsulado del tipo QFN-32 o similar:


Como vemos en la datasheet este chip se comunica con la CPU utilizando el protocolo de SPI que describimos anteriormente:


Lo que fue confirmado posteriormente con el esquemático de la notebook:


Como verán el SPI es un protocolo de comunicación extremadamente común, prácticamente todo el hardware de consumo masivo lo utiliza. Debido a su simplicidad, no hay opción de cifrado para SPI. Cualquier cifrado debe ser manejado por los propios dispositivos.

Aun en la actualidad BitLocker no utiliza ninguna característica de comunicación cifrada del estándar TPM 2.0, lo que significa que cualquier dato que salga del TPM lo haga en texto plano, incluida la clave de descifrado para Windows. Si podemos obtener esa clave, deberíamos poder descifrar la unidad, y en el mejor de los casos teniendo en cuenta la buenas prácticas implementadas en esta notebook, obtener acceso a la configuración del cliente VPN y tal vez obtener acceso a la red interna de la organización.

Muchas veces los chips SPI comparten el mismo "bus" con otros chips que lo implementan. Es una técnica que los diseñadores de hardware utilizan para simplificar las conexiones, ahorrar costes y facilitar la solución de problemas/programación. Por esto mismo si el TPM es BGA se recomienda buscar otro integrado en donde la conexiones sean más fáciles de hacer y sin la necesidad de soldar, en este caso se encontró que el TPM compartía un bus SPI con el chip CMOS, que definitivamente tenía pines más grandes. De hecho, el chip CMOS tenía casi el tamaño de pin más grande que se puede encontrar en las placas base estándar, era un SOP-8 (también conocido como SOIC-8).


Al igual que el equipo de researchers mencionado anteriormente y siendo el que recomendamos desde BASE4 se utilizó un analizador lógico Saleae



Fotografias de DolosGroup

Un atacante con conocimientos precisos o preparado previamente podría usar un clip SOIC-8en lugar de sondas individuales ahorrando muchísimo tiempo en un contexto de ataque real.

Una vez conectadas las sondas, se enciende la notebook y se registra cada byte del bus SPI. En algún lugar de los miles y miles de bits se estaba enviando una clave de descifrado de BitLocker, el problema ahora era encontrarla.

Se utilizó la herramienta de Henri Nurmi para extraer la clave automáticamente. Como pueden observar se muestra una captura de pantalla de un analizador de alto nivel (HLA) y la clave obtenida:


Practica Ofensiva

Una vez obtenida la clave simplemente podemos desencriptar la unidad colocándola en un adaptador y utilizando herramientas como Dislocker para descifrar el FVEK y luego montar la unidad, o como es recomendable en este tipo de prácticas ofensivas/forenses crear una imagen de la unidad para trabajar cómodamente sin alterar el original:


Creada la imagen se comenzaron los pasos para la obtención de datos como hashes de contraseñas, texto plano o credenciales codificadas, archivos confidenciales expuestos, etc. Al tratarse de un PC para la POC no se encontró nada útil ni se obtuvo ninguna credencial de ningún tipo, ya que esta no era una notebook de un empleado real con años de archivos.

Sin embargo, se encontró el cliente VPN en uso: Global Protect (GP) de Palo Alto. Este tiene una "característica" interesante llamada túnel de preinicio de sesión:

El pre-inicio de sesión es un método de conexión que establece un túnel VPN antes de que un usuario inicie sesión. El propósito del pre-inicio de sesión es autenticar el punto final (no el usuario) y permitir que los scripts de dominio u otras tareas se ejecuten tan pronto como el punto final se encienda.

Si bien esta “característica” es ideal para que el equipo de IT gestione sus endpoints. También es una forma de acceder por VPN sin conocer credenciales.

En teoría, si usáramos de forma virtualizada la imagen creada anteriormente podríamos implementar Event Triggered Execution: Accessibility Features, para poder acceder al túnel VPN sin necesidad de una credencial. Dando por hecho que tendríamos acceso de escritura a todo el sistema de archivos, prácticamente podríamos hacer cualquier cosa, incluyendo reescribir archivos de drivers para malware a nivel de Kernel o proxy DLL privilegiadas para simplemente agregar cuentas. Pero volviendo a la referencia anterior de Mitre los pasos son realmente simples:

 • Copiar C:\Windows\System32\Utilman.exe a Utilman.exe.bak
 • Copia C:\Windows\System32\cmd.exe A Utilman.exe
 • Pulsa Windows + U en la pantalla de inicio de sesión

Con el BackDoor activo, solo tendríamos que montar la unidad. Para bootear correctamente una imagen cifrada de Windows en una máquina virtual, se debe crear un archivo VMDK personalizado en el cual no entraremos en detalle (puede buscar más info en las referencias). Ahora, con ese VMDK y el backdoor, creamos la máquina virtual, la arrancamos y pulsamos Windows + U en la pantalla de inicio de sesión.


Se logra visibilizar: “GlobalProtect Status: Connected”


Para que esto funcione, la autenticación de la VPN se realiza a través de un certificado adjunto a la cuenta del ordenador. Dado que cada cuenta de ordenador tiene privilegios muy básicos en Active Directory, podemos ejecutar comandos básicos de SMB dentro del dominio. Consultamos al controlador de dominio para varios tipos de información de dominio, como usuarios, grupos, sistemas, etc. También podríamos enumerar y ver el contenido de los archivos en los recursos compartidos internos de SMB:


También podríamos utilizar el acceso de esta cuenta de ordenador como plataforma para lanzar ataques internos y escalar lateralmente. Para demostrar que se tenía acceso de escritura a un servidor, se eligió un servidor de archivos interno online. La POC consistía en escribir un archivo en ese servidor y volver a leerlo para probar el acceso de lectura/escritura.


La acción de "Scanner" es una gran opción para un atacante, por ejemplo, Ataques LNK, PDF troyanos, etc. En este punto, habíamos obtenido acceso a la red interna, privilegios básicos en Active Directory y acceso a archivos compartidos internos, más que suficiente para comenzar a comprometer toda una organización desde una notebook olvidada o hurtada por más que esta siga todas las buenas prácticas.

Conclusión

Para mitigar este ataque en lugar de usar solo TPM configurado por defecto, se debe usar con alguno de los siguientes ítems:

 • TPM con PIN
 • TPM con clave de inicio
 • TPM con clave de inicio y PIN

En el modo TPM con PIN, el TPM requiere un código PIN adicional antes de que se desencripte el VMK como vimos en el diagrama de arquitectura. Si bien la clave se puede obtener del bus incluso si se utiliza el código PIN, el atacante debe ser capaz de obtenerla en el instante justo en el que se introduce el PIN.

Si los usuarios sin privilegios pueden acceder a las claves o protectores de BitLocker, se podría realizar una escalada de privilegios locales (LPE) modificando el contenido del volumen. Por lo tanto, este ataque permite un LPE fácil. Vale la pena señalar que se aplica el mismo LPE si los usuarios conocían sus claves de recuperación. Una clave de inicio añade una capa adicional donde el VMK se puede descifrar solo si se presentan tanto el TPM como la clave de inicio. La clave de inicio se puede almacenar en un dispositivo extraíble, por ejemplo, una memoria USB o Dongle para mayor seguridad. Por otro lado es recomendable seguir los que nos propone Microsoft en el siguiente link:

https://learn.microsoft.com/es-mx/windows/security/operating-system-security/data-protection/bitlocker/bitlocker-countermeasures

Otros links de interés:

1.https://earthweb.com/operating-system-market-share/
2.https://earthweb.com/tech-industry-statistics/
3.https://learn.microsoft.com/es-es/windows/security/hardware-security/tpm/switch-pcr-banks-on-tpm-2-0-devices
4.https://learn.microsoft.com/es-es/troubleshoot/windows-client/windows-security/decode-measured-boot-logs-to-track-pcr-changes
5.https://www.st.com/en/secure-mcus/st33tphf20spi.html
6.Disobey 2018 - All your encrypted computer are belong to us - Tomi Tuominen & Timo Hirvonen