Cargando

Ir a contenido


 


Borrado seguro de archivos con shred

El comando rm en Linux se utiliza para eliminar o borrar un archivo, lo que realmente sucede es que los datos del archivo, su contenido tal cual, no es eliminado.


Escrito por el mar 31 2014 19:08 linux


linux.jpg

El comando rm en Linux se utiliza para eliminar o borrar un archivo, lo que realmente sucede es que los datos del archivo, su contenido tal cual, no es eliminado.

Lo que se destruye es el "índice" o número de inodo que guarda la referencia en el disco duro de como encontrar los datos del archivo. El espacio que ocupan los datos queda disponible para su uso, esto puede suceder en tan solo segundos, que nuevos bloques de datos sobreescriban a los anteriores, o puede ser que pase mucho tiempo, semanas, meses, en lo que el espacio libre es vuelto a utilizar.

Existen software muy especializados o empresas dedicadas a ofrecer servicios de recuperación de datos, basados en el hecho de que los datos pueden seguir ahí y lo que tratan de hacer es reconstruir el índice o leer directamente pista por pista del disco duro, recuperar todo lo posible, incluso información entre pistas y ver lo que resulta y si el disco duro no se uso después del borrado, las posibilidades de recuperación son realmente altas, muy altas.

Asi que el comando rm tal cual no sirve de mucho si de lo que se trata es eliminar completamente cierta información sensible que no quieras que jamás sea recuperada. Por ello tratremos como hacerlo con el comando shred

Abrir una venta de terminal e ir al directorio donde se encuentra el fichero a borrar de forma segura y escribir y ejecutar:
shred nombre_fichero_a_borrar

Asi al ejecutar el comando, el archivo es sobreescrito 25 veces y borrado, dificultando mucho su recuperación. Shred dispone de varios parámetros que optimizan su uso. Se pueden consultar con --help.


Algunos parametros son:
-f, --force (cambia los permisos, si es necesario, para la sobreescritura)
-n, --iterations=N (número de veces que será sobreescrito el fichero)
-u, --remove (elimina el fichero después de sobreescribirlo)
-v, --verbose (progreso de la operación)
-z, --zero (agrega ceros al final del fichero)


El comando shred lo que hace es sobreescribir el archivo o archivos indicados varias veces (25 por defecto) con varios patrones de texto, conviertiendo el archivo original y su contenido en otro totalmente distinto y con información sin sentido. Su uso más simple sería el siguiente:

Supoingamos un archiuvo que tendra un texto como contenido
# more miarchivo.txt

Ejecutamos el comando shred
# shred miarchivo.txt

Luego lo listamos
$ more miarchivo.txt

