← Volver al blog

Por qué NTFS da a la forense mucho más de lo que FAT dio nunca

· 7 min de lectura

FAT y NTFS resuelven el mismo problema: rastrear qué clusters pertenecen a qué archivo. Los dos sistemas de archivos lo responden de manera muy distinta, y la diferencia es la razón completa por la que la forense moderna de Windows tiene el toolkit que tiene. En FAT, a menudo puedes probar que un archivo existió. En NTFS, normalmente puedes probar qué había dentro, cuándo se tocó, quién lo enlazó y qué le pasó después.

Cómo funciona FAT, en un párrafo

FAT mantiene una sola tabla donde cada entrada mapea un cluster ya sea al siguiente cluster del archivo, a un marcador de fin de cadena o al valor 0 (significando libre). Una entrada de directorio separada empareja un nombre de archivo con el primer cluster del archivo. Para leer un archivo, recorres la cadena. Para borrar uno, FAT pone a 0 cada entrada de cluster en la cadena y sustituye el primer carácter del nombre en la entrada de directorio por 0xE5. Los datos quedan ahí, pero la cadena misma queda destruida: puedes recuperar el primer cluster y un nombre parcial, pero el enlace a los clusters subsiguientes desaparece.

Esa última frase es el problema entero con la recuperación FAT. Las herramientas de recuperación FAT pueden encontrar fragmentos de archivos. No pueden reensamblarlos de manera fiable cuando el archivo estaba fragmentado por el disco. Los archivos secuenciales (cámaras, grabadoras de audio escribiendo un único WAV grande) vuelven; los archivos fragmentados (cualquier cosa Office, cualquier cosa escrita a lo largo del tiempo, cualquier cosa en un volumen medio lleno) vuelven parcialmente, si es que vuelven.

Cómo funciona NTFS

NTFS reemplaza la tabla de asignación con la Master File Table, un archivo donde cada otro archivo tiene al menos un registro de 1.024 bytes describiéndolo. Cada registro es un pequeño contenedor con atributos tipados: $STANDARD_INFORMATION, $FILE_NAME, $DATA, $INDEX_ROOT y los demás detallados en la referencia de atributos.

Críticamente, $DATA no apunta a "el primer cluster" y depende de una tabla separada para encadenar. Lleva una runlist completa: una secuencia de pares (LCN inicial, longitud) que cubre cada fragmento del archivo. Eliminar un archivo no rompe esa lista. La lista vive dentro del registro, y el registro persiste hasta que algo más reclame su slot.

Esta es la única decisión de diseño que cambió todo para la forense.

Lo que cambia para la forense

Los archivos eliminados conservan su runlist. Hasta que el slot de la MFT sea reutilizado, puedes leer la runlist de un archivo eliminado, ir a sus clusters (que el asignador puede no haber distribuido aún) y reconstruir los datos aunque el archivo estuviera muy fragmentado. FAT no puede hacer esto.

Ocho marcas de tiempo por registro, dos resistentes a la manipulación. $STANDARD_INFORMATION y $FILE_NAME llevan cada uno cuatro marcas de tiempo. SI se mueve en cada operación; FN es estable tras la creación. Los dos conjuntos se cotejan. Mira las cuatro marcas de tiempo de la MFT para la señal de timestomping que esto saca a la luz. FAT lleva una marca de creación, una marca de modificación (en formato DOS, con granularidad de dos segundos) y una fecha de acceso opcional. Sin cotejo, sin granularidad, sin defensa contra el timestomping trivial.

Datos residentes para archivos pequeños. Los archivos por debajo de unos 700 bytes de datos viven enteramente dentro de su registro MFT. Recupera el registro, recupera el archivo, sin tocar nunca el área de datos. Así es como un pequeño archivo de texto eliminado hace un mes y sobrescrito en los clusters de datos puede volver intacto. Mira datos residentes.

