Incident Response, Security and Forensics"

.

miércoles, 10 de junio de 2009

Detectando ficheros con Truecrypt

Hola lectores,

Uno de los objetivos que nos encontramos en una análisis forense es la búsqueda de datos relevantes que puedan influir en la obtención de unas conclusiones perfectas. Por ejemplo si se trata de búsqueda de ficheros de pornografía infantil, es tan importante la búsqueda de ficheros con imágenes y vídeos (prueba), como de los sitios web y accesos que se han realizado.(posible evidencia)

Por otro lado, el malo, el cibercriminal o pederasta en la red, intentara por todos los medios poner medidas anti-forensics, como por ejemplo el borrado del historial de navegación, borrado de log's de acceso o desinstalación de programas, todo ello es cuestionable y evidentemente dado a la investigación.

Es evidente que estas personas cada vez están más informadas y empiezan a utilizar la tecnología de forma mas profesionalizada, con el objeto de no ser encontrados. Tiempos atras Bruce Schneier, realizó el siguiente articulo estremecedor.

Independientemente, una de las caracteristicas que hacen complicado el análisis forense son la utilización de algotimos criptográficos con objeto de cifrar contenido relevante. Una de las peores cosas que nos podemos encontrar en un análisis son las siguientes:

  • Particiones cifradas
  • Discos y dispositivos 'pendrives' cifrados
  • Ficheros cifrados
  • Ficheros con contraseñas
Si nos encontramos en esta tesitura, la cuestión se hace muy difícil, dado que las técnicas de ocultación se están haciendo cada vez más extensibles y sencillas de utilizar.

Cuando has buscado sin éxito y cuando te has cansado de ver que las evidencias 'flojean' o no son lo suficientemente concluyentes, es hora de pensar, que a lo mejor los ficheros están eliminados permanentemente o simplemente están cifrados. Si nos vamos a más, el malo con unas pocas de instrucciones podrá utilizar técnicas de steganografia, por lo que lo complica mucho más de cara al investigador.

¿Como se detecta un contendor con TrueCrypt?

Lo peor de todo radica en su detección, ¿como lo detectamos?, esta pregunta, es harta compleja aunque no del todo imposible, tan difícil será la detección, como romper el cifrado o contraseña de estos ficheros.

Veamos algún caso con TRUECRYPT:

Hasta ahora me he visto imposibilitado de detectar ficheros cifrados con truecrypt, por el motivo anteriormente descrito, la imposibilidad de saber que ficheros son.

Hace algún tiempo sabía que los ficheros creados con truecrypt se basan en múltiplos de 512 bytes, utilizando en el contenido del fichero datos aleatorios. Con estos patrones se podrían buscar ficheros de estas características, aunque el resultado sería con muchos falsos positivos.

En la prueba de concepto he creado una partición cifrada en un pendrive con truecrypt y cuatro ficheros, tres de ellos con truecrypt (dos con formato 'hidden' y uno normal) y uno desde linux, utilizando datos aleatorios. Los nombres y formatos son los siguientes:

Con Truecrypt:

Partición cifrada --> No hidden

metallica.mp3 --> Hidden
metallica_europe.mp3 --> Hidden
acdc.mp3 --> No hidden

Sin Truecrypt, con Linux y este comando:

cat/dev/urandom>acdc_europe.mp3

acdc_europe.mp3 --> Datos aleatorios

Nota: Para su creación me refiero al manual de uso, o al articulo realizado por los amigos de Security By Default, dado que toda su explicación excede de este artículo.

Para la detección he utilizado un editor hexadecimal y dos herramientas, una comercial (File investigator File) y otra de descarga gratuita (TChunt), al parecer y según sus autores detectan este tipo de contenedores basados en Truecrypt.

Para la detección de la partición USB-PENDRIVE, ha resultado muy sencilla, hay una cadena de identificación en el primer sector del disco duro que contiene estas palabras TrueCrypt boot loader. La imagen lo dice todo:



Posteriormente ejecutamos FIF, y como vemos este es el resultado:



















Encuentra con detalle (propietarios, metadatos, timestamp) los ficheros creados con Truecrypt y como falso positivo el creado en Linux, al cual determina que es también de truecrypt.

Si a continuación pasamos el programa de libre descarga, vemos que este es el resultado:













¡¡ Detecta todos los ficheros, incluido el creado desde Linux como contenedores de Truecrypt !!, ademas esta utilidad no da detalles, simplemente deja a decisión del analista eliminar los falsos positivos.

CONCLUSIONES:

Como vemos ambas soluciones encuentran ficheros con Truecrypt, aunque deja mucho de desear como solución perfecta, dado que el número de falsos positivos podría ser muy grande. No obstante es lo que hay y como tal nos puede ayudar a determinar si en un equipo se encuentran ficheros con contenedores basados en Truecrypt.

Una vez encontrados estos ficheros, habría que romper el cifrado, pero amigos esto es otro cantar...

3 comentarios:

Mmm ... y si hacemos un volumen oculto de Truecrypt escondiéndolo en otro volumen (como dicen en su web), ¿también lo detecta?.

Antonio Sanz (empezando a comentar y a dar mal en general)

Hola Antonio,

Me alegro de estes por estos lares.

Aunque carezca de interés para el análisis (que no tu pregunta) dado que es complejo si no obtienes la contraseña o rompes el cifrado, he probado a realizar la prueba de un contenedor oculto en otro contenedor, pero con un añadido más, he metido el contenedor resultante (vaya lío) de truecrypt en un ZIP y estas son las conclusiones:

FIF: Detecta el primer contenedor y no el segundo. El ZIP no lo identifica como TrueCrypt, pero ve que hay un fichero con cifrado AES (el que viene por defecto con truecrypt)

TCHunt: Detecta el primer contenedor y no el segundo. El ZIP, lo pasa por alto, no se entera.

De todas formas, recuerda que para el malo hay soluciones como la Steganografia y no se complica tanto.

Yo veo más adecuado usar una partición normal y dentro un fichero truecrypt que se pueda montar y dentro lleve lo que quieras. De este modo un editor hexadecimal no te da pistas sobre qué es y este tipo de programas aunque lo detectan como Truecrypt nunca te van a dar nombres de ficheros. Lo he comentado aquí: http://vierito.es/wordpress/2009/06/14/reconociendo-volumenes-truecrypt/

Supongo que estos programas para detectar los ficheros truecrypt se basaran en 2 cosas, si el tamaño es múltiplo de lo que toca y si la información tiene suficiente entropía para asumir que es un fichero cifrado con un algoritmo de criptografía moderna, tipo AES, twofish, etc. A mi me detecta bastantes falsos positivos que son en realidad tan sólo ficheros comprimidos, que igual han sobrepasado ese 'umbral' de entropía.