Securely wipe disk (Español)

La limpieza de un disco se realiza escribiendo nuevos datos sobre cada bit.

Nota: Las referencias a «discos» en este artículo también se aplican a los dispositivos loopback.
Esta traducción de Securely wipe disk fue revisada el 2019-11-01. Si existen cambios puede actualizarla o avisar al equipo de traducción.

Casos de uso comunes

Borrar todos los datos que quedan en el dispositivo

El caso de uso más común para limpiar un dispositivo de forma completa e irrevocable será cuando el dispositivo se va a regalar o vender. Es posible que queden datos (sin cifrar) en el dispositivo y que desee protegerlos contra una investigación forense simple que puede ser un juego de niños con, por ejemplo, el software recuperación de archivos.

Si desea borrar rápidamente todo del disco, utilidades como /dev/zero o patrones simples, permiten un rendimiento aceptable, en tanto que una aleatoriedad adecuada puede ser ventajosa en algunos casos que deberían tratarse para #Remanencia de datos.

Cada bit sobrescrito significa proporcionar un nivel de borrado de datos que no permite la recuperación con funciones normales del sistema (como las órdenes estándar ATA/SCSI) e interfaces de hardware. Cualquier software de recuperación de archivos mencionado anteriormente debería estar especializado con funcionalidades propietarias de hardware de almacenamiento.

En el caso de un disco HDD, la recreación de datos no será posible sin, al menos, órdenes de disco no documentadas o alterando el controlador o el firmware del dispositivo para que se lean, por ejemplo, sectores reasignados (bloques defectuosos que S.M.A.R.T. retiró de su uso).

Existen diferentes problemas de borrado relacionados con ciertas tecnologías de almacenamiento físico, en particular todos los dispositivos basados ​​en memoria flash y almacenamiento magnético más antiguo (discos duros antiguos, disquetes, cintas).

Preparativos para el cifrado de dispositivos de bloque

Si desea preparar su unidad para configurar de forma segura el cifrado de dispositivo de bloque dentro del área borrada, debe usar #Datos aleatorios generados por una cadena de números aleatorios criptográficamente segura (denominado RNG en este artículo en adelante).

Véase también Wikipedia:Random number generation.

Advertencia: Si el cifrado del dispositivo de bloque se usa en una partición que contiene algo distinto que datos aleatorios/cifrados, será posible revelar los patrones de uso en la unidad cifrada, lo cual debilita el cifrado al ser comparable con el cifrado a nivel del sistema de archivos. No utilice nunca /dev/zero, patrones simples (badblocks, por ejemplo) u otros datos no aleatorios antes de configurar el cifrado de un dispositivo de bloque, si quiere hacerlo bien.

Remanencia de datos

Véase también Wikipedia:es:Persistencia de datos.

La representación residual de los datos puede permanecer incluso después de que se hayan hecho intentos para eliminar o borrar los datos.

Los datos residuales pueden borrarse escribiendo datos (aleatorios) en el disco con una o más iteraciones. Sin embargo, más de una iteración puede no disminuir significativamente la posibilidad de reconstruir los datos de las unidades de disco duro. Vea #Magnetismo residual.

Sistema operativo, programas y sistema de archivos

El sistema operativo, los programas ejecutados o los sistemas de archivos journaling pueden copiar sus datos no cifrados en todo el dispositivo de bloque. Al escribir en discos planos, esto solo debería ser relevante en conjunción con uno de los anteriores.

Si los datos pueden ubicarse exactamente en el disco y nunca se copiaron en ningún otro lugar, el borrado con datos aleatorios puede ser exhaustivo e impresionantemente rápido siempre que haya suficiente entropía en el agrupamiento.

Un buen ejemplo es cryptsetup utilizando /dev/urandom para limpiar los espacios de keyslots de LUKS.

Memoria flash

La amplificación de la escritura y otras características hacen de la memoria flash (donde se incluye explícitamente SSD) un objetivo obstinado para un borrado confiable. Como hay mucha abstracción transparente entre los datos tal y como se ven en el chip de la controladora del dispositivo y los datos expuestos en el sistema operativo, nunca se sobrescribe la posición y borrar bloques o archivos particulares no es fiable.

Otras «características» como la compresión transparente (todos los SSD SandForce) pueden comprimir su /dev/zero o patrón de flujo, por lo que si el borrado es rápido más allá de lo razonable, este podría ser el caso.

Desensamblar dispositivos de memoria flash, desoldar los chips y analizar el contenido de datos sin la controladora de por medio es posible sin dificultad utilizando hardware simple. Las empresas de recuperación de datos lo hacen por poco dinero.

Para más información, vea:

Sectores defectuosos marcados

Si un disco duro marca un sector como defectuoso, lo acordona y la sección se vuelve imposible de escribir a través del software. Por lo tanto, una sobrescritura completa no lo alcanzaría. Sin embargo, debido al tamaño de los bloques, estas secciones solo equivaldrían a unos pocos KB teóricamente recuperables.

Magnetismo residual

