Hola,
El avance de la tecnología es siempre un reto para las disciplinas que de ella dependen. El análisis forense no es una excepción, y aquí aplica igualmente el adaptarse o morir.
El tema que nos ocupa hoy son las unidades de estado sólido (SSD, Solid-State Drive) que están cada día más cerca de los usuarios. Siguen siendo suficientemente costosas (en torno a 2.5 – 3 Euros por GB) para que no sean un producto tan extendido como los discos de platos tradicionales (donde es frecuente encontrar productos en la franja de los 0,04 Euros por GB) pero es de prever que la tecnología de estado sólido baje fuertemente de precio en el futuro y que eventualmente se convierta en un producto con la misma popularidad y extensión de uso que los discos tradicionales hoy en día. El paulatino desarrollo de mayores y mejores chips de memoria NAND para la construcción de discos SSD, y el más que previsible abaratamiento de sus costes de fabricación parecen indicar que la tecnología SSD tiene mucho recorrido en este sentido, y que esto no ha hecho más que comenzar.
Prueba de la probable futura masificación de la tecnología SSD es la progresiva implementación de métodos de tratamiento específicos en los sistemas operativos. Por citar un ejemplo, Microsoft introdujo soporte especializado para SSDs en Windows 7, desactivando funciones específicas para solventar problemas de rendimiento en unidades tradicionales que ya no son necesarias cuando se emplean unidades de estado sólido, como la desfragmentación del medio, o las tecnologías de aceleración y precarga como prefetching/superfetching o ReadyBoost.
Una de los pilares básicos en el análisis forense es el análisis de los medios. Gran parte de los procesos forenses hoy en día giran en torno a la extracción de información de un medio determinado, como por ejemplo, una unidad de disco, con lo que los conceptos de tecnologías forenses y antiforenses se ha desarrollado en extremo en este campo. Uno de los conceptos fundamentales en las técnicas antiforenses es el borrado seguro de datos, que puede ser resumido como el conjunto de acciones a realizar sobre un medio determinado para impedir la recuperación posterior de los datos que contenía el medio antes de ser saneado.
El borrado seguro de datos ha sido tradicionalmente un campo relativamente estable. Cientos de maneras de hacerlo han surgido estos años, desde los métodos extremos como el borrado Gutmann hasta la simple pasada unitaria de ceros bit a bit, que es la que yo particularmente veo más sensata en la gran mayoría de escenarios de utilización de discos de platos. Este era un mundo tranquilo, hasta que llegaron las SSD.
El problema
Recientemente, como consecuencia de un trabajo de investigación realizado por el laboratorio de sistemas no volátiles de la UC San Diego, se diseñó un procedimiento mediante el cual es posible acceder directamente a los chips de memoria NAND de las unidades de estado sólido sin tener que pasar por la capa de traslación que correlaciona páginas de memoria flash lineal con las direcciones de bloques de disco, conocida como FTL (Flash Translation Layer). Los resultados aparecen en este gráfico:
Entender la tabla es sencillo: por cada 1000 MB de datos, es posible recuperar unos 100 MB de media, dependiendo del método, en cualquier unidad SSD, incluso habiendo aplicado un método de borrado seguro. Este estudio tiene una consecuencia inmediata: lo que tan bien funciona en discos de platos, no funciona en SSD. Los detalles del porqué son técnicamente algo complejos y están resumidos con todo lujo de detalles en el paper Reliably Erasing Data from Flash-Based Solid State Drives, para quien quiera ampliar detalles.
La razón de la permanencia de datos en el chip no es otra que las inconsistencias provocadas por las traslaciones entre bloques de disco y chip NAND a través de la capa FTL, que puede provocar que la unidad presente bloques vacíos que sin embargo tienen páginas de memoria asociadas repletas de datos. En estos casos, la FTL escribe nuevos datos en una ubicación distinta y actualiza sus índices con dicha localización, pero los datos originales permanecen donde estaban, estando únicamente desvinculados en la FTL y no físicamente eliminados en el chip. En cierta manera me recuerda a los sistemas EXT2/3, que años atrás no desvinculaban los bloques indirectos de datos al hacer operaciones en el sistema de ficheros, lo que permitía recuperar información en espacio no asignado.
¿Soluciones?
El problema definitivamente escapa a los usuarios en el sentido que las técnicas de borrado seguro tradicionales no garantizan la desaparición de los datos, tal y como hemos visto, y poco o nada podemos hacer para prevenir el comportamiento erróneo de las implementaciones FTL descritas.
Ante el escenario descrito parece que lo más sensato, si se quiere realizar un borrado seguro de una unidad SSD, es someterla a cifrado completo y luego realizar una limpieza de los datos y las llaves criptográficas, lo que solventaría los casos hipotéticos en los que alguien pueda recuperar datos directamente de los chips, puesto que la información estaría cifrada. Es por esto que lo más sensato para usuarios de discos SSD es, como punto de partida, realizar cifrados completos de disco nada más instalar el sistema operativo que los gobernará.
El borrado seguro ideal requerirá, cuando se quiera ejecutar, la eliminación de las llaves criptográficas utilizadas para el cifrado del disco y la sobreescritura de cada página de memoria del chip NAND. Habida cuenta que esto requerirá desmantelar la unidad para operar directamente sobre el chip si se quiere realizar un saneado completo en una pasada, podemos intentar que el número de datos remanentes perdidos en los mapeos de la FTL sea mínimo aumentando el número de pasadas. De acuerdo al estudio, el grueso de unidades probadas consiguió eliminar completamente los datos tras ejecutar dos pasadas, lo que abre un nuevo frente de problemas: cada pasada requirió entre 58 y 121 horas, lo que haría que 2 pasadas puedan hacer que el saneado de la unidad se vaya a las 220 horas (casi 10 días) lo que provoca que el método sea inviable en muchos escenarios.
A modo de resumen estas reglas pueden hacer que se minimice el riesgo de sufrir recuperaciones no deseadas de nuestros discos de estado sólido:
- Para todo los casos, cifrar el disco nada más instalar el sistema operativo. Por ejemplo, con TrueCrypt.
- Si se quiere reutilizar el disco sin cambiar de propiedad, un formateo convencional o una pasada simple de ceros es suficiente.
- Si se quiere reutilizar el disco cambiando de propiedad, por ejemplo, porque vamos a regalarlo o venderlo, realizar dos pasadas con un método seguro. Se puede utilizar alguno de los métodos presentes en DBAN.
- Si se quiere desechar el disco, los métodos de desmagnetización no sirven en las SSDs. Recurrid a un servicio de gestión de medios especializado, o desmantelad la unidad y destruid físicamente los chips NAND. Aunque sea rústico, someter a martillazos una unidad es muchas veces la mejor manera de impedir la recuperación de datos :)
Un saludo,
Y que lo digas, siempre nos quedarán los métodos rústicos (martillo, ácido, electrocución, combustión, …).
Lo que no veo muy bien para los SSD es cómo se tarda tanto en escribir toda la capacidad del dispositivo, si se suponen mucho más rápidos que los discos convencionales. Se supone que dando 1, 2 o 3 pasadas sobreescribiendo toda la capacidad del dispositivo ya no quedarán elementos libres con espacio asignado previamente con información «útil». Los que se han currado el informe tendrán más datos, sin duda.
Un fichero lleno de ceros y unos de forma aleatoria llenando toda la capacidad debería de funcionar… de hecho, si el FS del dispositivo impone un límite por fichero siempre se podrían crear tantos ficheros como fueran necesarios con nombres aleatorios…
Pero supongo que eso ya lo han mirado porque es muy obvio.