Los SSD y el futuro del análisis forense
Durante muchos años, el uso de discos duros magnéticos para el almacenamiento de datos ha sido una constante que los analistas forenses podían aprovechar para realizar investigaciones obteniendo resultados fiables, basándose en los datos tanto existentes como eliminados del sistema de archivos, sin importar tanto el tiempo transcurrido desde su eliminación.
Sin embargo, con la introducción de los discos de estado sólido, de ahora en adelante SSD (Solid State Drives), los principios del análisis forense han cambiado de forma dramática. Se ha pasado del comportamiento predecible y una alta probabilidad de recuperación de los datos de los discos duros tradicionales a un panorama en el que entran en juego muchas variables y en el que nada puede ser dado por supuesto.
Adiós a la alta probabilidad de recuperación de datos en discos
¿Por qué decimos esto? La forma y tecnología con la que están diseñados estos dispositivos imponen muchas limitaciones, empezando porque los tipos de memoria utilizados tienen un número limitado de operaciones de lectura/escritura. Debido a esto, los SSD modernos utilizan un sistema inteligente que hace que el dispositivo escriba en distintos bloques de memoria de forma transparente al controlador, para que todos ellos sean accedidos el mismo número de veces y no haya bloques de memoria que queden inutilizables antes que otros.
Como problema añadido, algunos fabricantes integran chips que pueden almacenar un 25% más de información de la que se anuncia. Estos bloques de memoria no son accesibles por el sistema operativo o por herramientas de software convencionales, lo cual hace que el borrado seguro no sea tan seguro como para alcanzar esas áreas, lo que puede dejar información dispersa por el soporte evitando que se cumplan los requisitos de borrado seguro de organismos gubernamentales o fuerzas de seguridad.
Debido a que la reubicación de bloques de información se hace de forma transparente al controlador y al sistema operativo, ninguno de ellos sabe cuáles son los bloques ocupados o libres (con información ya eliminada), por lo que en el momento de escribir nueva información, se tendría que comprobar el estado de los bloques y, en el caso de poder ser reutilizados, borrar la información contenida y escribir la nueva, lo que conllevaría una gran pérdida de rendimiento.
El garbage collection algorithm
Para resolver este contratiempo, los fabricantes han implementado el Garbage collection algorithm, un algoritmo que entra en acción a través de una interfaz que informa al controlador de los bloques en desuso por el comando TRIM. Este algoritmo trabaja en segundo plano eliminando la información de los bloques que están marcados como libres, permitiendo así que se vuelvan a utilizar de inmediato y evitando la pérdida de rendimiento de tener que eliminar el contenido en el momento en el que queremos escribir en los bloques libres. Una vez eliminada la información por este algoritmo, el contenido de estos bloques se pierde totalmente, siendo imposible su recuperación incluso por los métodos más avanzados.
Dado que esta operación se ejecuta en segundo plano por el controlador, el mero hecho de darle alimentación al disco haría que el algoritmo se pusiese en funcionamiento, modificando el contenido del dispositivo mientras esté conectado y, por consiguiente, la propia evidencia, lo que evitaría su validación por los métodos tradicionales.
Posibles soluciones
Ahora bien ¿existe alguna forma de impedir que esto suceda? La única forma de evitarlo es separando el controlador de la PCB, lo que nos conduciría a la ardua tarea de tener que extraer todos los chips de memoria de la placa, leerlos por separado e intentar reconstruir el complejo algoritmo de lectura/escritura del controlador por medio del uso de herramientas avanzadas.
Si bien existen excepciones en las que el comando TRIM no es soportado y por tanto la información no es eliminada por el propio dispositivo (SSD conectados por USB o FireWire, incluidos en sistemas RAID, volúmenes cifrados...), éstas no son muchas, por lo que nos hace plantearnos seriamente un método alternativo para realizar análisis forenses en dispositivos SSD.