¿Porque el comando shred hace tantas iteraciones (minimo 3) para un borrado seguro? | Seguridad

Iniciado por Drakaris, 13 Diciembre 2021, 23:23 PM

0 Miembros y 5 Visitantes están viendo este tema.

Drakaris

Buenos dias.

Siempre he tenido una pregunta curiosa sobre el comando shred....

Como bien sabemos el comando shred, nos permite hacer un borrado seguro desde cualquier distribucion.

Yo acostumbro mucho a utilizar estos parametros

Citar
shred -vuz -n 10 <file>

Los parametros son:

  • -u: Elimina el archivo una vez sobrescrito
  • -z: Sobrescribe el archivo a zeros (supongo que es el que se encarga de convertir los bits 1 a 0)
  • -v: Pinta por pantalla el proceso de shred
  • -n: Numero de sobrescrituras que hace antes de eliminar el archivo (si esta el -u)

Ok, hasta aquí lo entiendo, pero la pregunta del millon..... ¿Porque tantas pasadas?

Yo lo entiendo así, y es que, el -z convierte los bits 1 a 0, haciendo que este no se pueda recuperar con alguna herramienta foranea (ejemplo: foremost).

Se dice que (o lo he leido/oido) que cuando más pasadas más seguro es y...¿menos posible de recuperar? eso me suena, pero de donde.

En caso de que se pueda recuperar,¿no es imposible auque sea una unica pasada (sobrescrito una iteracion)?

No acabo de entender porque tantas iteraciones...

Es por mera curiosidad...para entender más sobre su funcionamiento auque no he visto ningún sitio que explicara la razon de las iteraciones....

Además la salida que este imprime en pantalla....como lo interpreto??
Citar
$ shred -uzv -n 5 2021-12-04-23-07-11.031-VBoxSVC-1990.log
shred: 2021-12-04-23-07-11.031-VBoxSVC-1990.log: pass 1/6 (random)...
shred: 2021-12-04-23-07-11.031-VBoxSVC-1990.log: pass 2/6 (000000)...
shred: 2021-12-04-23-07-11.031-VBoxSVC-1990.log: pass 3/6 (random)...
shred: 2021-12-04-23-07-11.031-VBoxSVC-1990.log: pass 4/6 (ffffff)...
shred: 2021-12-04-23-07-11.031-VBoxSVC-1990.log: pass 5/6 (random)...
shred: 2021-12-04-23-07-11.031-VBoxSVC-1990.log: pass 6/6 (000000)...
shred: 2021-12-04-23-07-11.031-VBoxSVC-1990.log: removing
shred: 2021-12-04-23-07-11.031-VBoxSVC-1990.log: renamed to 0000000000000000000000000000000000000000
shred: 0000000000000000000000000000000000000000: renamed to 000000000000000000000000000000000000000
shred: 000000000000000000000000000000000000000: renamed to 00000000000000000000000000000000000000
shred: 00000000000000000000000000000000000000: renamed to 0000000000000000000000000000000000000
shred: 0000000000000000000000000000000000000: renamed to 000000000000000000000000000000000000
shred: 000000000000000000000000000000000000: renamed to 00000000000000000000000000000000000
shred: 00000000000000000000000000000000000: renamed to 0000000000000000000000000000000000
shred: 0000000000000000000000000000000000: renamed to 000000000000000000000000000000000
shred: 000000000000000000000000000000000: renamed to 00000000000000000000000000000000
shred: 00000000000000000000000000000000: renamed to 0000000000000000000000000000000
shred: 0000000000000000000000000000000: renamed to 000000000000000000000000000000
shred: 000000000000000000000000000000: renamed to 00000000000000000000000000000
shred: 00000000000000000000000000000: renamed to 0000000000000000000000000000
shred: 0000000000000000000000000000: renamed to 000000000000000000000000000
shred: 000000000000000000000000000: renamed to 00000000000000000000000000
shred: 00000000000000000000000000: renamed to 0000000000000000000000000
shred: 0000000000000000000000000: renamed to 000000000000000000000000
shred: 000000000000000000000000: renamed to 00000000000000000000000
shred: 00000000000000000000000: renamed to 0000000000000000000000
shred: 0000000000000000000000: renamed to 000000000000000000000
shred: 000000000000000000000: renamed to 00000000000000000000
shred: 00000000000000000000: renamed to 0000000000000000000
shred: 0000000000000000000: renamed to 000000000000000000
shred: 000000000000000000: renamed to 00000000000000000
shred: 00000000000000000: renamed to 0000000000000000
shred: 0000000000000000: renamed to 000000000000000
shred: 000000000000000: renamed to 00000000000000
shred: 00000000000000: renamed to 0000000000000
shred: 0000000000000: renamed to 000000000000
shred: 000000000000: renamed to 00000000000
shred: 00000000000: renamed to 0000000000
shred: 0000000000: renamed to 000000000
shred: 000000000: renamed to 00000000
shred: 00000000: renamed to 0000000
shred: 0000000: renamed to 000000
shred: 000000: renamed to 00000
shred: 00000: renamed to 0000
shred: 0000: renamed to 000
shred: 000: renamed to 00
shred: 00: renamed to 0
shred: 2021-12-04-23-07-11.031-VBoxSVC-1990.log: removed

Si alguíen me lo puede explicar, para entender....se lo agradeceria.

Gracias de antemano.  :D
Lo increible, no es lo que ves, sino como es

@XSStringManolo

Porque en realidad no estás borrando la memoria real.

Te lo ejemplifico:

Imagínate que eres pintor, pintas con spray desde 1 metro de distancia y tienes un cuadro. Pintaste un cuadro de rojo y lo quieres borrar escribiéndole uno verde encima. Le das una pasada de spray verde y habrás pintado una buena parte del rojo que había debajo, pero no lo pintaste todo. Es decir, ahora tienes rojo y verde mezclados. Si vuelves a darle otro chorro de spray desde un metro, habrás pintsod un poco mas del rojo de verde. Cuantas mas veces le des al spray, mas acabaras tapando el rojo con verde.

Que pasa si solo le das una pintada y tapas bastante del rojo? Pues que pueden quedar las esquinas sin pintar, asique el que investigue, al ver las 4 esquinas y saber que es común pintar cuadrados, sabrá que a pesar de que pintaste de verde, antes había un cuadrado rojo ahí.

Cómo se traduce esto a la informática?
Cuando llenas el contenido de un archivo con otra cosa (ceros), le estás diciendo al sistema, tenía un archivo con X contenido que ya no me interesa, ahora quiero otro nuevo lleno de ceros. Entonces es el sistema el encargado de hacer lo que le parezca mas adecuado según como esté programado. A veces es mas eficiente ignorar completamente el espacio de memoria en donde estaba el archivo que quieres sobrescribir y simplemente lo marca como "borrado" y crea lo sobrescrito en otro lugar de memoria independiente, dejando todos los datos del archivo antiguo sin tocar. Esto se puede hacer así, porque es mas rápido (y los discos duros trabajan menos) escribir en un archivo: ESPACIO_REUSABLE que cambiar todo el contenido del archivo.

Imagínate si cada vez que borras un archivo de un tera lo que tardaría el sistema en cambiar todos los bytes. Cada vez que borrases un archivo, sería casi tan lento como formatear el disco. Los discos durarían menos, etc. Mas eficiente marcarlo como espacio disponible y dejar el contenido en el disco sin rescribir en el.

Con shred, lo que se trata es de escribir múltiples veces para que sea mas probable que se sobrescriba (reuse) parte de la memoria original en la que estaba el archivo. Esto está muy lejos de ser un método 100% seguro.

