Borrado seguro de la información: nadie conocerá tu secreto


Goma de borrar

En la entrada anterior mostré los mejores software existentes para la recuperación de datos.
Con esto quise mostrar que recuperar archivos siempre es posible aun después de haber eliminado las particiones del disco o formateado el mismo.
Recuerdo aquella vez que recupere información bajo las siguientes condiciones:
El Disco en cuestión estuvo sumergido en agua durante unas horas, luego lo abrieron y secaron los platos con un secador de pelo, lo cerraron y lo enchufaron para ver que sucedía.
Por mas daño físico que le hayan causado con una lectura secuencial del mismo se puede rescatar parte de la información, siempre y cuando el BIOS del equipo todavía reconozca el disco.
Es ahí donde nos entra la paranoia y nos damos cuenta de la información que alguien podría recuperar de aquel disquete fallado, de aquella copia en CD/DVD que estaba dañada o de ese disco que tiramos a la basura porque tenia sectores defectuosos.

Primero veamos un poco de teoría:
Todo sistema de archivos tiene su ventaja o desventaja.
Empecemos por los mas conocidos:
FAT (File Allocation Table): Las malas lenguas indican que este sistema fue inventado por Microsoft, pero en realidad el concepto viene de mucho antes de la época del CP/M. En todas sus variantes FAT12, FAT16, FAT32 se caracteriza por ser un sistema de archivos simple pero con un gran problema que es la desfragmentacion. Significa que cada vez que borramos y copiamos información va dejando huecos que no se vuelven a llenar. Cuando le indicamos al sistema operativo que borre un archivo no borra físicamente la información sino que le agrega una marca al mismo dejando el espacio ocupado.
NTFS: si bien se agrego capacidad de journaling, atributos extendidos sobre los archivos y mayor tolerancia a fallos también sufre del mismo problema que FAT, se desfragmenta.
Tanto NTFS como FAT en todas sus versiones son sistemas de archivos relativamente fáciles de escudriñar para recuperar información. Muchas veces con el antiguo comando del DOS undelete se logra recuperar algo. Son lo que yo denomino sistemas “sucios” de archivos, por la cantidad de información que deja desperdigada por el disco sin que nosotros nos enteremos.

Los sistemas de archivos de *nix: XFS, JFS, EXT2, EXT3, Reifer, etc. son sistemas mas robustos el sistema de almacenamiento es diferente, donde se intenta optimizar espacio en disco. Contienen una tabla de alocacion de archivo de tamaño fijo, donde se almacenan los i-nodos. Los i-nodos son una versión muy mejorada de FAT, donde un puntero i-nodo almacena información del archivo (path, tamaño, ubicación física). En cuanto a la ubicación, es una referencia a un sector del disco donde están todos y cada una de las referencias a los bloques del archivo fragmentado. Estos bloques son de tamaño especificable cuando se crea el sistema de archivos lo cual asegura un buen aprovechamiento del espacio libre.
Cuando borramos un archivo en *nix, realmente lo borramos y es muy difícil volver a recuperarlo pero no imposible.

Por las razones expuestas un método seguro de borrado seria recorrer secuencialmente el disco y llenarlo con valor “0″ (cero), de esta forma seria prácticamente improbable recuperarlo.
Como hacerlo sin necesidad de un producto comercial?
Desde una consola de bash seria así de fácil:
dd if=dev/zero of=/dev/hda
Si queremos agregarle algo mas de dificultad podríamos volver a recorrer el disco y llenarlo con valores aleatorios
dd if=dev/random of=/dev/hda
Una combinación de ambas cosas podría ser la siguiente:
for ( i = 0;i>10;i++ ); do
dd if=dev/zero of=/dev/hda && dd if=/dev/random of=dev/hda
done

Con esto primero escribimos valores “0″ (cero) en el disco y luego aleatorios unas 10 veces.
ATENCIÓN:dependiendo del tamaño de disco puede llegar a tardar bastante en completar la operación.
También podríamos utilizar el comando shred, lo que hace este comando es sobrescribir la información repetidas veces para que sea imposible su recuperación aun con el mejor soft.
Un ejemplo seria:
shred -vfz -n 50 /dev/hda
Con esto le indicamos que llene el disco de “0″ (cero), con la opcion -z, unas 50 iteraciones, el -v verbose para que vaya mostrando lo que va haciendo y -f para forzar los permisos para hacerlo.
Nuevamente, alquilen una película o mejor salgan con su novio/a o amigo/a porque va a tardar un montón.

Una idea seria armar una mini distro arrancable de disquete con un script para que haga el borrado seguro del disco (diskwipe) automáticamente por si lo tenemos que hacer en varias maquinas, por ejemplo en empresas que donan su equipamiento informático viejo y no quieren que se filtre información sensible.

Como verán, una idea simple nos puede proteger del trashing electrónico.

ESTE TEXTO SE PUBLICA BAJO LICENCIA CREATIVE COMMONS BY-NC-SA 2.5 AR.

Por lo tanto, usted es libre de: 1) Copiarlo, distribuirlo y exhibirlo. 2) Hacer obras derivadas. Bajo las siguientes condiciones: 1) Debe dar atribución mencionando el nombre del autor y del LUG Zona Norte. En caso de las notas que no llevan firma, mencionar sólo el nombre del LUG.
2) Usted no puede usar esta obra con fines comerciales. 3) Si usted altera, transforma, o crea sobre este texto, sólo podrá distribuir la obra derivada resultante bajo una licencia idéntica a ésta.

Más detalles y texto legal de la licencia en: http://creativecommons.org/licenses/by-nc-sa/2.5/ar

  1. #1 by Sultanovich on 11/02/2007 - 16:03

    Con esto te pasaste, es un tema que hace meses tenia en la cabeza. Por lo menos con esta opcion ya no hay excusas para una limpieza efectiva del disco. A proposito el uso de estos comandos lo aprendistes solo leyendo los man, ya que veo que utilizas muchisimo la consola.

    Saludos.

  2. #2 by sechole on 11/02/2007 - 21:32

    A veces descubro cosas en la consola simplemente con el comando apropos [palabra clave de lo que busco]. Leyendo un manual de debian descubri los devices especiales (zero, null, random) y la posibilidad de combinarlos con otros comandos para lograr cosas . Inclusive leyendo los man de algún comando se descubren esas cositas que pueden ayudar muchísimo.

(will not be published)
IMPORTANT! To be able to proceed, you need to solve the following simple math (so we know that you are a human) :-)

What is 13 + 2 ?
Please leave these two fields as-is: