Fundamentos Forenses sobre Datos Borrados

Para un usuario “normal” o promedio, el presionar la tecla “borrar” proporciona un sentido satisfactorio de seguridad. Con el clic de un ratón, se piensa los datos se han borrado por siempre, nunca más volviendo a aparecer. Contrariamente a la creencia de muchas personas, el presionar la tecla “borrar”, no hace nada con los datos por si mismo. El archivo no se va a ninguna parte. El “borrar” un archivo únicamente le indica a la computadora, el espacio ocupado por un archivo está disponible si la computadora lo necesita. Los datos borrados residirán allí hasta otro archivo lo sobrescriba. Esto puede tomar bastante tiempo de hecho.

El espacio asignado se refiere a los datos utilizados por una computadora, y sobre los cuales mantiene el control. Estos son todos los archivos factibles de ser accedidos y abiertos por Windows. El sistema de archivos vigila estos archivos, y registra diversa información sobre ellos. Por ejemplo, el sistema de archivos rastrea y registra la fecha y hora de cuando el archivo fue por última vez modificado, accedido y creado. El tema de los metadatos es amplio, e importante para el ámbito forense.

Reconstrucción de Archivos

El espacio no asignado en un disco duro puede contener evidencia valiosa. Extraer estos datos no es una tarea simple. El proceso se conoce como una reconstrucción o tallado de archivos, y puede ser hecho manualmente o con la ayuda de herramientas. Como se puede inferir, las herramientas aceleran el proceso. Los archivos son identificados en el espacio sin asignar por ciertas características únicas. Las cabeceras y pies de los archivos son ejemplos comunes de estas características o firmas. Las cabeceras y pies pueden ser utilizadas para identificar los archivos, como también marcar su inicio y final.

Discos de Estado Sólido (SSD)

Estos discos como su nombre implica, no son mecánicos. Utilizan muchos chips flash para almacenar los datos. Internamente la memoria flash no está dividida en sectores de 512 bytes, en lugar de esto está organizada en una malla. Una malla entera es denominada un bloque, y filas individuales constituyendo la malla se denominan una página. Las páginas tienen tamaños de 2k, 4k, 8k, 16k, o mayores. Cada bloque tiene entre 128 y 256 páginas. El tamaño del bloque típicamente varia entre 256KB (128 páginas * 2k por página), y 4MB (256 páginas * 16K por página).

Los SSDs sin embargo tienen una muy interesante limitación. Mientras pueden leer y escribir datos a nivel de página, únicamente son capaces de escribir a nivel de la página, si las otras páginas dentro del bloque están vacías. Y un SSD es únicamente capaz de borrar un bloque completo a la vez. Esta es la razón principal del porque los SSDs son lentos cuando escriben datos hacia bloques conteniendo datos. Deben almacenar los datos presentes en el bloque en su cache. Borrar el bloque, y luego escribir los datos antiguos y nuevos juntos hacia el bloque.

El recolector de basura se ocupa de este tema. Los datos son escritos hacia la memoria flash en páginas. Si los datos en alguna de las páginas del bloque no son necesarios, únicamente las páginas con buenos datos en el bloque son leídos y escritos dentro de otro bloque vacío previamente borrado. Luego las páginas libres restantes al no mover los datos obsoletos están disponibles para nuevos datos. Si el usuario o sistema operativo borra un archivo completamente, el archivo típicamente será marcado para ser borrado, pero el contenido actual del disco nunca será borrado. Debido a esto, el disco SSD no sabe puede borrar los bloques previamente ocupados por el archivo, de tal manera el SSD seguirá incluyendo dichos bloques en el recolectar de basura.

Esto se relaciona con el borrado de datos, por el soporte de algunos sistemas operativos al comando TRIM. TRIM es un comando SATA entregado por el sistema operativo hacia el SSD, para indicarle al controlador cuales bloques de datos ya no son necesarios como resultado del borrado de archivos. Cuando un bloque es reemplazado por el sistema operativo, como al sobrescribir un archivo, el SSD conoce el bloque original puede ser marcado como obsoleto o no válido, y no guardará estos bloques durante la recolección de basura. Cuando un archivo es borrado permanentemente o el disco es formateado, el sistema operativo envía el comando TRIM junto con los bloques no conteniendo datos válidos. Esto informa al SSD, los bloques en uso pueden ser borrados y reutilizados. Estos reduce los bloques necesarios a moverse durante la recolección de basura. El resultado de esto es los SSD tendrán más espacio libre permitiendo un mejor rendimiento. En lo referente al momento de la recolección de basura, este tiempo depende del fabricante, pero generalmente es tiempo de es de 30 minutos, luego de lo cual los archivos son irrecuperables.

Fuentes:

https://www.forensicswiki.org/wiki/File_Carving
https://www.forensicswiki.org/wiki/Solid_State_Drive_(SSD)_Forensics
https://www.raedts.biz/forensics/file-deletion-vs-file-wiping/

Sobre el Autor


Alonso Eduardo Caballero Quezada - ReYDeS
Instructor y Consultor en Hacking Ético, Forense Digital & GNU/Linux
Correo Electrónico: ReYDeS@gmail.com
Twitter: @Alonso_ReYDeS
LinkedIn: pe.linkedin.com/in/alonsocaballeroquezada
Facebook: https://www.facebook.com/alonsoreydes
Youtube: http://www.youtube.com/c/AlonsoCaballero
Resumen de mi CV: http://www.reydes.com/d/?q=node/1