lunes, 23 de junio de 2014

TrueCrypt - Tus archivos podrían no estar seguros


TrueCrypt se ha convertido en la herramienta de cifrado de datos a nivel local que más usuarios y empresas ha utilizado hasta la fecha. No obstante, en los últimos meses esta herramienta se ha visto envuelta en una nube de conspiraciones que han acabado con el proyecto. Si hoy en día entramos en su página web, veremos un cartel que nos anuncia:
"WARNING: Using TrueCrypt is not secure as it may contain unfixed security issues"

Seguido de una guía para migrar todo el contenido que tengamos en nuestro TrueCrypt hacia la plataforma de cifrado de Microsoft, BitLocker. La teoría de su caída que más peso ha tomado hasta la fecha es la existencia de backdoors en su código producidos por la N.S.A. y la auditoría realizada a dicha herramienta.

La Unidad de Auditoría y Consultoría de Seguridad TI de Abast Systems ha realizado una prueba de concepto para determinar hasta qué punto es posible acceder a datos encriptados en un ordenador ajeno. Para ello necesitaremos un ordenador en caliente (hibernado, suspendido, en funcionamiento) o una captura de la memoria ram, en caso de que el ordenador se haya apagado. Esta prueba no es posible realizarla si el ordenador se encuentra completamente apagado.

Con un análisis exhaustivo de una captura de RAM es posible detectar programas en funcionamiento, sesiones abiertas a memoria, conexiones establecidas y otro tipo de información que puede complementar o ayudar a detectar nuevas evidencias. Una de las herramientas más potentes para realizar esta tarea es el framework Volatility.

Figura 1 - Volatility descubre un TrueCrypt en uso

Figura 2 - Devicetree de Volatility muestra el contenedor

En las imágenes superiores se puede apreciar la existencia de la herramienta de encriptación de unidades TrueCryp. El alto nivel de seguridad que conlleva esta herramienta está reconocido internacionalmente. No obstante, el hecho de tener una captura de la memoria RAM puede ayudar a descifrar o, al menos identificar qué unidad es la que se encuentra cifrada.

Con el módulo volshell de Volatility abre una consola y se miran las propiedades del Device_object situado en la dirección de memoria 0x856f37a0, que es la que se ha devuelto en la imagen anterior.

Figura 3 - Propiedades del objeto situado en 0x856f37a0

Con estos datos ahora es posible mostrar todo lo que hay en esta parte de la memoria. Se mostrará 1416 (size) unidades de memoria, a partir del offset 0x856f37a0.

Figura 4 - Obtención del "container"/archivo encriptado: Mine

Ahora se intentará obtener la clave de desencriptación del archivo. El próximo paso necesitará de la ayuda del Driver_object del TrueCrypt, mostrado previamente a la imagen de las propiedades del Device_object.

Figura 5 - Información del driver_object

Para realizar esta tarea expulsaremos toda la memoria que hay desde la posición DriverStart hasta DriverStart + DriverSize. El problema de esto es que nos devuelve un trozo demasiado grande como para hacer búsquedas manualmente. Así que, automatizar el proceso restante usando herramientas como CryptoScan (con Volatily1.3), aeskeyfind o alguna más "user-friendly" como Elcomsoft Forensic Disk Decryptor.

Figura 6 - Ejemplo de extracción de keys AES

Con estas claves se permite descifrar el archivo previamente comentado (mine) y montarlo. De esta manera se puede acceder a su interior, y ver toda la información que creíamos tener guardada de manera segura.

No hay comentarios: