¿Cómo puedo estar seguro de que un directorio o archivo está realmente eliminado?


14

Sé que la mayoría de los archivos, cuando se eliminan, en realidad no se eliminan del disco y se pueden recuperar más tarde.

¿Cómo puedo asegurarme de que un directorio que he eliminado se eliminará realmente del disco? ¿Hay utilidades para eso?

Estoy usando Debian Linux.


55
La respuesta corta: ¡No puedes! La respuesta larga: destruir físicamente el disco o reformular la pregunta: ¿Cuánto esfuerzo se necesitaría para recuperar los datos y cuál sería la tasa de éxito de tal intento?
Marco

Respuestas:


11

Cifre los datos antes de almacenarlos. Para borrar los datos, limpie la clave.

Si ya ha escrito los datos en texto sin formato, es demasiado tarde para borrarlos de una manera simple. Puede haber múltiples copias de los datos en varios lugares:

  • en el sistema de archivos si el archivo se escribió varias veces (sobrescrito o reemplazado);
  • en el sistema de archivos si se reorganizó como parte de la desfragmentación;
  • en el diario (es probable que esto desaparezca bastante rápido después de que se escribieron los datos por última vez);
  • en copias de seguridad;
  • en sectores discapacitados (especialmente en SSD).

Para deshacerse de las copias de los datos en el sistema de archivos, un método básico es llenar el espacio libre ( cat /dev/zero >somefiley esperar a que se detenga porque el sistema de archivos está lleno). Esto sobrescribirá todos los bloques completos.

Pequeñas partes de los datos pueden permanecer en bloques incompletos que otros archivos usan parcialmente. Esto es especialmente preocupante para los nombres de archivo, que pueden permanecer en bloques que almacenan el contenido del directorio. Para deshacerse de todo, haga una copia de seguridad de todos los archivos, sobrescriba completamente el dispositivo que contiene el sistema de archivos y luego restaure los archivos.

Los medios de almacenamiento pueden retener datos en bloques que ya no están en uso. En los discos duros, esto significa bloques defectuosos que se han reasignado; Esto es bastante raro hasta que el disco comienza a desgastarse. En SSD, esto es una ocurrencia común debido a la nivelación del desgaste. En ambos casos, la amenaza es muy baja, porque el acceso a esos datos requiere un atacante algo sofisticado con un hardware moderadamente costoso y tiempo que perder. Si le importan estas amenazas, cifre sus datos y no deje su clave por ahí.

Tenga en cuenta que puede ver consejos sobre cómo borrar datos haciendo múltiples pases o usando datos aleatorios en lugar de ceros ("borrado de Gutmann"). Olvídalo: esto se aplica solo a los discos duros de la década de 1980 (e incluso entonces los datos no son tan baratos de reconstruir y la reconstrucción es bastante poco confiable). Sobrescribir con ceros es lo suficientemente bueno; hacer múltiples pases al azar es un consejo obsoleto o aceite de serpiente. Consulte ¿Por qué es mejor escribir ceros (o datos aleatorios) en un disco duro varias veces que hacerlo una sola vez?


12

Hay una herramienta muy popular llamada shred. Sobrescribirá cada archivo 25 veces antes de que se elimine. Eso podría ser lo que estás buscando.

El uso de triturar es bastante simple

$ shred secret_archive.tar.gz

Sin embargo, shredtenga en cuenta que en los sistemas modernos puede ser ineficiente o inútil si:

  • Sus programas crean archivos temporales que desconoce (como muchas aplicaciones GUI)
  • Su FS está basado en Copia en escritura (como ZFS o Btrfs)
  • Su FS está basado en el registro (como NILFS)
  • Su FS utiliza el registro de datos (como JFS, ReiserFS, XFS, ext3 o ext4 en algunas configuraciones)
  • Tu FS usa compresión
  • Su FS asigna nuevas versiones de archivos en diferentes ubicaciones
  • Tienes instantáneas o copias de seguridad
  • Estás en una red FS
  • Está utilizando una SSD con algoritmos de nivelación de desgaste.

Otras opciones potencialmente más seguras son:

  • Cifrar datos críticos
  • Sobrescribir toda la partición o dispositivo de almacenamiento
  • Destrucción física del dispositivo.

1
De acuerdo a mi página de manual shredfunciona incluso con ext3 (y supongo que ext4, también) cuando se utiliza data = ordered (por defecto) y los datos de reescritura = modos. Además, existe una alternativa simple: simplemente cree un archivo enorme que ocupe todo el espacio restante del sistema de archivos para que su archivo eliminado se sobrescriba.
scai 01 de

Gracias. Lo acabo de arreglar. journaling -> data jornaling
taffer

@scai, el método de archivo enorme no necesariamente funcionará ya que los bloques del archivo pueden haber sido reasignados y aún no escritos (como datos fallidos, último bloque de archivos o directorios ...)
Stéphane Chazelas 01 de

3
shredes aceite de serpiente: no es mejor que head -c $(wc -c secret_archive.tar.gz)>! secret_archive.tar.gz`. Usar shred siempre no tiene sentido a menos que esté usando un disco duro de los años 80 o principios de los 90.
Gilles 'SO- deja de ser malvado'

3
triturar / bcwipe / etc. son aceite de serpiente a nivel de sistema de archivos. Para cualquier sistema de archivos. Debido a la forma en que trabaja con los archivos: cada vez que hace clic en guardar, el archivo antiguo se elimina (reside en el espacio libre) y se crea un nuevo archivo. No puede destruirlo si el sistema de archivos ya lo ha olvidado. - Es diferente a nivel de dispositivo, o sobrescribir a nivel de espacio libre. Shred es una de las pocas fuentes de datos aleatorios rápidos disponibles en Linux / Unix. / dev / (u) aleatorio, es demasiado lento para ser utilizable para sobrescribir grandes cantidades de datos. - Entonces, un solo pase de trituración está bien para el dispositivo o el espacio libre, solo que no para un solo archivo
frostschutz
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.