Hard links y ADS. Un solo registro MFT puede tener múltiples atributos $FILE_NAME (hard links) y múltiples atributos $DATA (el flujo primario más alternate data streams). La evidencia forense de estos es rica y FAT no tiene nada equivalente. ADS es un lugar donde los atacantes meten payloads. Los hard links son una forma de hacer que el mismo archivo aparezca en múltiples directorios con referencias padre distintas; útil para rastrear mecanismos de persistencia.

Diarios. El diario de cambios $UsnJrnl registra cada operación de metadatos: crear, eliminar, renombrar, sobrescritura de datos, con marcas de tiempo y razones. $LogFile registra el detalle a nivel transaccional. FAT no registra ninguno.

Descriptores de seguridad. $Secure aloja el almacén de ACLs; cada archivo referencia su ACL por ID. Relevancia forense: puedes probar quién tuvo acceso, y cuándo las ACLs cambiaron (SetSecurityInfo escribe una razón USN SECURITY_CHANGE). FAT no tiene concepto de permisos por archivo.

Reparse points. Symlinks, junctions, puntos de montaje, marcadores OneDrive, stubs de deduplicación y metadatos POSIX de WSL viven todos en atributos $REPARSE_POINT. FAT no puede representar nada de esto; las funcionalidades modernas de Windows que dependen de los reparse points simplemente no funcionan en volúmenes FAT.

El efecto agregado: si tienes la opción entre una imagen FAT y una imagen NTFS del mismo incidente, la imagen NTFS casi siempre responderá más preguntas. A menudo en un orden de magnitud.

Dónde aún te encuentras FAT

FAT no está muerto. Aún lo encontrarás en:

  • Memorias USB formateadas en fábrica (exFAT en las más grandes, FAT32 en las pequeñas).
  • La partición de sistema EFI en cada instalación UEFI de Windows (FAT32, en torno a 100-300 MB, contiene el Windows Boot Manager).
  • Tarjetas SD de cámaras, drones, dispositivos embebidos.
  • Controladores industriales antiguos y un largo coletazo de Linux embebido que aún por defecto usa FAT para almacenamiento extraíble.
  • Algunos volúmenes formateados en Mac compartidos con Windows (exFAT).

Para volúmenes de SO en cualquier máquina Windows moderna, estás mirando NTFS. ReFS aparece en algunas instalaciones Server y Storage Spaces pero no en la unidad de arranque. El artefacto que quieres es $MFT.

exFAT, brevemente

exFAT es el caso intermedio. Es lo que Microsoft usó para reemplazar FAT32 en volúmenes demasiado grandes para el límite práctico de 32 GB de FAT32. Tabla de asignación moderna con cadenas de clusters, pero sin diario, sin MFT, sin ADS, sin hard links, sin descriptores de seguridad. Desde una perspectiva forense está más cerca de FAT que de NTFS. Obtienes marcas de tiempo (más granulares que FAT), obtienes la cadena de clusters, y obtienes las entradas de directorio. No obtienes ninguna de las cosas que hacen que la forense de NTFS valga la pena.

Cuando ves exFAT en un dispositivo extraíble que importaba, tu instrumental cambia: PhotoRec y scalpel para carving de firma, fsstat y fls del Sleuth Kit para la poca estructura que hay, y un reconocimiento honesto en tu informe de que el conjunto de artefactos es limitado.

Una consecuencia práctica

A veces la gente pregunta por qué su pendrive USB formateado en FAT rindió tan poco comparado con el volumen NTFS del mismo incidente. La respuesta honesta es estructural: el sistema de archivos decidió qué evidencia dejar atrás años antes de que el incidente ocurriera. La elección de formato es ella misma una variable forense, y alguien acostumbrado a coger artefactos de escritorios Windows quedará marcadamente decepcionado con una tarjeta de cámara exFAT.

Si controlas la elección (línea base corporativa, medios de imaging de laboratorio), elige NTFS. Si no la controlas (respuesta a incidente en un objetivo que no especificaste), acepta las restricciones y cambia tu instrumental.

Lecturas adicionales

Recursos externos