¿Es posible leer la memoria flash borrada?

En los discos duros, un "formato rápido" no hace nada a los datos reales en el disco, simplemente borra la FAT (tabla de asignación de archivos), que luego aparece como un "disco en blanco" para el usuario. Por lo tanto, es bastante fácil ignorar la FAT y leer esos datos. Aunque es complicado leer datos específicos , ya que no hay indicadores de dónde comienza y termina un archivo en particular. Algunos comandos de formato incluso guardan una copia de seguridad de la tabla FAT, y la restauración de esta copia de seguridad se manifiesta como la función "desformatear".

Un formato largo de un disco duro restablece la mayoría de los datos, lo que parecería eliminar la posibilidad de leer dichos datos, excepto por una característica inherente a los medios de almacenamiento magnético: la histéresis . Cuando se establece o borra un bit en un disco duro, el proceso no es 100.00% preciso, ya que los medios muestran histéresis. Por lo tanto, queda una pequeña cantidad de magnetismo residual de la operación anterior, y ciertas herramientas de software se pueden usar para escanear áreas del disco (muchas veces) para leer esa fracción de un porcentaje de magnetización latente y "recuperar" estos datos sobrescritos.

Pero, ¿cómo les va a las memorias no volátiles de estado sólido de hoy? ¿Memorias USB, SSD, NAND Flash? La única información relevante que pude encontrar sobre su seguridad y vulnerabilidad está en este artículo de Wikipedia que dice:

Además, los archivos eliminados en SSD pueden permanecer por un período de tiempo indefinido antes de que se sobrescriban con datos nuevos; Las técnicas o el software de borrado o trituración que funcionan bien en las unidades de disco duro magnéticas no tienen ningún efecto en las SSD, lo que compromete la seguridad y el examen forense.

¿Esperar lo? Estas parecen ser dos declaraciones completamente diferentes: la primera implica que los formatos largos nunca se realizan y, por lo tanto, Flash siempre es susceptible a la vulnerabilidad de mi primer párrafo. Esto no puede ser, ¿verdad? Como puedo "formatear mucho" una memoria USB o SSD, o indicarle a un uC que sobrescriba cada bloque de un NAND Flash. Y dado que la nivelación de desgaste coloca los bloques de forma algo aleatoria, supongo que los bloques que se sobrescriben también son bastante aleatorios. Entonces, quizás no se sobrescriba todo el archivo a tiempo, pero parece muy probable que parte de él.

También dice lo erasure or shred techniques do not work on Flashque encuentro difícil de creer. Siempre que se sobrescribieran todas las unidades de asignación, eso haría que los datos fueran completamente irrecuperables, ¿correcto?

Cómo se aplica esto a EE.SX: imagine una NAND Flash con varios pares de claves criptográficas. Si se abre el chasis, el dispositivo se borra, por lo que nadie puede "obtener" las llaves. Pero, ¿es suficiente un "borrado"?

Dicho esto, ¿son las memorias flash no volátiles susceptibles a cualquier tipo de técnica de recuperación de datos? ¿ Hay alguna histéresis de campo eléctrico para aprovechar para recuperar datos sobrescritos?

Me gustaría que fuera posible recuperar los datos sobrescritos. Significaría que tenemos un espacio de almacenamiento infinito.
@EugeneSh. No infinita, solo la posibilidad de almacenar/recuperar (con un riesgo/gasto y complejidad considerables) 2 o más veces la capacidad establecida/'normal'.
En realidad, para el punto de los dispositivos integrados, la historia es diferente (ya que toca brevemente el tema). Si tiene los dedos dentro de la fuente del sistema operativo (ya sea en realidad su propio micro-OS estilo bare-metal o un sistema operativo real), puede implementar cualquier número de borrados seguros en cualquier tecnología, dado el deseo de hacerlo. Por supuesto, la destructibilidad instantánea más fácil es una ruta de alimentación de DRAM intencionalmente rompible, o un chip EEPROM borrable HV. Apuesto a que todavía existen también.
La técnica de recuperación de bits de discos duros magnéticos es una interpretación errónea de un único informe antiguo. Aquí hay uno de los muchos que ha escrito más sobre por qué no funciona: digital-forensics.sans.org/blog/2009/01/15/…
Para el problema de las claves criptográficas, la mejor opción es probablemente una memoria RAM pequeña y de bajo consumo alimentada por una batería. Abra el estuche y se puede sobrescribir en microsegundos para borrarlo. Una pila de botón podría proporcionar la memoria durante 10 años. No desea simplemente cortar la alimentación, ya que un spray de congelación hará que la memoria se estabilice rápidamente durante muchos minutos.
@pipe Agregaría que la recuperación basada en histéresis de los datos del disco duro tradicional era algo más común hace mucho tiempo. Hoy, con nuestros platos de apilamiento de múltiples bits del tamaño de una TB, me imagino que es mucho más difícil, si no imposible, de lograr.

Respuestas (1)

El problema con el borrado seguro es que el dispositivo tiene una capa de traducción. En un disco, escribir en el sector Y del cilindro X siempre sobrescribirá la misma área. En un SSD, el firmware del dispositivo mantiene una lista de bloques en blanco y escribe en el siguiente disponible, manteniendo una tabla que asigna direcciones lógicas a bloques flash reales. Por lo general, hay un poco más de memoria flash que la capacidad indicada como repuestos, por lo que es posible que una escritura completa no toque todos los bloques. Borrar bloques es lento, por lo que no se borran inmediatamente, y tal vez no se borran hasta que queda poco espacio.

El firmware de la unidad puede ofrecer tres posibles soluciones a esto. Uno es TRIM: decirle a la unidad qué bloques no tienen datos del sistema de archivos y dejar que los borre de forma preventiva. Uno es un comando específico de "borrado seguro", que en realidad debería borrar todos los bloques (pero lleva mucho tiempo). Y uno es el cifrado transparente a nivel de bloque, en el que al pedirle a la unidad que deseche la clave, se pierden instantáneamente todos los datos. Sin embargo, eres rehén de lo bien que se ha implementado y puede haber errores.

No estoy al tanto de las técnicas para recuperar datos de celdas flash que realmente se han borrado. (De hecho, puede perder bits espontáneamente, por lo que la corrección de errores está integrada).

ECC y la redundancia pueden extenderse un poco en SSD de alta confiabilidad, donde un equipo forense que accede directamente al flash real puede restaurar suficientes celdas utilizando técnicas similares a macro-ECC para leer datos que se suponía perdidos. Dado el conocimiento suficiente. (Posibilidad muy rara, diría yo, de que todas esas probabilidades salgan juntas)
En general, utiliza el túnel de electrones para "borrar", lo que significa hacer que el nodo sea positivo. Tiene amplificadores de sentido para leer el nivel de los bits, por lo que si los mira de forma analógica, puede ver el último estado. Por supuesto, hay algunas advertencias de que necesita acceder a las instrucciones de depuración. Modelé la inyección de electrones calientes para un papel, por lo que tenía los comandos especiales de un proveedor, pero si quería recuperar algo grande, me llevaría años. Solo pude leer alrededor de 1000 puertas individuales por segundo. :/