Sistemas de archivos y recuperación de datos borrados
Con el entorno y el procedimiento de adquisición ya resueltos, este módulo entra en el primer terreno de análisis real: qué pasa exactamente dentro de un sistema de archivos cuando algo se "borra", y por qué —salvo que se sobrescriba— casi nunca desaparece de verdad. Es el fundamento técnico sobre el que se apoyan la mayoría de los módulos siguientes.
- Entender qué ocurre realmente al borrar un fichero en NTFS y en ext4: qué se destruye y qué sobrevive.
- Conocer la estructura de la Master File Table (MFT) de NTFS y sus atributos principales.
- Conocer la estructura de inodos y journal de ext4.
- Distinguir espacio no asignado (unallocated space) de slack space, y por qué ambos esconden datos recuperables.
- Aplicar file carving para recuperar ficheros por su firma binaria, incluso sin metadatos del sistema de archivos.
- Usar Sleuth Kit/Autopsy, PhotoRec y Scalpel sobre una imagen forense.
Descarga el paquete de evidencia, descomprímelo y lee el LEEME.md antes de empezar. Verifica el hash según el módulo 2 antes de analizar nada:
SHA-256: be046074c7eaec76b130c3665eeeed534c341c09ea44599a43f31563c2a9c73c
Herramientas: Sleuth Kit (fls, icat)
⬇️ Descargar M03_RecuperacionDatos.zip Ver solución paso a paso →
1. Qué pasa realmente cuando "borras" un archivo
En casi ningún sistema de archivos de uso común borrar un fichero significa sobrescribir sus datos. Lo que ocurre es mucho más barato computacionalmente: el sistema operativo desvincula la entrada que apunta a ese fichero (la marca como libre en la papelera de reciclaje, o directamente en el sistema de archivos) y marca el espacio que ocupaba como disponible para reutilizar. El contenido real —los bloques de datos en el disco— sigue ahí, intacto, hasta que un fichero nuevo necesita exactamente ese espacio y lo sobrescribe.
2. NTFS por dentro: la Master File Table
NTFS (el sistema de archivos de Windows) organiza todo —ficheros, carpetas, metadatos, e incluso sus propios ficheros de sistema— en una estructura central: la Master File Table (MFT), el fichero $MFT. Cada entrada de la MFT ocupa típicamente 1024 bytes y describe un único fichero o carpeta mediante una serie de atributos:
| Atributo | Qué contiene |
|---|---|
$STANDARD_INFORMATION | Marcas de tiempo (creación, modificación, acceso, cambio de MFT — las "MACB"), permisos, flags. |
$FILE_NAME | Nombre del fichero y una segunda copia de las marcas de tiempo, usada para detectar manipulación (ver módulo 19, anti-forense). |
$DATA | El contenido del fichero, si es pequeño (resident, embebido en la propia entrada MFT), o un puntero a los clústeres donde vive el contenido (non-resident), si es grande. |
Cuando se borra un fichero en NTFS, su entrada en la MFT se marca como libre (un flag cambia de "en uso" a "libre"), pero el resto de la entrada —nombre, marcas de tiempo, puntero a los datos— normalmente permanece intacto hasta que esa entrada concreta se reutiliza para otro fichero nuevo. Esto es lo que permite que una herramienta como Sleuth Kit liste ficheros "borrados" por su nombre original, con sus marcas de tiempo originales, mucho después del borrado.
3. ext4 por dentro: inodos, superbloque y journal
ext4 (habitual en Linux) separa los metadatos del contenido de forma distinta a NTFS: cada fichero tiene un inodo (una estructura con permisos, propietario, marcas de tiempo y punteros a los bloques de datos), y los directorios son, en esencia, listas que asocian nombres de fichero a números de inodo.
| Estructura | Qué aporta a la recuperación |
|---|---|
| Superbloque | Metadatos globales del sistema de archivos: tamaño, versión, estado. |
| Tabla de inodos | Un inodo por fichero; al borrar, el inodo se marca libre pero su contenido (incluidos los punteros a bloques en ext2/ext3; en ext4 con extents es más limitado) puede seguir siendo legible un tiempo. |
| Journal | Registro de las operaciones de escritura recientes, pensado para recuperación ante fallos del propio sistema de archivos; a veces conserva restos de metadatos de ficheros recién borrados o modificados. |
Una diferencia práctica importante: en ext4, al borrar un fichero, el kernel suele poner a cero los punteros a bloques del inodo (a diferencia de ext2/ext3, donde sobrevivían). Esto hace que recuperar un fichero borrado por metadatos sea más difícil en ext4 que en NTFS o en ext2/ext3 — y es precisamente la razón por la que el file carving (punto 5) es la técnica que más se usa en sistemas Linux modernos.
4. Espacio no asignado vs slack space
| Concepto | Qué es | Qué puede contener |
|---|---|---|
| Espacio no asignado (unallocated space) | Clústeres que el sistema de archivos considera libres, no asignados a ningún fichero actual. | Contenido completo de ficheros borrados que aún no se han sobrescrito. |
| Slack space | El hueco sobrante entre el final real de los datos de un fichero y el final del último clúster que ese fichero ocupa (los sistemas de archivos asignan espacio en bloques completos, no byte a byte). | Restos de un fichero anterior que ocupaba ese mismo clúster, incluso si el fichero actual es mucho más pequeño. |
El slack space es especialmente útil cuando un atacante sobrescribe un fichero sensible con uno más pequeño para "limpiar" su rastro: el final del clúster puede seguir conteniendo fragmentos del fichero original.
5. File carving: recuperar sin metadatos
Cuando ni la MFT ni la tabla de inodos conservan ya una referencia útil al fichero borrado —porque la entrada se reutilizó, o porque el sistema de archivos está tan dañado que no se puede interpretar su estructura—, la única vía que queda es el file carving: recorrer el espacio no asignado byte a byte, buscando las firmas binarias (magic bytes) que marcan el principio y, a veces, el final de un tipo de fichero conocido.
| Tipo de fichero | Firma de cabecera (hex) |
|---|---|
| JPEG | FF D8 FF E0 |
| PNG | 89 50 4E 47 0D 0A 1A 0A |
25 50 44 46 (%PDF) | |
| ZIP / DOCX / XLSX | 50 4B 03 04 |
| GIF | 47 49 46 38 (GIF8) |
Una herramienta de carving busca estos patrones en bruto sobre toda la imagen y extrae lo que encuentra entre una cabecera y (si el formato lo define) un pie de fichero correspondiente, sin necesidad de que el sistema de archivos sepa que ese fichero existe.
6. Herramientas: Sleuth Kit/Autopsy, PhotoRec y Scalpel
| Herramienta | Enfoque |
|---|---|
| Sleuth Kit (TSK) / Autopsy | Interpreta la estructura del sistema de archivos (MFT, inodos) para listar ficheros existentes y borrados por nombre y ruta. Autopsy es la interfaz gráfica sobre TSK. |
| PhotoRec | Carving puro, ignora el sistema de archivos por completo; muy usado para recuperar fotos y documentos de tarjetas de memoria corrompidas. |
| Scalpel / foremost | Carving configurable por firmas definidas en un fichero de reglas; más control sobre qué tipos de fichero buscar. |
Listar ficheros borrados todavía presentes en la MFT con Sleuth Kit:
$ fls -r -d evidencia_caso03.dd
r/r 45123-128-1: informe_ventas_q3.xlsx (deleted)
r/r 45201-128-1: credenciales_backup.txt (deleted)
d/d 44980-144-2: DocumentosRecuperar un fichero borrado concreto por su número de inodo MFT:
$ icat evidencia_caso03.dd 45201 > credenciales_backup_recuperado.txtCarving puro con PhotoRec cuando la MFT ya no sirve de referencia:
$ photorec /d salida_carving/ /cmd evidencia_caso03.dd fileopt,everything,enable
PhotoRec 7.2, Data Recovery Utility
Pass 1 - Reading sector 1234567/2000000
jpg: 42 files recovered
pdf: 7 files recovered
docx: 3 files recovered7. Límites del carving
- Fragmentación: si un fichero no está almacenado en bloques contiguos, el carving puro puede extraer solo el primer fragmento (y producir un fichero corrupto o incompleto).
- Falsos positivos: una firma de cabecera puede aparecer por casualidad dentro de datos que no son ese tipo de fichero, o un carving sin pie de fichero definido puede extraer de más.
- Sobrescritura parcial: si solo una parte del fichero se sobrescribió, el resultado es un fichero recuperado pero corrupto —a veces aún parcialmente legible, especialmente en formatos de texto plano.
- Sin nombre ni ruta original: el carving puro recupera contenido, no metadatos; no sabrás el nombre original del fichero ni dónde vivía, solo lo que dice su contenido.
Autoevaluación
- ¿Por qué borrar un fichero no lo elimina realmente del disco en la mayoría de los casos?
- ¿Qué diferencia práctica hay entre recuperar un fichero borrado en NTFS y en ext4, y por qué?
- Define con tus palabras slack space y pon un ejemplo de cuándo sería la única fuente de evidencia disponible.
- ¿Por qué un fichero recuperado por carving puro nunca lleva su nombre de fichero original?
- Tienes una imagen de un disco muy fragmentado. ¿Qué limitación del carving es más probable que te afecte, y qué harías primero antes de recurrir a él?