Usando `shred` desde la línea de comando

44

Necesito borrar algunos archivos de forma segura. Lo he usado shreden sistemas Linux anteriormente, así que miré a mi alrededor y descubrí que shredes parte del coreutilspaquete en macports. Hice port install coreutilsinstalar coreutils, pero todavía no puedo encontrar shreden la línea de comandos.

¿Cómo puedo shredtrabajar en la línea de comando de mi mac? Si es importante, estoy usando Mac OS X 10.7.5 (Lion)

inspectorG4dget
fuente
Tenga en cuenta que la seguridad shreddepende del sistema de archivos que se utilice, no sé qué tan efectivo es en HFS.
Flimm
1
shred no es efectivo en los sistemas de archivos registrados por lo que no está disponible. SRM también resultó no ser efectivo. Simplemente borre normalmente y rezar parece ser la única esperanza en los sistemas de archivos con registro hfs +
Kevin Johnson
¡¿De Verdad?! ¿Podría hablar sobre por qué no es efectivo?
inspectorG4dget
1
Los sistemas de archivos registrados registran los cambios que se realizarán antes de la escritura en el disco. Se puede usar para recuperarse de la corrupción de archivos o recuperar datos que desearía haber sido destruidos. Ver en.wikipedia.org/wiki/Journaling_file_system
Alex Mooney

Respuestas:

27

port install coreutilsagrega un prefijo ag a los nombres de los binarios, por lo que shred es /opt/local/bin/gshred.

Lri
fuente
8
brew install coreutilspone a gshreddisposición de quienes usan Homebrew.
davidjb
58

OSX tiene un comando incorporado srmpara eliminar archivos de forma segura. Ver https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man1/srm.1.html . También puede usar rm -Ppara sobrescribir los archivos con secuencias de bytes tres veces.

Con sierra o posterior, macOS ya no incluye srm. Pero los usuarios pueden instalarlo con homebrew:

brew install homebrew/dupes/srm && brew link --force homebrew/dupes/srm
Lily Hahn
fuente
1
Claro, pero shred me permite establecer el número de sobrescrituras. Estas herramientas no lo hacen. ¿Alguna idea sobre cómo obtener esa funcionalidad?
inspectorG4dget
2
+1 Excelente respuesta. No sabía que el srmcomando existía. Sobrescribe, renombra y trunca el archivo antes de eliminarlo. Eso, más los 7 pases compatibles con DoD de EE. UU. (0xF6, 0x00, 0xFF, aleatorio, 0x00, 0xFF, aleatorio) (opción -m) garantizan que el archivo sea irrecuperable.
Tulains Córdova
3
A partir de macOS Sierra, srmya no está incluido.
y3sh
1
Los usuarios de macOS pueden instalar srmcon el comando brew brew install homebrew/dupes/srm.
hd.deman
1
homebrew/dupesahora está en desuso. Parece que srmse eliminó y no se migró a homebrew-core.
davidjb
18

La respuesta de @ user495470 es correcta para la pregunta planteada. El problema no es ni srmo shredrealmente tiene sentido para los sistemas modernos.

Esto se debe principalmente a los SSD. A diferencia de los discos magnéticos, los discos modernos habilitados para TRIM borran automáticamente los datos eliminados en segundo plano.

Los SSD también realizan nivelación de desgaste. Esto hace que los intentos de "sobreescribir" un archivo sean tanto inútiles (escribirás en una ubicación física diferente) como indeseables (contribuyen innecesariamente al desgaste del disco).

Todos los Mac que vienen con un SSD tienen TRIM habilitado.

El otro problema es el sistema de archivos, específicamente los sistemas de archivos con diario, que pueden guardar una copia de los datos en otro lugar antes de que se escriban.

Incluso en medios magnéticos esto puede causar problemas para ambos srm:

Todos los usuarios [..] deben tener en cuenta que srm solo funcionará en sistemas de archivos que sobrescriban los bloques en su lugar. En particular, NO funcionará en [..] la gran mayoría de los sistemas de archivos registrados.

Y shred:

[..] shred se basa en una suposición muy importante: que el sistema de archivos sobrescribe los datos en su lugar. [..] muchos diseños modernos de sistemas de archivos no satisfacen esta suposición. Las excepciones incluyen: sistemas de archivos con estructura de registro o diarios [..]

Los volúmenes HFS Plus se registran de forma predeterminada desde Mac OS X v10.3.

En estos días, la mejor manera de "eliminar" archivos de forma segura es habilitar FileVault (para que nunca escriban discos sin cifrar en primer lugar), luego simplemente elimínelos y deje que TRIM lo resuelva.

Si, por un golpe de desgracia, estás en un medio magnético, tienes el diario deshabilitado y, por alguna razón, no puedes encriptar el disco, tus opciones son:

  • Use rm -Pque sobrescribe archivos con 0xff, luego 0x00, y luego 0xffnuevamente
  • Instalar coreutilspara gshred(es decir brew install coreutils && gshred secrets.txt)
  • srmha sido retirado de homebrew-dupesy homebrew-corepero alguien ha publicado un grifo aquí que funciona (es decir. brew install khell/homebrew-srm/srm && srm secrets.txt)
  • Destrucción física del medio :)
Molomby
fuente
Pero supongo que triturar todavía está bien si tritura toda la partición o todo el disco.
Konstantin
¿Quieres decir como shred /dev/hda? Sí, yo supongo que sí. Sin embargo, los bloques a los que se dirige el sistema operativo todavía se abstraen de la memoria física y se pueden reasignar potencialmente durante la destrucción. Me pregunto si las implementaciones de nivelación de desgaste y espacio de reserva podrían hacer que esto no siempre funcione ...
Molomby
+1 para la explicación de por qué la destrucción no tiene sentido en los SSD y la sugerencia de usar FileVault. ¿Se registra APFS o sabemos cómo maneja la eliminación de archivos? (¡Probablemente debería ser un hilo separado!)
Stuart H
1
Aquí parece suponerse que la eliminación segura solo es necesaria para las unidades 'internas'. Las unidades conectadas vienen en todas las formas y srm sería apropiado para algunas de ellas.
Rondo