Al final, tu no escribes directamente en memoria, delegas en el sistema que lo haga él por eficiencia. El problema de fragmentación del disco se da por este mismo motivo. Si tenías un archivo de 1kb y lo sobrescribes con uno de 0.8kb, es posible que el sistema decida reusar ese espacio y se te queden 0.2 kb que nunca se van a llenar. A lo largo del tiempo acabarás con muchos trozos pequeños así sin uso y el sistema tiene que andar a saltos por el sistema de ficheros (tardando mas en leer archivos).

En resumen, tu no escribes directamente en el disco. Tu escribes en el sistema de ficheros. Es el sistema operativo el que decide en que lugar real del disco debe escribirlo. Dejando archivos escritos en el disco real, aunque estos archivos ya no existan en el sistema de ficheros.

Cuando un disco tiene un trozo físico defectuoso, (imagínate por ejemplo que le dieses un pinchazo con una aguja) puedes incluso indicarle al sistema de ficheros que no lo use. Asique como ves, por mucho que escribas ficheros, y borres, jamás eliminarás la información de ese sector, porque el sistema no lo está usando. Alguien podría mappear ese sector a conciencia y recuperar la información de ese sector que no volviste a usar. Algo así pasa cuando borras el archivo pero el sistema decide escribirlo en otro lugar. Puedes tirarte años borrando y escribiendo archivos, y que puedas recuperar del disco archivos intactos del 2011 xD

Si quieres borrar de verdad, tienes que escribir todo a ceros en un formateo de medio nivel. El formateo que hace por ejemplo windows, lo único que hace es borrar el sistema de ficheros y algunos archivos internos. Es decir el 99% de la información que formateaste sigue ahí, y si no escribes nada en el disco, la puedes recuperar prácticamente al 100%.

Ni siquiera el borrado a medio nivel es garantía de borrado 100%. Puede haber partes de memoria interna del disco que no estén accesibles y se usen para funcionamiento interno del disco. Incluso se rumorea que el disco queda magnetizado y aún escrito a ceros se pueden leer las microfracturas del disco y las magnetización y recuperar datos. No sé como de real es esto, pero bajo mi opinión tiene bastante verosimilitud. Porque los máximos expertos en seguridad de los gobiernos utilizan máquinas desimantadoras que pueden costar entre 800$ y 6000$ para borrar los discos usando magnetismo.
Tengo constancia de denuncias a juzgados donde reportan que le modificaron datos y fechas en el disco y que cuando reclamaron el disco incautado para que la defensa aportase una prueba pericial, confirmarles que el disco ha sido borrado con imanes de neodimio y no hay forma de recuperar las pruebas.

Serapis

Cita de: Drakaris en 13 Diciembre 2021, 23:23 PM
...la pregunta del millon..... ¿Porque tantas pasadas?
Se dice que (o lo he leido/oido) que cuando más pasadas más seguro es y...¿menos posible de recuperar? eso me suena, pero de donde.
En caso de que se pueda recuperar,¿no es imposible auque sea una unica pasada (sobrescrito una iteracion)?
No acabo de entender porque tantas iteraciones...
Es por mera curiosidad...para entender más sobre su funcionamiento auque no he visto ningún sitio que explicara la razon de las iteraciones....
La grabación de datos en soportes regrabables, deja físicamente un pequeño rastro de lo que anteriormente había debajo.
Imagina un pizarra del cole, sí hecha de piedra de pizarra o símil... en la que escribes con tiza.
Cuando te piden que la borres, según la fuerza que apliques se borra del todo, solo se desdibuja un poco o un punto intermedio entre esos extremos.
Si escribes encima, dificulta leer lo que había debajo...
Sucede lo mismo en casi cualquier otro soporte físico (caso típico de los soportes magnéticos). De hecho en los discos duros, hay una opción (típicamente no dispoonible/accesible al usuario), que permite indicar 'la fuerza' con que el disco duro escribe los datos. Cuanto más fuerte, más dificulta la lectura bajo él, pero también más fácil deja esa impresión para ser leída posteriormente, además, cuanto más fuerza se aplique con cada escritura, más se deteriora el disco, luego elegir un valor adecuado es un tema que los fabricantes deben estudiar y elegir con delicadeza...

Naturalmente no es asequible a cualquiera acceder al contenido previo, pero con paciencia (mucha paciencia) y la tecnología adecuada (un osciloscopio sería suficiente), pueden leerse varias copias previas (dicen que hasta 5), aunque asumo que esto último depende mucho de la tecnología empleada. Si no tienes registradas chorrocientas patentes, o eres multimillonario, ten por seguro que nadie va a perder tiempo en revisar lo que tenías escrito en tu disco duro, primeor porque no hay tanta gente que tenga la tecnología adecuada y segundo porque quienes la tienen la dedican a casos donde sea menester (que los contraten o ellos se autoempleen legal o ilegalmente).

Cita de: Drakaris en 13 Diciembre 2021, 23:23 PM
Cuando hablamos de un disco duro, estamos hablando de

Yo lo entiendo así, y es que, el -z convierte los bits 1 a 0, haciendo que este no se pueda recuperar con alguna herramienta foranea (ejemplo: foremost).
No. No tiene por qué.
De hecho si revisas el log que das al final, verás que en cada pasada ha escrito valores distintos, en unos ha colocado valores aleatorios (random), también hace una escitura con 0 y una con valor 255 (byte).
Sería preferible que todas las pasadas fuera con valores aleatorios.

La escritura aleatoria adolece de la lentitud... pues crear valores aleatorios es un proceso 'caro' y al final puede no ser tan aleatorio, según el sistema. De hecho es preferible al caso no confiar en el sistema aleatorio que provee el S.O. y tirar de uno propio.
Más aun, yo lo que elegiría aleatorio serían sectores entre los que se van a borar datos... y haría un xor entre dos sectores para escribir el resultado en un tercer sector.


Por cada pasada solicitada
   desordenar lista de sectores (implicados)
   s1 = listasectores(ultimoº)
   s2 = listasectores(penultimoº)
   for cada sector a borrar desde el antepenultimoº hasta el 1º
       s3 = sector
       bucle para k desde 0 a  tamañosector -1
           s1(k) = s2(k) xor s3(k)
       siguiente
       s1 = s2
       s2= s3
   siguiente
   // al llegar aquí, quedan s2 y s3 originales, sin rescribir
   s3= random entre listasectores que no sea s1 ni s2 ni el s3 previo
   bucle desde 0 a  tamañosector -1
       s1(byte) = s2(byte) xor s3(byte)
   siguiente
   s1 = s2
   s2= s3

   s3= random entre listasectores que no sea s1 ni s2 ni el s3 previo
   bucle desde 0 a  tamañosector -1
       s1(byte) = s2(byte) xor s3(byte)
   siguiente
   s1 = s2
   s2= s3
siguiente pasada


Yo tengo un programa que utilizo para borar ficheros, es decir hace casi esto mismo, solo que como se trata habitualmente de 1 solo fichero en cada ocasión y suele ser a menudo pequeño, en vez de operar con sectores opera con arrays de x kb. dentro del mismo fichero, y por tanto divide el fichero en y búferes, dado el tamaño de cada uno, y el resto es lo mismo.
La operación con xor es muy rápido, y o lento del random, es solo para 'barajar' los bloques, es decir una lista corta, no para cada byte.
A éste respecto, muchos programas no aclaran cuando habland de valores aleatorios, si cada byte es aleatorio y si crean un único buffer aleatroio y luego dicho buffer lo escriben a diestro y siniestro hasta completar la escritura. Esto es más rápido que elegir aleatoriamente cada byte cada vez, pero obviamente deja un patrón repetitivo.

