ARCHIVOS IRRECUPERABLES CON SHRED

Cuando borramos archivos, realmente no los estamos borrando, sino que eliminamos el inodo o “índice” que indica su posición en el disco duro.
Imaginemos un libro. Cuando queremos buscar algo vamos al índice, donde nos pone la página del tema que estamos buscando. Si borramos esa entrada del índice, cuando vayamos a buscarla no la encontraremos, por lo que a todos los efectos “no existe”, pero el tema sigue en las páginas del libro.

Al no haber una entrada inode a ese archivo, cuando escribamos nuevos datos, los antiguos “eliminados” se irán sobreescribiendo. Hoy en día existen numerosas aplicaciones diseñadas para recuperar esos archivos supuestamente eliminados, por lo que nuestra privacidad se puede ver comprometida. Para evitar esto usaremos el programa shred.

Como funciona shred

shred sobreescribe los archivos indicados varias veces (25 por defecto) mediante patrones de texto, transformando el archivo original en otro totalmente distinto y sin sentido para el que lo lea.
Si tenemos un archivo llamado archivo.txt con el contenido “Texto importatísimo que no quiero que se lea”, lo pasaremos por shred:

shred archivo.txt

Si ahora volvemos a abrir archvio.txt su contenido es este:


M��i ��h�^WY���u۬T,�iw�c^WY”�*C���(w����^L:vP4���c�^T��
^?h�������֫j�{}^O-b�z�@”g^^^[�0�x
^Sn5͝Y�!g�^S@P��Y8z����v����DD�N霿o�C^G^@�K/�Cy^R|�^N�ԧnGM��”�^Z�7@^F�^WL�^
ӓ���$
t~^Z�n�^^YL��^A1�^|�?��6^Z�u�E�F^G ^N��}M{^S^B�^U^[^Z^Ph��^V^�[y\Ě*�xՓڑ��Ԋ”�^$


Igual 25 veces nos parece poco porque somos muy paranoicos. Vamos a hacer una pasada 40 veces:

shred -n 40 archivo.txt

Para las curiosas, si ponemos el parámetro -v veremos cómo funciona shred:

shred -n 10 -v archivo.txt

shred: archivo.txt: paso 1/10 (random)…

shred: archivo.txt: paso 2/10 (492492)…

shred: archivo.txt: paso 3/10 (249249)…

shred: archivo.txt: paso 4/10 (555555)…

shred: archivo.txt: paso 5/10 (aaaaaa)…

shred: archivo.txt: paso 6/10 (random)…

shred: archivo.txt: paso 7/10 (ffffff)…

shred: archivo.txt: paso 8/10 (924924)…

shred: archivo.txt: paso 9/10 (000000)…

shred: archivo.txt: paso 10/10 (random)…

Esto está muy bien, pero a mi lo que me interesa es eliminar el archivo de forma que no se pueda recuperar. Lo haremos mediante el parámetro -u. Vamos a ver cómo funciona añadiendo el parámetro -v:

shred -u -v archivo.txt

shred: archivo.txt: paso 1/3 (random)…

shred: archivo.txt: paso 2/3 (random)…

shred: archivo.txt: paso 3/3 (random)…

shred: archivo.txt: borrando

shred: archivo.txt: renombrado a 00000000000

shred: 00000000000: renombrado a 0000000000

shred: 0000000000: renombrado a 000000000

shred: 000000000: renombrado a 00000000

shred: 00000000: renombrado a 0000000

shred: 0000000: renombrado a 000000

shred: 000000: renombrado a 00000

shred: 00000: renombrado a 0000

shred: 0000: renombrado a 000

shred: 000: renombrado a 01

shred: 01: renombrado a 0

shred: archivo.txt: borrado

Como vemos, no solo se limita a borrarlo, si no que primero lo sobreeescribe y luego lo renombra varias veces hasta que lo elimina. Cualquier programa de recuperación de archivos borrados encontrará un galimatías inservible.

Mantra para los más paranoicos:

shred -n 40 -z -u -v foto-comprometida.jpg

NOTA: Ojo con el uso de shred en dispositivos, ya que Linux utiliza los dispositivos como archivos. Si le ponemos la opción -u a un dispositivo nos quedaremos sin él: shred -u /dev/sda1

Compartir

4 Comentarios

  1. Recuerdo que hace años cuando usaba Windows XP tenía siempre a mano un programa llamado UNDELETE.EXE que permitía recuperar los archivos borrados de la papelera pero que aún no habían sido sobreescritos. Este programa no venía con Windows, recuerdo que lo copiaba de los diskettes de instalación de MS-DOS 6.22

Deja una respuesta

Your email address will not be published. Required fields are marked *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax