¿Es posible leer la memoria flash borrada?

3

En los discos duros, un "formato rápido" no hace nada con 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 el FAT y leer esos datos. Aunque es difícil 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 restauran estos manifiestos de copia de seguridad como la función "no formatear".

El formato largo de un disco duro restablece la mayoría de los datos, lo que parece eliminar la posibilidad de leer dichos datos, excepto por una característica inherente al medio de almacenamiento magnético: histéresis . Cuando se establece o se borra un bit en un disco duro, el proceso no tiene una precisión del 100%, ya que el medio muestra histéresis. Así que queda una pequeña cantidad de magnetismo residual de la operación anterior, y ciertas herramientas de software pueden usarse para escanear áreas del disco (muchas veces) para leer esa fracción del porcentaje de magnetización latente y "recuperar" estos datos sobrescritos.

¿Pero cómo les va hoy en día a los recuerdos no volátiles de estado sólido de hoy? Unidades de memoria 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 las SSD pueden permanecer por un período de tiempo indefinido antes de ser sobrescritos por datos nuevos; Las técnicas o el software de eliminación o destrucción que funcionan bien en las unidades de disco duro magnético no tienen ningún efecto en las SSD, lo que compromete la seguridad y el examen forense.

Espera, ¿qué? Estas parecen ser dos afirmaciones completamente diferentes: la primera implica que los formatos largos nunca se hacen y, por lo tanto, Flash siempre es susceptible a la vulnerabilidad de mi primer párrafo. Esto no puede ser, ¿correcto? Como puedo "formatear de forma larga" una unidad de disco USB o SSD, o ordenar a una unidad de usuario que sobrescriba cada bloque de un NAND Flash. Y dado que los lugares de nivelación de desgaste bloquean algo al azar, asumo que los bloques que se sobrescriben también son bastante aleatorios. Por lo tanto, tal vez no se sobrescribiría a tiempo todos de un archivo, pero algunos parece altamente probable.

También indica que erasure or shred techniques do not work on Flash , lo cual me resulta difícil de creer. Siempre que se sobrescribieran todas las unidades de asignación, eso haría que los datos fueran completamente recuperables, ¿correcto?

Cómo se aplica esto a EE.SX: Imagina un NAND Flash con varios pares de claves criptográficas en él. Si se abre el chasis, se borra el dispositivo para que nadie pueda "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 de cualquier ? ¿Hay alguna histéresis de campo eléctrico para aprovechar la recuperación de datos sobrescritos?

    
pregunta rdtsc

1 respuesta

4

El problema con el borrado seguro es que el dispositivo tiene una capa de traducción. En un disco, al escribir en el cilindro X, el sector Y 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 las direcciones lógicas a los bloques actuales. Por lo general, hay un poco más de flash que la capacidad indicada como repuestos, por lo que una escritura completa puede no tocar cada bloque. El borrado de bloques es lento, por lo que no se borran inmediatamente, y tal vez no se borren hasta que el espacio sea corto.

El firmware de la unidad puede ofrecer tres soluciones posibles para esto. Uno es TRIM: indique a la unidad en qué bloques no tienen datos del sistema de archivos y deje que los borre de manera 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 a nivel de bloque transparente, donde pedirle a la unidad que descarte la clave pierde instantáneamente todos los datos. Sin embargo, eres un rehén de lo bien que se ha implementado esto y puede haber errores.

No conozco técnicas para recuperar datos de celdas flash que se hayan borrado realmente. (De hecho, puede perder bits espontáneamente, por lo que la corrección de errores está incorporada).

    
respondido por el pjc50

Lea otras preguntas en las etiquetas