El número de pasadas, jamás debiera ser menos de 2. Cualquier 'discrepancia' con el algoritmo y los datos previamente existentes, podrían hacer fracasar el intento. Con dos pasadas al menos asegurar haber reescrito cada contenido con casi un valor distinto al previamwente existente.


Cita de: Drakaris en 13 Diciembre 2021, 23:23 PM
Además la salida que este imprime en pantalla....como lo interpreto??
Si alguíen me lo puede explicar, para entender....se lo agradeceria.
La salida que te ofrece, señala claramente en cada pasada el tipo de patrón utilizado...
luego lo que hace también es cambiar el nombre del fichero varias veces, antes de borrarlo de la tabla de ficheros (eliminación software), así también intenta que ni el nombre del mismo sea fácil de recuperar... para ser honestos, el nombre debiera ser remplazado primero por otro con la misma longitud que tiene el nombre actual... ahí me parece que empieza por uno mucho mas corto a la vista del nombre original (me edito, los '0' seguidos ocupan menos espacio y seguramente haya la misma cantidad de ceros que caracteres tiene el fichero.log).
Fíjate que en cada ocasión va acortando el nombre en un caracter menos.

Si no he entendido mal, lo que te señala StringManolo no es correcto (no lo he leído entero). Lo que dice solo es cierto si alguien escribe un nuevo fichero. Carece de utilidad práctica escribir un fichero nuevo con un contenido distinto así tenga ese nuevo fichero el mismo tamaño que el original.
El fichero queda rescrito desde el momento en que lees y escribes al mismo lugar donde yace el fichero y solo cuando terminas las pasadas es cuando le dices al software elimínalo...
Si yo abro un canal de lectura y otro de escritura en el mismo fichero y primero leo desde la primera posición y luego escribo en esa misma posición, ese contendio queda reescrito (borrado), en los mismos sectores físicos que donde yacía el contenido previo.

Drakaris

Buenas! Si no he entendido mal de tu respuesta @XSStringManolo...  :D
Cita de: @XSStringManolo en 14 Diciembre 2021, 02:28 AM
Imagínate que eres pintor, pintas con spray desde 1 metro de distancia y tienes un cuadro. Pintaste un cuadro de rojo y lo quieres borrar escribiéndole uno verde encima. Le das una pasada de spray verde y habrás pintado una buena parte del rojo que había debajo, pero no lo pintaste todo. Es decir, ahora tienes rojo y verde mezclados. Si vuelves a darle otro chorro de spray desde un metro, habrás pintsod un poco mas del rojo de verde. Cuantas mas veces le des al spray, mas acabaras tapando el rojo con verde.

Cuando yo hago el shred -zu -n 10, tu similitud sería hacer como 10 pintadas en el cuadro....eso lo entiendo

Cita de: @XSStringManolo en 14 Diciembre 2021, 02:28 AM
Que pasa si solo le das una pintada y tapas bastante del rojo?
Esto sería el caso de que hiciera 1 pintada: shred -z -n 0. (por defecto hay uno, por la cual hago 0 pasadas opcionales + 1 que se hará por defecto)

Cita de: @XSStringManolo en 14 Diciembre 2021, 02:28 AM
Pues que pueden quedar las esquinas sin pintar, asique el que investigue, al ver las 4 esquinas y saber que es común pintar cuadrados, sabrá que a pesar de que pintaste de verde, antes había un cuadrado rojo ahí.
Si yo solo le hago una pasada, en un archivo que contiene 700K

