Preocupación de privacidad sobre la modificación de archivos en los SSD

0

Todos sabemos que los archivos que se eliminan de un sistema moderno generalmente no se borran inmediatamente de la memoria, lo que es un riesgo de seguridad en sí mismo.

Sin embargo, esta pregunta se enfoca en un tema diferente: supongamos que un archivo en el sistema, que es texto sin formato, almacena por un breve periodo de tiempo de información confidencial (por ejemplo, claves criptográficas). Luego, el contenido del archivo se modifica y la información confidencial se elimina de él.

Suponiendo que ningún programa lea el archivo mientras contenía esa información y suponiendo que el editor de texto no realizó copias de seguridad del archivo mientras se estaba modificando (ya que es simplemente la utilidad "nano" de Unix), ¿hay alguna forma en que ¿Se puede extraer información confidencial del medio de almacenamiento después de modificar el archivo eliminando las claves? ¿Cómo se extraerá esta información y dónde se almacenará?

Supongamos que la partición donde se guarda el archivo es, como dije, en texto sin formato y el medio de almacenamiento es un SSD. Como modelo de amenaza, asuma que el atacante tiene acceso físico a ese SSD después de que se realizó la modificación del archivo, pero la computadora está apagada (por lo que no se extrae de la memoria RAM, cachés ni otras cosas sospechosas).

Si es relevante, también asuma que la partición es ext4 (aunque sería interesante escuchar esta respuesta para otros sistemas también).

    
pregunta John 19.02.2018 - 14:32
fuente

2 respuestas

0

En ext4 existe la posibilidad de que sus datos (sus claves secretas) puedan recuperarse independientemente del hardware subyacente, dependiendo de cómo lo monte. (Las siguientes explicaciones también son válidas para muchos otros sistemas de archivos de registro por diario, y siempre tiene un problema con los sistemas de archivos de copia en escritura, como btrfs y otros que son compatibles con instantáneas).

La maldición de los sistemas de archivos de registro / copia en diario

Esto tiene que ver con la forma en que los sistemas de archivos modernos (de registro por diario) se aseguran de que si tiene una pérdida de energía en medio de la escritura en el sistema de archivos, el sistema de archivos seguirá en un estado normal. Con discos pequeños, tuvimos que ejecutar programas como fsck para arreglar un sistema de archivos después de un fallo de este tipo. Con discos grandes, ejecutar fsck tomaría demasiado tiempo, por lo que los sistemas de archivos de registro por diario son una opción mucho mejor.

Sin embargo, logran su recuperación mágica manteniendo un diario de operaciones (de ahí el nombre) que pueden volver a reproducir en su totalidad o descartar si no hay un registro registrado (por ejemplo, si su computadora murió mientras escribía algo en el disco). ).

Ahora, dependiendo de cuánto escriba su sistema de archivos en el diario (solo las operaciones de metadatos del archivo o también los datos asociados), puede tener un problema.

Una forma de poder recuperar un estado limpio después de que una escritura en un archivo haya fallado / se haya interrumpido en el medio) es nunca escribir datos en la misma ubicación, por lo tanto, si sobrescribe los datos de un archivo, la nueva los contenidos no se almacenan en el mismo bloque de disco que los contenidos del archivo original. Se asigna un nuevo bloque de disco en su lugar. Esto se llama copiar en escritura (COW para abreviar). De esta manera, el contenido del archivo anterior se puede recuperar fácilmente cuando la operación de escritura no se completó correctamente.

Sin embargo, esto también significa que sus claves secretas aún residen en el disco después de haber sido "sobrescritas" con datos nuevos y se pueden encontrar con una simple operación grep en el dispositivo de partición, por ejemplo:

grep "my-secret" /dev/sda1 

o tal vez

strings /dev/sda1 | grep "my-secret"

Por lo tanto, no es necesario ser un científico espacial para recuperar los datos sobrescritos previamente cuando el sistema de archivos se monta con la opción de registro de datos.

diario de datos en ext3 y ext4

ext3 y ext4 le permiten activar el registro diario de datos (opción data=journal ) o desactivarlo (lo cual, creo, es el valor predeterminado). Pienso que sin el registro de datos (o al menos con data=writeback ), sus archivos deberían sobrescribirse en su lugar (eso es lo que man ext4 sugiere, de todos modos). Pero no estoy 100% seguro, así que es mejor que lo pruebes.

Problemas causados por discos de estado sólido y algoritmos de nivelación de desgaste

Los SSD y las unidades de memoria flash plantean más problemas: los algoritmos de nivelación de desgaste hacen que sea prácticamente imposible saber dónde terminan físicamente los datos.

La opción de recorte del SSD puede ayudarlo porque permite que el controlador del SSD marque los bloques como eliminados, por lo que el controlador puede programar que se sobrescriban en un momento anterior. Sin embargo, usted tampoco tiene garantías aquí. Es posible que los SSD baratos ni siquiera lo implementen y mientan al sistema operativo.

Finalmente, incluso los discos magnéticos rotacionales plantean problemas. La mayoría de estos discos que todavía están operativos tienen controladores inteligentes que pueden sustituir a un sector defectuoso por un sector defectuoso sobre la marcha. Esto puede suceder en cualquier momento, por lo que, si tiene muy mala suerte, el sector que contiene su secreto podría terminar marcado como defectuoso y se intercambiará de forma transparente. Por lo general, no puede acceder a estos sectores defectuosos (son defectuosos, después de todo), pero eso no significa que los expertos con el hardware de diagnóstico necesario todavía no puedan leer estos sectores defectuosos. Sin embargo, no me preocuparía mucho por este escenario, es algo a tener en cuenta.

¿Qué puedes hacer?

Entonces, su única apuesta segura es cifrar el sistema de archivos donde almacena información confidencial. Luego puede asegurarse de que sea realmente inaccesible al eliminar la clave de cifrado. Esta es la única solución que funciona sin importar qué tipo de sistema de archivos y hardware use.

Otra forma de sobrescribir realmente los datos es crear un archivo que ocupe todo el espacio libre de una partición:

dd if=/dev/zero of=stupidly_big_file 

Sin embargo, esto puede llevar mucho tiempo y no es absolutamente infalible.

    
respondido por el Pascal 19.02.2018 - 16:18
fuente
0

No soy un experto, pero creo que a menos que el ajuste esté activado y tenga suficiente tiempo para hacer su trabajo:

  • El usuario promedio no puede recuperarlos.

  • Un usuario experto tiene posibilidades de recuperarlos

  • Un "pro" con capacidad para desoldar los chips de memoria y leerlos directamente puede leerlos, a menos que se realicen esfuerzos significativos para asegurar que el sector que contiene los datos se borre físicamente.

respondido por el Toni Homedes i Saun 19.02.2018 - 14:48
fuente

Lea otras preguntas en las etiquetas