Una sola sobrescritura completa con ceros o datos aleatorios no genera datos recuperables en un dispositivo de almacenamiento moderno de alta densidad. No obstante, las indicaciones se refieren a bits residuales únicos; la reconstrucción de los patrones de bytes generalmente no es factible. Consulte también , y .

Seleccionar un objetivo

Utilice fdisk (Español) para localizar todos los dispositivos de lectura/escritura a los que el usuario tiene acceso de lectura.

Verifique en la salida las líneas que comienzan con dispositivos como .

Este es un ejemplo para un disco HDD formateado para arrancar un sistema Linux:

O la imagen de instalación de Arch escrita en una memoria USB de 4GB:

Si le preocupa causar un daño involuntario a datos importantes del equipo principal, considere usar un entorno aislado como un entorno virtual (VirtualBox, VMWare, QEMU, etc...) con unidades de disco conectadas directamente a él o un único equipo con un solo disco de almacenamiento que necesita limpiar arrancado desde un soporte Live (USB, CD, PXE, etc.) o utilice un script para evitar limpiar particiones montadas por un error tipográfico.

Seleccionar un tamaño de bloque

Vea también Wikipedia:Dd (Unix)#Block size, blocksize io-limits.

Si tiene un disco duro de formato avanzado, se recomienda que especifique un tamaño de bloque mayor que los 512 bytes predeterminados. Para acelerar el proceso de sobrescritura, elija un tamaño de bloque que coincida con la geometría física de su unidad, agregando la opción de tamaño de bloque a la orden dd (es decir, bs=4096 para 4KB).

fdisk muestra el tamaño del sector físico y lógico para cada disco. Alternativamente, sysfs expone información:

/sys/block/sdX/size
/sys/block/sdX/queue/physical_block_size
/sys/block/sdX/queue/logical_block_size
/sys/block/sdX/sdXY/alignment_offset
/sys/block/sdX/sdXY/start
/sys/block/sdX/sdXY/size

Calcular bloques para borrar manualmente

A continuación, la determinación del área de datos a borrar se realiza en un ejemplo.

Un dispositivo de almacenamiento de bloque contiene sectores y un tamaño único para cada sector que puede usarse para calcular el tamaño completo del dispositivo en bytes. Puede hacerlo multiplicando el número de sectores con el tamaño del sector.

Como ejemplo, vamos a usar los parámetros con la orden dd para borrar una partición:

# dd if=fuente_datos of=/dev/sd"X" bs=tamaño_sector count=número_sector seek=sector_inicio_partición status=progress

Aquí verá solo una parte de la salida de la orden ejecutada con root, que muestra la información de la partición de ejemplo:

La primera línea de la salida de fdisk muestra el tamaño del disco en bytes y los sectores lógicos:

Disk /dev/sd"X": 1,8 TiB, 2000398934016 bytes, 3907029168 sectors

Para calcular el tamaño de un solo sector lógico, utilice o utilice los datos de la segunda línea de salida de fdisk:

Units: sectors of 1 * 512 = 512 bytes

Para calcular los sectores físicos que harán que funcione más rápido, podemos usar la tercera línea:

Sector size (logical/physical): 512 bytes / 4096 bytes

Para obtener el tamaño del disco en sectores físicos, necesitará el tamaño del disco conocido en bytes dividido por el tamaño de un solo sector físico echo $((2000398934016 / 4096)), puede obtener el tamaño del dispositivo de almacenamiento o partición del mismo con la orden .

Para borrar la partición , los parámetros de ejemplo con sectores lógicos se usarían así:

Start=2048
End=3839711231
BytesInSector=512

Para utilizar la dirección de inicio de la partición en el dispositivo para establecerla en la opción :

# dd if=data_source of=/dev/sd"X" bs=${BytesInSector} count=${End - Start} seek=${Start} status=progress

Para utilizar el tamaño de las particiones (en sectores lógicos):

LogicalSectors=3839709184
# dd if=data_source of=/dev/sd"XA" bs=${BytesInSector} count=${LogicalSectors} status=progress

O, para borrar todo el disco utilizando los sectores físicos:

# dd if=data_source of=/dev/sd"X" bs=${PhysicalSectorSizeBytes} count=${AllDiskPhysicalSectors} seek=0 status=progress

Seleccionar una fuente de datos

Como se acaba de decir si desea borrar datos confidenciales, puede usar cualquier opción que se ajuste a sus necesidades.

Si desea configurar el cifrado de dispositivos de bloque después, siempre debe borrar, al menos, con un algoritmo de cifrado como fuente o, incluso, con datos pseudoaleatorios.

Para datos que no son verdaderamente aleatorios, la velocidad de escritura de su disco debería ser el único factor limitante. Si necesita datos aleatorios, el rendimiento del sistema requerido para generarlos puede depender en gran medida de lo que elija como fuente de entropía.

Datos no aleatorios

La sobrescritura con /dev/zero o patrones simples se considera segura en la mayoría de los recursos. En el caso de los discos duros actuales, debería ser suficiente para limpiar rápidamente los discos.

Prueba de escritura de patrón