%PDF-1.4
%����
1 0 obj
<</Creator (Mozilla/5.0 \(X11; Linux x86_64\) AppleWebKit/537.36 \(KHTML, like Gecko\) Chrome/96.0.4664.45 Safari/5>
/Producer (Skia/PDF m96)
/CreationDate (D:20211212130932+00'00')
/ModDate (D:20211212130932+00'00')>>
endobj
3 0 obj
<</ca 1
/BM /Normal>>
endobj
13 0 obj
<</Type /XObject
/Subtype /Image
/Width 140
/Height 245
/ColorSpace /DeviceRGB
/BitsPerComponent 8
/Filter /DCTDecode
/ColorTransform 0
/Length 5982>> stream
����^@^PJFIF^@^A^A^A^@x^@x^@^@��^@C^@
^G^G    ^G^F
        ^H      ^K^K
^L^O^Y^P^O^N^N^O^^^V^W^R^Y$ &%# #"(-90(*6+"#2D26;=@@@&0FKE>J9?@=��^@C^A^K^K^K^O^M^O^]^P^P^]=)#)====================>
....

y al ejecutar shred -z -n 0, este me sobrescribiria el fichero a

^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^...

que cuando más pasadas son más caracteres (^@) me genera....Estos caracteres random (sin ningun sentido) que unicamente sirve para "tapar"/sobreescribir los sectores de este archivo....
Haciendo que sea más dificil obtener el archivo original intactamente...


https://imgur.com/gallery/B5SJe2I

Por la cual si un perito forense obtiene este sector (todo el recuadro), unicamente vera el archivo corrupto o deformado....o que incluso se puede leer/abrir....

Cita de: @XSStringManolo en 14 Diciembre 2021, 02:28 AM
Al final, tu no escribes directamente en memoria, delegas en el sistema que lo haga él por eficiencia
Claro no lo escribes fisicamente sino que modificas los datos a la tabla de sistema de archivos, tanto el nombre como los datos. Y ya el sistema se encarga.

Cita de: @XSStringManolo en 14 Diciembre 2021, 02:28 AM
El formateo que hace por ejemplo windows, lo único que hace es borrar el sistema de ficheros y algunos archivos internos.
Esto cuando pasa, en un formateo rápido o formateo normal?





Cita de: Serapis en 14 Diciembre 2021, 18:50 PM
De hecho en los discos duros, hay una opción (típicamente no dispoonible/accesible al usuario), que permite indicar 'la fuerza' con que el disco duro escribe los datos. Cuanto más fuerte, más dificulta la lectura bajo él, pero también más fácil deja esa impresión para ser leída posteriormente, además, cuanto más fuerza se aplique con cada escritura, más se deteriora el disco,

Esto te refieres a los discos HDD, y como se puede acceder a esta opción no disponible por el usuario? En linux

Cita de: Serapis en 14 Diciembre 2021, 18:50 PM
Naturalmente no es asequible a cualquiera acceder al contenido previo, pero con paciencia (mucha paciencia) y la tecnología adecuada (un osciloscopio sería suficiente), pueden leerse varias copias previas (dicen que hasta 5), aunque asumo que esto último depende mucho de la tecnología empleada. Si no tienes registradas chorrocientas patentes, o eres multimillonario, ten por seguro que nadie va a perder tiempo en revisar lo que tenías escrito en tu disco duro, primeor porque no hay tanta gente que tenga la tecnología adecuada y segundo porque quienes la tienen la dedican a casos donde sea menester (que los contraten o ellos se autoempleen legal o ilegalmente).

En pocas palabrás, dices que cuando más sobreescrituras haces, más tiempo la persona interesada en sacar la informacion del HDD/SDD tardará en sacar la información e incluso este puede venir deformado.....Es así?


Cita de: Serapis en 14 Diciembre 2021, 18:50 PM
La salida que te ofrece, señala claramente en cada pasada el tipo de patrón utilizado...
luego lo que hace también es cambiar el nombre del fichero varias veces, antes de borrarlo de la tabla de ficheros (eliminación software), así también intenta que ni el nombre del mismo sea fácil de recuperar... para ser honestos, el nombre debiera ser remplazado primero por otro con la misma longitud que tiene el nombre actual... ahí me parece que empieza por uno mucho mas corto a la vista del nombre original (me edito, los '0' seguidos ocupan menos espacio y seguramente haya la misma cantidad de ceros que caracteres tiene el fichero.log).
Fíjate que en cada ocasión va acortando el nombre en un caracter menos.
Ok muchas gracias, ahora entiendo un poco mejor su significado.


Gracias a los dos @XSStringManolo y @Serapis, por la gran nivel de detalle al que se me ha respondido la duda. Muchas gracias.

Os he escrito así como más o menos lo he entendido y las dudas que me han surgido.

Muchas gracias por vuestro tiempo y honestidad.  :D
Lo increible, no es lo que ves, sino como es

Drakaris

Más dudas.....
Como hago un eliminado seguro de un carpeta...
yo lo hago así
find ./carpeta -exec shred -uzv -n 10 {} +

Lo hago con find y shred, pero shred tiene internamente la posibilidad de eliminar de manera recursiva.....por curiosidad.....


Gracias por vuestra atencion y tiempo. Buenas noches.
Lo increible, no es lo que ves, sino como es

Serapis

Cita de: Drakaris en 15 Diciembre 2021, 00:23 AM
Esto te refieres a los discos HDD, y como se puede acceder a esta opción no disponible por el usuario? En linux
De venir, viene en la BIOS.

Cita de: Drakaris en 15 Diciembre 2021, 00:23 AM
En pocas palabrás, dices que cuando más sobreescrituras haces, más tiempo la persona interesada en sacar la informacion del HDD/SDD tardará en sacar la información e incluso este puede venir deformado.....Es así?
No necesariamente más tiempo, si al menos más complejo, que esto luego redunde en más tiempo o no es otra cosa, aunque puede asumirse que suele ser así.

Lo que en realidad incide es en la incapacidad de recuperación exhaustiva en el sentido de completitud, es decir no será un rescate tan riguroso, y por tanto quedarán más lagunas sin poder ser resueltas (independientemente del tiempo empleado, pero en efecto a más tiempo se le dedique más probable que se rescaten datos).

Drakaris

Cita de: Serapis en 15 Diciembre 2021, 00:43 AM
De venir, viene en la BIOS.
No necesariamente más tiempo, si al menos más complejo, que esto luego redunde en más tiempo o no es otra cosa, aunque puede asumirse que suele ser así.

Lo que en realidad incide es en la incapacidad de recuperación exhaustiva en el sentido de completitud, es decir no será un rescate tan riguroso, y por tanto quedarán más lagunas sin poder ser resueltas (independientemente del tiempo empleado, pero en efecto a más tiempo se le dedique más probable que se rescaten datos).
Entiendo ok, muchas gracias a los dos.
Lo increible, no es lo que ves, sino como es

#!drvy

Cabe destacar una cosa:

Todo esto que se esta discutiendo funciona en discos magnéticos, HDDs.

No funciona en SSD, NVME o memorias tipo flash (USB modernos, sdcards, etc.).  La explicación aquí:

Is shred bad for erasing SSDs?
https://unix.stackexchange.com/questions/593181/is-shred-bad-for-erasing-ssds

Saludos

el-brujo

Muy cierto #!drvy  porque para el "borrado seguro" de un SSD ya que lo único que estamos desgastando la unidad y lo mejor es no utilizar herramientas de terceros, porque se recomienda utilizar la herramienta oficial de fabricante del SSD

Herramientas (programas) de borrado seguro discos HDD, unidades SSD, teléfonos Android
https://blog.elhacker.net/2020/08/herramientas-gratuitas-programas-de-borrado-seguro-permanente-ssd-android.html

Apartado:
Cómo borrar tu disco SSD de forma segura

CarlosR

Si quieres borrar de verdad, tienes que escribir todo a ceros en un formateo de medio nivel. El formateo que hace por ejemplo windows, lo único que hace es borrar el sistema de ficheros y algunos archivos internos. Es decir el 99% de la información que formateaste sigue ahí,