Se vera algo similar a esto
X()z???Eo???L0rC???.?(Oh??U??+;?????4uM,??K???:???c???ksJ8???cV?????Oc
a>?@?d?>????2?J?Xo?#[??kQ?9?Fi?i0sLS????s???7?6pR??e^??;@\P??

Como se puede observar, basta con indicar el archivo a destruir y con eso es suficiente para dejarlo inutilizado. Nótese que el archivo no se elimina solo se transforma después de las múltiples pasadas. Si deseas eliminarlo, usa la opción -u:
# shred -u miarchivo.txt
# more miarchivo.txt
miarchivo.txt: No such file or directory

El comando shred no elimina automáticamente el archivo porque su uso no solo esta destinado a archivos sino también a dispositivos, asi que puedes por ejemplo eliminar y destruir todo el contenido de una particion de la siguiente manera:
# shred -n 40 /dev/hda1

En la opción anterior no usamos -u porque eliminariamos el dispositivo tambien y eso no lo queremos, solo destruir o dejar inservible la información contenida en la partición, ahora se entiende por que shred por defecto no remueve o elimina completamente el archivo ya que es común trabajar con dispositivos como /dev/hda5 que podría ser una partición que quisieramos sobreescribir con shred pero no eliminar el dispositivo en si.

Una nueva opción shemos utilizado que es -n e indica el número de veces que se sobreescribe el archivo, el defecto son 25. Ahora bien, y que es lo que exactamente sobreescribe shred?, pues puedes verlo con la opción -v:

Tomemos el ejemplo de una imagen

# shred -n 10 -v foto.jpg
shred: foto.jpg: pass 1/10 (random)...
shred: foto.jpg: pass 2/10 (222222)...
shred: foto.jpg: pass 3/10 (aaaaaa)...
shred: foto.jpg: pass 4/10 (555555)...
shred: foto.jpg: pass 5/10 (000000)...
shred: foto.jpg: pass 6/10 (random)...
shred: foto.jpg: pass 7/10 (888888)...
shred: foto.jpg: pass 8/10 (249249)...
shred: foto.jpg: pass 9/10 (ffffff)...
shred: foto.jpg: pass 10/10 (random)...

El archivo foto.jpg es el archivo a destruir, también puedes eliminar imágenes, películas, música, lo que sea, no solo archivos de text, en el ejemplo anterior indicamos solo 10 pasadas, la primera fue un patrón aleatorio, cualquier caracter, no se sabe cual fue, la segunda pasada el patrón usado fue el '2', la pasada 8 nos muestra un patrón de '249', asi que no siempre es solo un caracter, puede ser una combinación de varios.

También la opción -z podría ser útil, lo que hace es agregar una última pasada, independiente de las indicadas, con un patrón de '0' ceros, el archivo al final quedará sobreescrito con '0' aunque en realidad se muestra totalmente vacio asi no deja evidencia de caracteres aleatorios o encriptados.

Por último, veamos que pasa cuando se usa la opción -u que sobreescribe y elimina o remueve el archivo:


# shred -n 15 -z -u -v archivo.doc
shred: archivo.doc: pass 1/16 (random)...
shred: archivo.doc: pass 2/16 (492492)...
shred: archivo.doc: pass 3/16 (db6db6)...
shred: archivo.doc: pass 4/16 (924924)...
shred: archivo.doc: pass 5/16 (random)...
shred: archivo.doc: pass 6/16 (b6db6d)...
shred: archivo.doc: pass 7/16 (6db6db)...
shred: archivo.doc: pass 8/16 (random)...
shred: archivo.doc: pass 9/16 (000000)...
shred: archivo.doc: pass 10/16 (aaaaaa)...
shred: archivo.doc: pass 11/16 (ffffff)...
shred: archivo.doc: pass 12/16 (random)...
shred: archivo.doc: pass 13/16 (249249)...
shred: archivo.doc: pass 14/16 (555555)...
shred: archivo.doc: pass 15/16 (random)...
shred: archivo.doc: pass 16/16 (000000)...
shred: archivo.doc: removing
shred: archivo.doc: renamed to 000
shred: 000: renamed to 00
shred: 00: renamed to 0
shred: archivo.doc: removed

Como mencionaba, al usar la opción -z se agregó una última pasada, la 16 con un patrón de ceros, después se renombra el archivo varias veces y por último se elimina, todos estas sobreescrituras y cambios de nombre, es lo que hace sumamente díficil (y en la enorme mayoría de los casos, imposible) la recuperación de archivos eliminados a través de shred.

Por último, la opción -f te permite forzar la sobreescritura del archivo(s) en caso de que este no tenga permisos de escritura, claro, solo sobre los que el usuario es propietario, básicamente te evita que uses primero un chmod para cambiar a permisos de escritura si no los tuviera el archivo.
¿Te ha gustado y ayudado este Tutorial?
Puedes premiar al autor pulsando este botón para darle un punto positivo
  • -
  • 0

Tutoriales Relacionados


Sin comentarios, sé el primero!

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!
10
VOTA
5
100%
4
0%
3
0%
2
0%
1
0%

  Información

  •   Publicado mar 31 2014 19:08
  •   Actualizado abr 01 2014 08:03
  •   Visitas 995
  •   Nivel
    Avanzado