Analisis forense de sistemas de ficheros Microsoft exFAT (Extended File Allocation Table)

Hola,

Introducción

En Noviembre de 2006, con la introducción de Windows Embedded CE 6.0, Microsoft presentó un nuevo sistema de ficheros llamado Extended File Allocation Table, mas conocido como exFAT.

La introducción de exFAT en un sistema reducido como las versiones embedded tiene lógica, ya que exFAT pretende cubrir dos escenarios claramente relacionados en escenarios específicos: en primer lugar, ofrecer un sistema de ficheros que superase los limites de capacidad de almacenamiento de los sistemas FAT anteriores (FAT32 esta limitado a volúmenes de 2/8/16 TB, dependiendo del tamaño de clúster escogido, y exFAT incrementa el limite a 64 ZiB, existiendo también incrementos en los tamaños máximos de ficheros en los volúmenes) y en segundo lugar, ofrecer un sistema de ficheros que no contuviera la excesiva complejidad estructural de NTFS allí­ donde no hace falta, y donde lo único que hace es estorbar (por ejemplo, integrando la seguridad con un modelo mí­nimo de ACLs)

El soporte en los hermanos mayores de los productos Windows ha sido gradual y limitado por service packs hasta Windows 7. Asi, el soporte exFAT para usuarios de Windows XP y Windows Server 2003 solo se ofrece a los que dispongan de SP2 o superior, mientras que en Windows Vista debe tenerse Service Pack 1 o posterior. Hasta el punto que yo se, el soporte exFAT en Windows 7 es nativo en todas las versiones.

Desde el punto de vista del analista forense, la especificación no ha sido oficialmente publicada, siendo necesaria una licencia de la compañí­a si se quieren hacer implementaciones de exFAT (es un modelo de negocio en el que dichas licencias son adquiridas por terceras partes que quieran hacer uso de este sistema). Al primer problema le han dado y le siguen dando vueltas los analistas, mientras que el segundo es transparente para los usuarios de Microsoft y solventable con comodidad para los usuarios de derivados UNIX gracias a los esfuerzos de desarrollo de drivers compatibles que permiten acceder a estos medios.

Aunque hoy en dí­a la presencia de exFAT dentro del entorno del escritorio es testimonial (casi todo lo que hay en exFAT está relacionado con dispositivos portátiles como cámaras, teléfonos, etc.), es de prever que poco a poco se vayan subiendo al carro fabricantes de dispositivos que en la actualidad emplean versiones anteriores de FAT, y que quieran vencer las limitaciones de dichos sistemas. El objetivo de este articulo es documentar como incorporar el soporte exFAT a nuestros sistemas, y arrojar algunas notas sobre el análisis forense que derive de los mismos.

Añadiendo soporte exFAT a nuestro sistema

  • Si eres usuario de Windows, date una vuelta por http://support.microsoft.com/kb/955704. Dependiendo de tu sistema tendrás que cumplir ciertos requisitos, si bien al final la integración es sencilla. Una vez instalado el KB, notarás que exFAT aparece como una nueva opción en el formateo mediante menú contextual:

    exFAT forensics

  • Si eres usuario de Linux o Mac OS la vuelta te la tienes que dar por http://code.google.com/p/exfat/wiki/QuckStartGuide, donde comprobaras que es tremendamente sencillo instalar el soporte exFAT con un driver de calidad y de código abierto. Si se opta por usar el svn, la compilación e instalación son inmediatas. El montaje del medio lo veremos a continuación.

Montaje de almacenamiento exFAT en Linux

Una vez instalado el driver, montar el medio es tremendamente sencillo. Para ello, lo primero, es ejecutar dmesg y observar que nombre de dispositivo ha sido asignado al medio que queremos montar:

[ 6286.969517] sd 4:0:0:0: [sdd] 483328 512-byte logical blocks: (247 MB/236 MiB)
[ 6286.979824] sd 4:0:0:0: [sdd] Write Protect is off
[ 6286.979844] sd 4:0:0:0: [sdd] Mode Sense: 0b 00 00 08
[ 6286.979855] sd 4:0:0:0: [sdd] Assuming drive cache: write through

Enumeramos los dispositivos:

ls /dev/sdd*
/dev/sdd /dev/sdd1

Y montamos (he añadido las opciones loop y read only):

sudo mount.exfat-fuse /dev/sdd1 /mnt/exFAT -o loop,ro

Una vez montado el medio es trivial verificar si todo funciona como es debido:

ls /mnt/exFAT -la
total 16
drwxr-xr-x 1 root root 4096 1969-12-31 19:00 .
drwxr-xr-x 9 root root 4096 2010-11-16 07:47 ..
-rwxr-xr-x 1 root root 27 2010-11-16 12:03 sergio.txt
-rwxr-xr-x 1 root root 5 2010-11-16 07:10 test.txt

