tallado de archivos


El tallado de archivos es el proceso de volver a ensamblar archivos de computadora a partir de fragmentos en ausencia de metadatos del sistema de archivos .

Todos los sistemas de archivos contienen algunos metadatos que describen el sistema de archivos real. Como mínimo, esto incluye la jerarquía de carpetas y archivos, con nombres para cada uno. El sistema de archivos también registrará las ubicaciones físicas en el dispositivo de almacenamiento donde se almacena cada archivo. Como se explica a continuación, un archivo puede estar disperso en fragmentos en diferentes direcciones físicas.

El tallado de archivos es el proceso de intentar recuperar archivos sin estos metadatos. Esto se hace analizando los datos sin procesar e identificando qué es (texto, ejecutable, png, mp3, etc.). Esto se puede hacer de diferentes maneras, pero la más simple es buscar la firma del archivo o "números mágicos" que marcan el inicio y/o final de un tipo de archivo en particular. [1] Por ejemplo, cada archivo de clase Java tiene como primeros cuatro bytes el valor hexadecimal CA FE BA BE. Algunos archivos también contienen pies de página, por lo que es igual de sencillo identificar el final del archivo.

La mayoría de los sistemas de archivos, como la familia FAT y el Fast File System de UNIX , funcionan con el concepto de clústeres de un tamaño igual y fijo. Por ejemplo, un sistema de archivos FAT32 podría dividirse en grupos de 4 KiB cada uno. Cualquier archivo de menos de 4 KiB cabe en un solo grupo y nunca hay más de un archivo en cada grupo. Los archivos que ocupan más de 4 KiB se asignan en muchos clústeres. A veces, estos grupos son todos contiguos, mientras que otras veces están dispersos en dos o potencialmente muchos más, los llamados fragmentos , y cada fragmento contiene una cantidad de grupos contiguos que almacenan una parte de los datos del archivo. Obviamente, es más probable que los archivos grandes se fragmenten.

Simson Garfinkel [2] informó estadísticas de fragmentación recopiladas de más de 350 discos que contenían sistemas de archivos FAT , NTFS y UFS . Demostró que, si bien la fragmentación en un disco típico es baja, la tasa de fragmentación de archivos importantes desde el punto de vista forense, como correo electrónico, JPEG y documentos de Word , es relativamente alta. Se encontró que la tasa de fragmentación de los archivos JPEG era del 16 %, los documentos de Word tenían una fragmentación del 17 %, los AVI tenían una tasa de fragmentación del 22 % y los archivos PST ( Microsoft Outlook ) tenían una tasa de fragmentación del 58 % (la fracción de archivos que se fragmentan en dos o más fragmentos). Pal, Shanmugasundaram y Memón [3]presentó un algoritmo eficiente basado en una poda alfa-beta y heurística codiciosa para volver a ensamblar imágenes fragmentadas. Pal, Sencar y Memon [4] introdujeron la prueba de hipótesis secuenciales como un mecanismo eficaz para detectar puntos de fragmentación. Richard y Roussev [5] presentaron Scalpel, una herramienta de tallado de archivos de código abierto.

El tallado de archivos es una tarea muy compleja, con una cantidad potencialmente enorme de permutaciones para probar. Para hacer que esta tarea sea manejable , el software de tallado generalmente hace un uso extensivo de modelos y heurísticas. Esto es necesario no solo desde el punto de vista del tiempo de ejecución, sino también para la precisión de los resultados. Los algoritmos de creación de archivos de última generación utilizan técnicas estadísticas como la prueba de hipótesis secuenciales para determinar los puntos de fragmentación.