Parte: 9 — Forense digital y respuesta a incidentes · Fuente: Brian Carrier — File System Forensic Analysis ⏱️ Duración estimada: 130 min · Nivel: Avanzado
Entender la anatomía interna de NTFS y ext4 al nivel que permite hacer forense real: la MFT y sus atributos, marcas de tiempo, el $LogFile y $UsnJrnl en NTFS; inodos, journal y timestamps en ext4. Al terminar podrás reconstruir la historia de un archivo aunque haya sido borrado o manipulado.
Al finalizar, el alumno podrá:
$UsnJrnl y el journal de ext4 para reconstruir cambios.| # | Tema | Por qué importa |
|---|---|---|
| 1 | MFT y registros de archivo | Corazón de NTFS |
| 2 | Atributos $STANDARD_INFORMATION y $FILE_NAME |
Dos juegos de timestamps |
| 3 | Timestamps MACB | Reconstruyen actividad |
| 4 | $LogFile y $UsnJrnl |
Historial de cambios NTFS |
| 5 | Inodos y bloques en ext4 | Corazón de ext4 |
| 6 | Journal de ext4 (jbd2) | Cambios recientes |
| 7 | Archivos borrados y residuos | Recuperación de metadatos |
| 8 | The Sleuth Kit | Herramienta de análisis |
El sistema de archivos es una base de metadatos que relaciona nombres, identificadores, tiempos y bloques. «El archivo fue borrado» suele significar que la referencia fue liberada; contenido y metadatos pueden persistir hasta sobrescritura. Recuperar bytes no siempre recupera nombre, ruta ni tiempo.
NTFS usa registros MFT y atributos; ext4 usa inodos, extents y journal. Los cuatro tiempos MACB dependen del sistema, operación y herramienta, y pueden modificarse legítima o maliciosamente. Se expresan con zona horaria y procedencia. Journal y USN aportan historial parcial, no registro total. Toda conclusión debe separar presencia actual, rastro de metadato y contenido recuperado.
NTFS representa cada archivo o directorio mediante registros en la Master File Table. Los atributos pueden contener nombres, datos, tiempos y referencias; archivos pequeños incluso pueden ser residentes. Un objeto puede tener varios nombres o streams. El $STANDARD_INFORMATION y $FILE_NAME pueden conservar tiempos con historias diferentes, por lo que compararlos ayuda, pero una discrepancia no prueba timestomping sin contexto.
El USN Journal registra cambios seleccionados mientras exista retención; $LogFile apoya recuperación transaccional. Ninguno es auditoría completa de usuario. Se correlacionan con Event Logs, Prefetch o LNK. The Sleuth Kit permite enumerar estructuras y construir timelines; MFTECmd interpreta MFT y artefactos relacionados. La herramienta presenta campos: el analista explica su semántica y versión.
En ext4 el nombre vive en la entrada de directorio y el inode conserva metadatos y referencias a datos mediante extents. Borrar puede liberar la entrada y bloques; la recuperación depende de sobrescritura, journal, configuración y medio. El journal busca consistencia tras fallos, no preservar una historia forense exhaustiva. Montar una imagen con escritura puede reproducir operaciones del journal y alterar estado, por eso se analiza copia y se controla montaje.
MACB es una convención de análisis: Modified, Accessed, Changed y Birth/Creation cuando el sistema lo ofrece. ctime en Unix representa cambio de metadatos, no creación. Acceso puede estar reducido por opciones de montaje. Copiar, extraer o sincronizar altera tiempos de forma distinta. Se conserva valor original, zona y fuente; una timeline no mezcla significados como si fueran idénticos.
Cuando un archivo se elimina, pueden quedar tres tipos de evidencia: metadato que refiere al objeto, contenido recuperado por bloques y rastros en otros artefactos. Recuperar un PDF por carving no recupera necesariamente su ruta ni demuestra apertura. El diagrama converge en correlación precisamente para impedir esa conclusión apresurada.
$STANDARD_INFORMATION: atributo NTFS que incluye timestamps y otros metadatos. Característica: distintas operaciones y APIs pueden modificar sus tiempos; una discrepancia requiere corroboración.$FILE_NAME: atributo NTFS asociado a nombre y referencia de directorio que también contiene tiempos. Característica: compararlo con otras fuentes puede revelar inconsistencias, no probar por sí solo timestomping.$UsnJrnl: Update Sequence Number Journal, registra cambios en archivos. Característica: revela creaciones/borrados recientes.En NTFS, una entrada MFT liberada conserva nombre y atributos; el USN puede registrar una razón de cambio dentro de su ventana y Prefetch aporta una relación separada con ejecución. En ext4, el nombre estaba en la entrada de directorio y el inode en otra estructura; el journal puede contener transacciones de metadatos, pero no promete conservar el contenido completo. El mismo verbo «borrar» produce evidencias distintas.
El analista recupera bytes candidatos de ambos medios y registra offsets. En Windows puede relacionar contenido, MFT y USN; en Linux relaciona inode, directorio, journal y logs. Si el carving recupera el script sin metadatos, la conclusión es «contenido consistente con el script existió en estos bloques», no «el usuario lo ejecutó a esta hora».
El alumno explica dónde viven nombre, metadatos y datos en NTFS y ext4; interpreta MACB sin llamar creación al ctime de Unix; y distingue journal de auditoría. Debe producir una timeline con fuente y semántica por cada timestamp.
fls, istat, icat, mmls, fsstat, mactime.analyzeMFT.py, MFTECmd (Eric Zimmerman), UsnJrnl2Csv.debugfs, extundelete.Usa una imagen
.ddpropia (por ejemplo de un pendrive formateado en NTFS y otro en ext4).
bash
mmls caso001.dd
bash
fsstat -o 2048 caso001.dd
*):bash
fls -r -o 2048 caso001.dd
bash
istat -o 2048 caso001.dd 128
bash
icat -o 2048 caso001.dd 128 > recuperado.bin
bash
fls -r -m C: -o 2048 caso001.dd > bodyfile.txt
mactime -b bodyfile.txt -d > timeline.csv
bash
MFTECmd.exe -f "$MFT" --csv salida --csvf mft.csv
Compara los timestamps de $STANDARD_INFORMATION y $FILE_NAME para detectar timestomping.
8. En ext4, explora con debugfs:
bash
debugfs -R "stat <2>" imagen_ext4.dd
$SI y $FN en una MFT de ejemplo.icat y verifica su contenido.debugfs para listar los inodos borrados de una imagen ext4.A partir de una imagen NTFS propia donde borraste un archivo y alteraste deliberadamente sus tiempos, identifica las incoherencias en MFT y fuentes relacionadas, explica qué sostiene la manipulación conocida del laboratorio y recupera el contenido disponible del archivo borrado.
Criterio de aceptación: presentas (a) el archivo recuperado con icat, (b) una comparación $SI vs $FN que muestra la incoherencia de timestamps, y (c) una explicación de por qué esa incoherencia indica manipulación.
| Síntoma / mensaje | Causa y cómo arreglar |
|---|---|
fls no muestra offset correcto |
Falta -o con el sector de inicio de la partición. Sácalo de mmls. |
icat devuelve datos basura |
El inodo fue reasignado; los bloques ya se sobrescribieron. |
| Timestamps "imposibles" (futuro) | Timestomping o reloj alterado. Contrasta con $FN. |
extundelete no recupera nada |
ext4 limpió los punteros del inodo. Prueba carving (clase 214). |
MFTECmd no encuentra $MFT |
Debes extraer $MFT con FTK Imager primero. |
❓ ¿Por qué hay dos juegos de timestamps en NTFS?
Ambos atributos los mantiene NTFS bajo reglas y operaciones distintas; $FILE_NAME no debe tratarse como reloj inmune. Compararlos puede revelar una incoherencia que se explica con operaciones, journal y otras fuentes.
❓ ¿ext4 conserva archivos borrados? Con frecuencia quedan menos punteros útiles tras liberar el inodo. El journal puede aportar metadatos dentro de su ventana y el carving es una alternativa, aunque sobrescritura, TRIM, cifrado o fragmentación pueden impedir resultados útiles.
❓ ¿Qué es un archivo residente? Uno tan pequeño que sus datos caben dentro del propio registro de la MFT, sin ocupar clusters aparte.
❓ ¿El $UsnJrnl está siempre activo?
En Windows moderno normalmente sí. Es una fuente riquísima de creaciones, renombres y borrados recientes.
Clase 203 — Adquisición forense: discos e imágenes