Ni falta hace que decir que desde Windows, un simple dir nos bastara para leer los contenidos del pendrive escogido para la prueba.

E:\>dir
Volume in drive E is PENDRIVE
Volume Serial Number is 92BB-0E0E

Directory of E:\

11/16/2010 12:03 PM 27 sergio.txt
11/16/2010 07:42 AM 5 test.txt
2 File(s) 32 bytes
0 Dir(s) 247,091,200 bytes free

El impacto de exFAT en las herramientas forenses usuales

El principal problema que deriva del uso de exFAT es que no es un sistema soportado por numerosas herramientas forenses tradicionales, dada la ausencia de una especificación completa disponible de modo público, tal y como se ha comentado. Poco a poco, herramientas comerciales forenses están ofreciendo soporte exFAT, como en el reciente caso de Accessdata FTK 3.2. De todos modos, hay que ser creativos y apañarnos con lo que está disponible, con lo que el análisis de exFAT no debe reducirse al imposible por el mero hecho de que las especificaciones no sean públicas: hay mucho que podemos hacer.

Imaginemos que obtenemos un pendrive para ser analizado. Lo primero, como de costumbre, realizamos la imagen:

sudo dd if=/dev/sdf1 of=/cases/exFAT/pendrive.img
483296+0 records in
483296+0 records out
247447552 bytes (247 MB) copied, 54.6146 s, 4.5 MB/s

A continuación montamos en solo lectura la imagen para trabajar en ella y enumeramos para comprobar que el montaje es correcto:

sudo mount -t exfat -o ro,loop /cases/exFAT/pendrive.img /mnt/exFATpendrive
FUSE exfat 0.9.3

ls /mnt/exFATpendrive/
sergio.txt test.txt

Hasta aquí­ nada fuera de lo común. Pero, ¿que ocurre si queremos emplear una herramienta tradicional de reconocimiento?

sudo fsstat pendrive.img
Cannot determine file system type

sudo mmls pendrive.img
Cannot determine partition type

Resulta fácil ver que algunas herramientas no reconocen el sistema de ficheros. Es el caso de las herramientas sleuthkit, que soportan perfectamente NTFS, EXT2, EXT3, iso9660, HFS, UFS1, UFS2, RAW, swap, FAT12, FAT16, FAT32, pero que no soportan exFAT.

En este caso siempre podemos recurrir a los métodos de siempre, como por ejemplo, realizar un carving sobre el medio, o extraer las cadenas de texto Unicode y realizar una inspección preliminar:

srch_strings -e l -t d pendrive.img >> strings_unicode.txt

cat strings_unicode.txt | grep sergio
344354 sergio.txt

Si tenemos dudas a la hora de identificar el sistema de ficheros, lo más recomendable es echar un vistazo mas detenido a la imagen con ayuda de un editor hexadecimal, lo que revelara los rasgos distintivos de exFAT. El mas rápido de localizar es el la cadena 45 58 46 41 54 20 del Volume Boot Record (VBR), que corresponde a «EXFAT «, y que se puede localizar desde 0x3 hasta 0x8, con una longitud de 0x6 bytes.

exFAT forensics

Hay otros rasgos distintivos que poco a poco han sido sometidos a ingeniería inversa y que deben ayudarnos a analizar el medio sin mucha dificultar. Los tenéis enumerados en este documento de SANS.

Resumen

Para el analista forense la presencia de medios exFAT provoca cambios drásticos en el enfoque. Las herramientas tradicionales no soportan este sistema de ficheros, con lo que el trabajo se dificulta. Aunque poco a poco se va dotando a otras herramientas de soporte exFAT, queda mucho para alcanzar un nivel equiparable, por ejemplo, al conocimiento de NFTS, o las versiones previas de FAT. Esta limitación no debe hacer sino que cambiemos el enfoque, y que tratemos de analizar los medios prescindiendo de las herramientas que no lo soportan, siendo lo más creativos posibles.

No debe tampoco alarmarnos el factor desconocimiento. Una vez instalado los drivers, la adquisición, la extracción de cadenas y el carving son factibles, y tampoco es de esperar que los sistemas operativos de escritorio y de servidor, que son los que normalmente presentan más dificultad para ser analizados desde el punto de vista forense, vayan a operar en exFAT. Si os encontráis medios exFAT, probablemente sean medios externos, donde la interacción del usuario es muy reducida en comparación a la que se produce en un sistema operativo.

Para el usuario, exFAT es una opción más si se quiere operar sin salir del mundo Microsoft, y si no se precisa un nivel de seguridad como el que puede proporcionar NTFS, pero que tiene mejor rendimiento que las versiones anteriores de FAT.

Un saludo,

4 comentarios sobre “Analisis forense de sistemas de ficheros Microsoft exFAT (Extended File Allocation Table)

Comentarios cerrados.