Trituración del disco duro en Linux

Trituración del disco duro en Linux

Cuando eliminamos un archivo de un sistema de archivos, los datos no se eliminan físicamente: el sistema operativo simplemente marca el área previamente ocupada por el archivo, como gratuita y lo pone a disposición de almacenar información nueva. La única forma de asegurarse de que los datos se eliminen de un dispositivo es anularlo con otros datos. Es posible que deseemos realizar dicha operación por razones de privacidad (tal vez planeemos vender el dispositivo y queremos asegurarnos de que el nuevo propietario no pueda acceder a nuestros datos), o tal vez preparar un dispositivo para el cifrado. En este tutorial veremos algunas herramientas que podemos usar para borrar completamente los datos en un dispositivo

En este tutorial aprenderás:

  • Cómo triturar datos usando DD
  • Cómo asegurar los archivos y dispositivos de Erasa utilizando la utilidad Shred
  • Cómo sobrescribir los datos utilizando Badblocks


Requisitos y convenciones de software utilizados

Requisitos de software y convenciones de línea de comandos de Linux
Categoría Requisitos, convenciones o versión de software utilizada
Sistema Independiente de la distribución
Software DD, trituración o bloqueos
Otro
  • Familiaridad con el shell bash y la interfaz de línea de comandos de Linux
Convenciones # - requiere que los comandos de Linux dados se ejecuten con privilegios raíz directamente como un usuario raíz o mediante el uso de sudo dominio
ps - Requiere que los comandos de Linux dados se ejecuten como un usuario regular no privilegiado

Borrar datos utilizando DD

DD es un programa muy poderoso incluido de forma predeterminada en todas las principales distribuciones de Linux. En un artículo anterior vimos cómo usar DD en detalle; En este caso, todo lo que queremos hacer es anular el contenido de nuestro dispositivo de bloque hipotético con ceros o datos aleatorios. En ambos casos, podemos usar datos generados por archivos "especiales": /dev/cero y dev/urandom (o /dev/Random) respectivamente. El primero devuelve cero cada vez que se realiza una operación de lectura; Este último devuelve bytes aleatorios utilizando el generador de números aleatorios del kernel de Linux.

Para llenar el disco con ceros que podemos ejecutar:

$ sudo dd if =/dev/cero of =/dev/sdx

Para usar datos aleatorios, en su lugar:

$ sudo dd if =/dev/urandom of =/dev/sdx


Uso de un contenedor de Luks como generador de datos aleatorio

La anulación de un dispositivo con datos aleatorios es una operación que lleva mucho tiempo, pero puede ser útil, especialmente si planeamos usar el cifrado de disco completo, para que la parte usada y no utilizada de los discos sea indistinguible. Para acelerar el proceso, podemos usar un pequeño "truco": podemos crear un Luks(Configuración de clave unificada de Linux) Contenedor en el dispositivo o la partición que queremos llenar con datos aleatorios, y escribirle ceros. Gracias al cifrado, los datos se escribirán transparentemente en el dispositivo subyacente como aleatorio.

En primer lugar, creamos el Luks envase:

$ sudo cryptsetup luksformat /dev /sdx advertencia! ======== ESTO Sobrescribirá los datos en /dev /sdx irrevocablemente. Está seguro? (Escriba mayúsculas y sí): sí, ingrese la frase de pass para /dev /sdx: verificar la frase:

En este caso, no es realmente necesario usar una contraseña segura, ya que estamos utilizando el contenedor como generador de datos aleatorio, y la eliminaremos después de que se complete la operación. Una vez que el contenedor está listo, lo abrimos ejecutando el siguiente comando:

$ sudo cryptsetup luksopen /dev /sdx crypted Ingrese Passfrase para /dev /sdx:

Ahora que se abre el contenedor, podemos usar DD y llenarlo con ceros. Muy importante: escribimos en el contenedor de Luks mapeado como /dev/mapper/cripte, no en el subyacente /dev/sdx Dispositivo directamente:

$ sudo dd if =/dev/cero of =/dev/mappper/crypted bs = 1m

Una vez que se han escrito todos los datos, cerramos el contenedor y anulamos el encabezado de Luks con datos aleatorios. El tamaño del encabezado depende del formato de Luks en uso: es 2miB para el legado Luks formato y 16MiB Para el Luks2 formato, que se ha convertido en el valor predeterminado en las versiones recientes de cryptsetup. Solo para estar seguros, podemos anular los primeros 20MIB del disco:

$ sudo cryptsetup luksclose/dev/mapper/crypted $ sudo dd if =/dev/urandom of =/dev/sdx bs = 1m count = 20


Borrar datos utilizando Shred

El nombre de esta utilidad es bastante explicativo: su objetivo principal, como se indica en el manual, es sobrescribir archivos y eliminarlo opcionalmente. El desgarrar La utilidad se basa en la suposición de que el sistema de archivos sobrescribe los datos en su lugar. La aplicación puede no permitirnos lograr el resultado esperado, por ejemplo, en sistemas de archivos diarios, como Ext4 (probablemente el sistema de archivos Linux más utilizado), si está montado con el datos = diario opción.

Al montar un sistema de archivos ext4, con el datos = ordenado o datos = redacción de escritura Opciones (la primera es el valor predeterminado), los datos se escriben en el sistema de archivos principal después del metadatos está comprometido con el diario. En ambos casos, desgarrar funciona bien, produciendo los resultados esperados.

Al usar el datos = diario Opción, en cambio, no solo los metadatos, sino que los datos en sí se escriben en la revista del sistema de archivos, antes de ser escrito en el sistema de archivos principal. Es fácil ver por qué esto puede causar problemas.

Veamos algunos ejemplos del uso de la aplicación. Supongamos que queremos asegurar un archivo llamado "prueba". Todo lo que tenemos que hacer es ejecutar el siguiente comando (aquí usamos el -V opción para hacer que el programa sea más detallado):

$ ShrD -V TRATO DE PRUEBA: PRUEBA: Pase 1/3 (aleatorio)… THRED: PRUEBA: Pase 2/3 (aleatorio)… THRED: Prueba: Pase 3/3 (aleatorio)… 

Por defecto, la aplicación anula el archivo especificado 3 veces con datos aleatorios. El número de pases se puede cambiar usando el -norte (corto para --iteración) opción. Para anular el archivo 6 veces, se ejecutaríamos:

trituración -v -n 6 PRUEBA PRUEBA: Prueba: Pase 1/6 (aleatorio)… THRED: PRUEBA: Pase 2/6 (000000)… THRED: PRUEBA: PASE 3/6 (555555)… THRED: Prueba: Pase 4/ 6 (FFFFFF) ... THRRED: Prueba: Pase 5/6 (AAAAAAA) ... THRRED: PRUEBA: Pase 6/6 (aleatorio) .. 

Hay algunos casos en los que podemos ocultar el hecho de que se realizó una operación de trituración en un archivo o dispositivo. En esas situaciones podemos usar el programa -z (corto para --cero) Opción para hacer que el programa realice un pase adicional con ceros después de la trituración:

$ shred -v -n 6 -z prueba de prueba: prueba: pase 1/7 (aleatorio) ... trituración: prueba: pase 2/7 (ffffff) ... trituración: prueba: pase 3/7 (aaaaaa) ... trituración: prueba:: Pase 4/7 (555555)… THRED: PRUEBA: Pase 5/7 (000000)… THRED: Prueba: Pase 6/7 (aleatorio)… THRED: Prueba: Pase 7/7 (000000) .. 


Desde la salida verbosa del comando, podemos notar cómo se realiza el último pase escribiendo ceros (000000). Podemos verificarlo ejecutando el hexdump programa en el archivo:

$ HEXDUMP TEST 0000000 0000 0000 0000 0000 0000 0000 0000 0000 * 0008000 

Eliminar el archivo

Si echamos un vistazo al sistema de archivos después de ejecutar uno de los comandos en los ejemplos anteriores, podemos notar que, aunque sobrescribido con datos aleatorios, el archivo en sí no se ha eliminado: esto sucede porque el comando también se puede usar en archivos que representan completos completos Bloquear dispositivos o particiones (E.gramo /dev/sda), y esos no deben eliminarse.

Sin embargo, cuando operamos en archivos comunes, es posible que también deseemos desantar un archivo desde el sistema de archivos después de anularlo. Para lograr este comportamiento, podemos usar el -u o el --eliminar opción. Ambas opciones hacen que se elimine un archivo, pero con este último también podemos especificar cómo se debe realizar la eliminación. Podemos hacer entre:

  • desconectar: El archivo se elimina utilizando un estándar desconectar llamada del sistema;
  • limpiar: Los bytes en el nombre del archivo se ofuscan antes de la eliminación;
  • limpieza: Los bytes ofuscados también se sincronizan con el disco;

El limpieza El modo es el valor predeterminado.

Borrar datos utilizando Badblocks

Aunque el mechones El objetivo principal de la utilidad es buscar bloques malos, utilizando un modo de escritura Prueba disruptiva Podemos sobrescribir de manera efectiva y asegurar datos existentes en un dispositivo. Todo lo que tenemos que hacer es iniciar el comando y especificar el -w Opción: la prueba se realizará escribiendo primero y luego leyendo el 0xaa, 0x55, 0xff y 0x00 patrones de datos en cada bloque y comparar el contenido.

Podemos usar el -s y -V opciones, para hacer que el programa muestre información de progreso y el número de errores de lectura y escritura encontrados. Para borrar nuestro dispositivo, por lo tanto, ejecutaríamos:

$ sudo Badblocks -WSV /dev /SDX Verificación de bloques malos en modo de lectura -escritura desde el bloque 0 a 3870719 Prueba con el patrón 0xaa: ^C6.30% hecho, 0:41 transcurrido. (0/0/0 errores)

Para ejecutar el comando sobre el dispositivo debe desmontarse, de lo contrario mechones se negará a ejecutarse a menos que la operación se vea forzada con el -F opción. El número predeterminado de bloques probados a la vez es 64; Sin embargo, podemos cambiar este parámetro utilizando el -C opción.

Conclusiones

En este artículo vimos tres utilidades que podemos usar para triturar datos en un dispositivo, y algunos ejemplos de su uso. Dd y desgarrar son parte de los utilizadores de núcleo de GNU, por lo que casi seguramente ya están instalados en su sistema. Mechones es un software utilizado para probar la existencia de bloques malos: al realizar una prueba de lectura-escritura, podemos anular los datos de un dispositivo. Tenga en cuenta que la efectividad de la trituración de datos depende también del tipo de dispositivo en uso: las unidades de estado sólido, por ejemplo, tienen que lidiar con fenómenos como la amplificación de escritura.

Tutoriales de Linux relacionados:

  • Cosas para instalar en Ubuntu 20.04
  • Recupere su privacidad y seguridad en la era digital
  • Cosas que hacer después de instalar Ubuntu 20.04 fossa focal Linux
  • Cómo usar Google Drive en Linux
  • Cómo dividir la unidad USB en Linux
  • Cómo comparar el rendimiento del disco en Linux
  • Cómo particionar una unidad en Linux
  • Cifrado de disco completo con Veracrypt en Ubuntu Linux
  • Mint 20: Mejor que Ubuntu y Microsoft Windows?
  • Una introducción a la automatización, herramientas y técnicas de Linux