Información blog

Linux, tutoriales, noticias, sistemas, redes y seguridad informática, entre otras cosas.

sábado, 7 de noviembre de 2015

Cómo borrar archivos en Linux de forma segura

El borrado seguro de archivos de un disco duro es algo muy subestimado en muchos ámbitos, y si bien esto nos puede salvar la vida en más de un momento (por borrados accidentales o por ficheros que en su momento parecían inútiles para luego darse uno cuenta de que no lo son tanto), hay ficheros de cierta relevancia que pueden tener contraseñas o información confidencial que no queremos que sea recuperada. Generalmente el borrado de archivos "normal" se hace mediante el mundialmente conocido comando rm, pero este comando no elimina éste por completo y no impide que herramientas de recuperación... Esto es debido a que aunque el archivo en sí no aparece visible en el sistema, físicamente sí que se encuentra en el disco, y a menos que los bytes que ocupa ese fichero sean sobreescritos, el fichero permanecerá allí indefinidamente. Para evitar que se recupere información indeseada hay que evitar que el archivo permanezca en el disco, para lo cual se usa una gran utilidad llamada shred.

Shred se basa de una utilidad diseñada para borrar un archivo para después sobreescribirlo físicamente en el disco con bytes aleatorios que borrarían el contenido original. El proceso de sobreescritura puede ser realizado varias veces (es más, es recomendable) para asegurarnos de que no dejamos rastro alguno. Aparte de borrar, el comando puede también simplemente sobreescribir la información de un fichero con bytes aleatorios, si bien esto no es usado en demasía.

Basura_triturada

Una de las ventajas que ofrece shred, es que se trata de una herramienta muy simple basada en consola que ya viene instalada por defecto en todos los sistemas operativos basados Linux actuales pues viene incluida con el paquete coreutils, con lo que en este caso no será necesario descargarse ni instalarse nada para borrar definitivamente un archivo.

El comando en cuestión puede aplicarse desde en ficheros particulares hasta en particiones o discos duros enteros, si bien hay que tener en cuenta que para borrar una partición o disco, el destino en cuestión tiene que estar en desuso (no montado).

El comando tiene multitud de parámetros, algunos más útiles que otros. Estos son algunos de ellos:

-u: Probablemente el más usado de todos. Este parámetro se asegura de que el fichero que se vaya a sobreescribir con bytes alteatorios sea eliminado; en caso de no poner este parámetro, el fichero seguirá existiendo aún cuando su información ha sido alterada. Una buena forma de ver que ocurre si no ponemos este parámetro, sería haciendo una sencilla prueba. Supongamos que tenemos un fichero llamado text.txt; a modo de prueba he insertado este texto en él:


Ahora pasaremos el comando sin parámetro alguno (ni siquera el -u) sobre él. Esto hará que el fichero siga existiendo:

shred text.txt

Ahora si volviésemos a consultar su contenido veríamos que del texto que teníamos antes no queda nada, solo un galimatías ilegible:


Más de uno pensará que con eso ya sería suficiente para "limpiar" la información, y si bien es cierto estaríamos malgastando espacio en nuestro disco duro; es por ello que siempre es recomendable acompañar a shred del parámetro -u.

Ejemplo:
shred -u text.txt

-v: El típico verbose que suele acompaña a muchas herramientas. Nos muestra información detallada de los procesos que va realizando en segundo plano. No es un parámetro importante, pero puede ser muy informativo.

-n: Anteriormente he mencionado que es recomendable sobreescribir varias veces el espacio en el disco duro que ocupaba el fichero con valores aleatorios... Tenemos varias opciones, o repetir el comando repetidas veces (cosa tediosa y poco eficiente) o recurrir a este parámetro. Gracias al parámetro -n, podemos declarar el número de veces que queremos sobreescribir el fichero.

Ejemplo de 10 sobreescrituras:
shred -uvn 10 text.txt

-z: Mediante este parámetro podemos decir que después de realizar las sobreescrituras de bytes del fichero, el espacio en bytes ocupado sea sobreescrito por únicamente ceros.

Ejemplo:
shred -uvzn 10 text.txt

-f: Uno de mis favoritos; este parámetro ignora que el fichero sea de solo de lectura y escribe sobre éste en caso de ser necesario.

Ejemplo:
shred -uvzfn 10 text.txt


Obviamente podemos ser muy paranoicos y realizar 50 ciclos de escritura en vez de 10, si bien en los sistemas de archivos modernos no suele ser necesario; aún así cuantos más ciclos de escrituras realicemos, mejor. Ahora os toca a vosotros escoger qué aplicaciones merece borrar definitivamente y cuales no; es importante diferenciar entre aquello que debe de ser borrado si o sí de lo que no, pues una vez eliminado del todo no podremos hacer nada...

Espero que os resulte útil.

Saludos.

No hay comentarios :

Publicar un comentario