La creación 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 metadatos que describen el sistema de archivos en sí. 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.
La extracción de datos de un archivo es el proceso de intentar recuperar archivos sin estos metadatos. Esto se hace analizando los datos en bruto e identificando de qué se trata (texto, ejecutable, png, mp3, etc.). Esto se puede hacer de diferentes maneras, pero la más sencilla es buscar la firma del archivo o los "números mágicos" que marcan el principio y/o el final de un tipo de archivo en particular. [1] Por ejemplo, cada archivo de clase Java tiene como sus primeros cuatro bytes el valor hexadecimal CA FE BA BE
. Algunos archivos también contienen pies de página, lo que hace que sea 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 se puede dividir en clústeres de 4 KiB cada uno. Cualquier archivo de menos de 4 KiB cabe en un solo clúster, y nunca hay más de un archivo en cada clúster. Los archivos que ocupan más de 4 KiB se distribuyen en muchos clústeres. A veces, estos clústeres son todos contiguos, mientras que otras veces están dispersos en dos o potencialmente muchos más llamados fragmentos , y cada fragmento contiene una serie de clústeres contiguos que almacenan una parte de los datos del archivo. Obviamente, los archivos grandes tienen más probabilidades de estar fragmentados.
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 forensemente importantes como correo electrónico, JPEG y documentos de Word es relativamente alta. Se encontró que la tasa de fragmentación de 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 Memon [3] presentaron un algoritmo eficiente basado en una heurística codiciosa y una poda alfa-beta para volver a ensamblar imágenes fragmentadas. Pal, Sencar y Memon [4] introdujeron la prueba de hipótesis secuencial 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 [6] que existe desde 2005 e inicialmente basada en Foremost. [7]
El tallado de archivos es una tarea sumamente compleja, con una cantidad potencialmente enorme de permutaciones para probar. Para 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 tallado de archivos de última generación utilizan técnicas estadísticas como pruebas de hipótesis secuenciales para determinar los puntos de fragmentación.
En la mayoría de los casos, cuando se elimina un archivo, se elimina la entrada en los metadatos del sistema de archivos, pero los datos reales siguen estando en el disco. La extracción de datos de archivos se puede utilizar para recuperar datos de un disco duro cuyos metadatos se eliminaron o resultaron dañados de alguna otra forma. Este proceso puede funcionar correctamente incluso después de formatear o volver a particionar una unidad.
El tallado de archivos se puede realizar utilizando software gratuito o comercial y, a menudo, se realiza junto con exámenes forenses informáticos o junto con otros esfuerzos de recuperación (por ejemplo, reparación de hardware) por parte de empresas de recuperación de datos . [8] Mientras que el objetivo principal de la recuperación de datos es recuperar el contenido del archivo, los examinadores forenses informáticos a menudo están igualmente interesados en los metadatos, como quién era el propietario de un archivo, dónde estaba almacenado y cuándo se modificó por última vez. [9] Por lo tanto, si bien un examinador forense podría usar el tallado de archivos para demostrar que un archivo alguna vez estuvo almacenado en un disco duro, es posible que deba buscar otra evidencia para demostrar quién lo puso allí.
Garfinkel [2] introdujo el uso de la validación rápida de objetos para reensamblar archivos que se han dividido en dos partes. Esta técnica se conoce como tallado de espacios entre bifragmentos (BGC). Se identifica un conjunto de fragmentos iniciales y un conjunto de fragmentos finales. Los fragmentos se reensamblan si juntos forman un objeto válido.
Pal [3] desarrolló un esquema de tallado que no se limita a archivos bifragmentados. La técnica, conocida como SmartCarving, hace uso de heurísticas sobre el comportamiento de fragmentación de sistemas de archivos conocidos. El algoritmo tiene tres fases: preprocesamiento, intercalación y reensamblado. En la fase de preprocesamiento, los bloques se descomprimen y/o descifran si es necesario. En la fase de intercalación, los bloques se ordenan según su tipo de archivo. En la fase de reensamblado, los bloques se colocan en secuencia para reproducir los archivos eliminados. El algoritmo SmartCarving es la base de las aplicaciones Adroit Photo Forensics y Adroit Photo Recovery de Digital Assembly.
Las instantáneas de la memoria volátil de las computadoras (es decir, RAM) se pueden tallar. El tallado de volcado de memoria se utiliza rutinariamente en la ciencia forense digital, lo que permite a los investigadores acceder a evidencia efímera. La evidencia efímera incluye imágenes y páginas web a las que se accedió recientemente, documentos, chats y comunicaciones realizadas a través de redes sociales. Por ejemplo, LiME [10] se puede utilizar junto con Volatility [11] para realizar dicha tarea. Si se utilizó un volumen cifrado ( TrueCrypt , BitLocker , PGP Disk ), se pueden extraer claves binarias para contenedores cifrados y usarlas para montar instantáneamente dichos volúmenes. El contenido de la memoria volátil se fragmenta. Belkasoft desarrolló un algoritmo de tallado propietario para permitir el tallado de conjuntos de memoria fragmentada (BelkaCarving).