#Badblocks puede escribir patrones simples en cada bloque de un dispositivo y luego leerlos y verificarlos buscando áreas dañadas (al igual que memtest86* hace con la memoria).

Como el patrón se escribe en cada bloque accesible, esto efectivamente borra el dispositivo.

Datos aleatorios

Para conocer las diferencias entre los datos aleatorios y pseudoaleatorios como fuente, consulte Random number generation.

Datos cifrados

Al preparar una unidad para el cifrado de disco completo, generalmente no es necesario obtener una entropía de alta calidad. La alternativa es usar un flujo de datos cifrado. Por ejemplo, si va a utilizar AES para su partición encriptada, debe limpiarla con un cifrado de encriptación equivalente antes de crear el sistema de archivos para hacer que el espacio vacío no se distinga del espacio utilizado.

Sobrescribir el objetivo

La unidad elegida se puede sobrescribir con varias utilidades, haga su elección. Si solo desea borrar un solo archivo, Securely wipe disk/Tips and tricks#Wipe a single file tiene consideraciones adicionales además de las utilidades mencionadas a continuación.

Redirigir la salida

La salida redirigida se puede usar tanto para la creación de los archivos como para reescribir el espacio libre en la partición, borrar todo el dispositivo o una sola partición.

A continuación se presentan ejemplos que se pueden usar para reescribir la partición o un dispositivo de bloque al redirigir stdout (salida estándar) desde otras utilidades:

$ xz -z0 /dev/urandom -c > /dev/sd"XY"
xz: (stdout): Write error: No space left on device

La orden de copia de archivos también se puede utilizar para reescribir el dispositivo, ya que ignora el tipo de destino:

Para mostrar la velocidad y el tiempo, puede usar :

# pv --timer --rate --stop-at-size -s "$(blockdev --getsize64 /dev/sd"XY" )" /dev/zero > /dev/sd"XY"

dd

Consulte también Core utilities (Español)#Esenciales.

Rellene con ceros el disco escribiendo un byte de cero en cada ubicación dirigida al disco utilizando la secuencia /dev/zero.

# dd if=/dev/zero of=/dev/sdX bs=4096 status=progress

O la secuencia /dev/urandom:

# dd if=/dev/urandom of=/dev/sdX bs=4096 status=progress

El proceso finaliza cuando dd informa y devuelve el control:

dd: writing to ‘/dev/sdb’: No space left on device
7959553+0 records in
7959552+0 records out
4075290624 bytes (4.1 GB, 3.8 GiB) copied, 1247.7 s, 3.3 MB/s

Para acelerar la limpieza de una unidad grande, consulte también:

wipe

Especializado en borrar archivos, está disponible como el paquete wipe. Para borrar rápidamente un destino, puede usar algo como:

$ wipe -r /path/to/wipe

Vea también . La herramienta se actualizó por última vez en 2009. Su página SourceForge sugiere que está actualmente sin mantenimiento.

shred

shred (del paquete ) es una orden de Unix que se puede usar para eliminar de forma segura archivos individuales o dispositivos completos de modo que puedan recuperarse solo con hardware especializado no sin gran dificultad, si es que lo hacen. Por defecto, shred usa tres pasadas, escribiendo datos pseudoaleatorios en el dispositivo durante cada pasada. Esto se puede reducir o aumentar.

La siguiente orden invoca shred con su configuración predeterminada y muestra el progreso.

# shred -v /dev/sdX

Alternativamente, se le puede indicar a shred que haga solo una pasada, con entropía de, por ejemplo, /dev/urandom.

# shred --verbose --random-source=/dev/urandom -n1 /dev/sdX

Badblocks

Para permitir que badblocks (del paquete ) realice una limpieza de disco, se debe realizar una prueba de lectura-escritura destructiva:

# badblocks -c <NUMBER_BLOCKS> -wsv /dev/<drive>

hdparm

hdparm admite ATA Secure Erase, que es funcionalmente equivalente a llenar un disco con ceros. Sin embargo, es manejado por el firmware del disco duro e incluye «áreas de datos ocultos». Como tal, puede verse como una orden moderna de «formato de bajo nivel». Según los informes, las unidades SSD alcanzan el rendimiento de fábrica después de emitir esta orden, pero es posible que no se borren lo suficiente (consulte #Memoria flash).

Algunas unidades admiten Enhanced Secure Erase, que utiliza distintos patrones definidos por el fabricante. Si la salida de para el dispositivo indica una ventaja de tiempo múltiple para el borrado Enhanced, el dispositivo probablemente tenga una función de cifrado por hardware y el borrado se realizará con las claves de dicho cifrado solamente.

Para obtener instrucciones detalladas sobre el uso de ATA Secure Erase, consulte Solid state drive/Memory cell clearing y la Linux ATA wiki.

Véase también

gollark: You should be able to just change the nim version it asks for.
gollark: It has to store historical uptime data for things.
gollark: `sqlite3 monitoring.sqlite3`
gollark: Just change variables to what you want. Although to configure monitoring targets you have to edit the database.
gollark: I MAY integrate an actual command line parser soon™.
This article is issued from Archlinux. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.