Borrado seguro de archivos guardados en un disco duro

Estas últimas semanas no he tenido más remedio que ponerme a trabajar en un ordenador que tenía instalado un sistema operativo al que nunca he prestado mucha atención: Mac OS X. Para más señas, tiene instalado Tiger (Mac OS X 10.4), que no es la versión más reciente del sistema pero que me sirve igual. Esta ha sido, por tanto, la oportunidad de jugar un poco con un sistema que, de otra forma, no habría usado nunca (sin rodeos, tengo mejores opciones en la mano). Tras tres semanas en Mac OS X puedo confirmar que hay un montón de cosas de las que los usuarios de Mac OS X se sienten extrañamente orgullosos, pues no tienen motivos para ello: la mayoría de las características de que suelen presumir (Dock, Lanzador, Exposé) están disponibles en ubuntu hace ya bastante tiempo usando Software Libre. Pero bueno, no tengo ganas de flame (no hoy, jeje).

Sin embargo, hay una opción que incorpora el sistema de la manzana que me ha llamado la atención: la opción de «Vaciar la papelera de reciclaje de forma segura» o «Secure Empty Trash» en la versión inglesa. Me llamó tanto la atención que decidí investigar un poco sobre ella y creo que no da todo lo que promete (aunque algo es algo). Voy a exponer un poco de lo que he estado curioseando.

Para empezar, Mac OS X ofrece esta opción por obra y gracia de la aplicación libre srm (secure rm), un sustituto para el comando «rm» que persigue realizar un borrado más eficiente de los datos del disco. Como srm es libre, pensé que estaría en los repositorios de Ubuntu, pero no la encontré.

Como vamos a hablar de borrado efectivo de ficheros, creo conveniente dar un repaso a la situación que tenemos. Lo vamos a hacer usando una nano-FAQ de sólo tres preguntas.

  • ¿Hay diferentes formas de vaciar una papelera? Yo pensaba que una vez vaciada, los archivos estaban borrados y punto final; y que siempre era así. Pues sí que se puede «borrar un archivo de diferentes formas». De hecho, existen un montón de aplicaciones destinadas a recuperar datos «borrados»; lo cual nos dice que no estaban realmente muy borrados. Estas aplicaciones y las técnicas destinadas a recuperar este tipo de información son llamadas forenses y pueden aplicarse a dispositivos y datos tan llamativos (y comprometedores para nuestra privacidad) como las memorias de nuestros teléfonos móviles. La mayoría de personas no sabrían recuperar esa información pero alguien con los conocimientos adecuados podría bien acceder a esos datos que creíamos borrados.
  • Entonces, ¿qué sucede cuando vacío la papelera de reciclaje? Empezaré por el principio; y el principio no es más que decir que cuando borramos un archivo no lo estamos borrando realmente, sino que estamos borrando la entrada correspondiente a ese archivo en la lista de ficheros de nuestro sistema: únicamente borramos el registro, no los datos del archivo en sí mismo. Un equivalente a eso en el mundo real: digamos que en lugar de triturar un documento que ya no queremos, lo que hacemos es quitar la etiqueta de la carpetilla marrón de turno y volcar su contenido en cualquier papelera cercana. Los archivos no serán fáciles de localizar, pero nuestros documentos estarán allí esperando que alguien que sepa dónde buscar los recoja.
  • ¿Qué es eso de vaciar de forma segura? Vaciar de forma segura consiste en añadir un paso previo al borrado del archivo de la lista de archivos de nuestros sistema. Este paso consiste en escribir ceros y unos pseudo-aleatorios sobre la zona del disco que contiene nuestro fichero. Se pueden escribir estos ceros y unos tantas veces como se quiera; cuantas más pasadas mejor será el borrado y menos rastro quedará de los datos. Es importante que esto se haga tantas veces como sea posible porque la intensidad del campo magnético que queda en el disco al sobreescribir un 1 con un 1 es diferente a la que queda cuando escribimos un 0 con un 1, de forma que usando herramientas como microscopios de sonda de barrido (SPM; incluyendo AFM, STM, SNOM, y similares) esta información se puede recuperar. Sólo al final de esta operación de trillado (cuantas más pasadas y más aleatorias, mejor) se borra el registro del fichero.

Ahora bien. visto lo anterior: ¿al hacer este borrado de forma segura los datos son realmente irrecuperables? Pues lo cierto es que no lo creo (ni mucho menos). Evidentemente, esta operación complica mucho la recuperación de los datos; seguramente estaremos poniendo el listón más arriba. Pero, ¿qué sucedería con los sistemas que usan un mecanismo de journaling para posibilitar la recuperación segura del sistema caso de que haya algún problema? En 2008, la práctica totalidad de sistemas de archivos que se utilizan incorporan journaling; creo que prácticamente todos excepto ext2 y FAT. Así que sólo en esos dos esta eliminación segura promete ser realmente segura. La cosa es: ¿son los sistemas más utilizados? La respuesta cae de madura: están lejos de serlo. Seguramente el sistema de archivos más extendido es NTFS (señor Maligno mediante) en entornos Windows, con ext3 dominando el mundo linux y HFS+ en Mac. Todos con journaling.

En principio, sigo sin entender cómo encaja la eliminación segura de un archivo y el mantenimiento del sistema de journaling que haría posible recuperar los datos (ya que la eliminación segura tan sólo borraría la ubicación actual de los datos, pero no todas aquellas por las que haya pasado el archivo, que puede migrar a menudo de posición en este tipo de particiones). Parece claro que para conseguir una eliminación segura la solución pasa por desactivar el journaling del sistema, o bien usar sistemas que no tengan journaling (ambas soluciones reducen las opciones de recuperación del sistema frente a «cuelgues», y por tanto hay más riesgo de perder información). Otra posibilidad es que la versión de srm utilizada por Apple en sus sistemas tenga en cuenta en algún momento el sistema de journaling de su propio sistema de ficheros (algo que, dado los índices de apertura de Apple, posiblemente no sepamos nunca). Si no lo tuviera en cuenta está claro que a pesar de que el borrado así hecho es mejor que el anterior, el empleo del adjetivo «seguro» le viene a todas luces grande. De hecho, creo que este problema es tan innegable que creo que srm pierde gran parte de su potencial y por eso no es una opción muy conocida en distribuciones Linux.

Entonces, ¿cuál es la conclusión? Lo cierto es que la gran mayoría de personas serían incapaces de encontrar un archivo borrado de forma sencilla (sin toda la parafernalia de reescritura de disco), pero una minoría sí sería capaz de recuperarlo. Y la realidad es que creo que en un sistema de ficheros con journaling la probabilidad de que el fichero se pueda recuperar no es nada despreciable; y sería recuperable por exactamente la misma minoría anterior lo cual hace de esta situación algo bastante fútil. A no ser que, como ya comento arriba, Apple mantenga algún control especial sobre este sistema de registro de forma que los datos se eliminen realmente… pero lo dudo. Y aún habría que contar que los datos del registro del journal en sí mismo no se borrarían. Por tanto, creo que pese a ser exótica, la opción no parece realmente lo que dice ser, quedándose a medio camino de la tarea y siendo especialmente molesta por la sensación de mayor seguridad que provee (que será real si usamos sistemas de ficheros arcanos como FAT).

Por supuesto, pero eso sería objeto de otro post: sí que hay una última posibilidad para proteger mejor nuestros datos. En caso de que los datos que manejemos en nuestro sistema sean realmente importantes, consiste en almacenar nuestros datos en una partición cifrada (totalmente, como hacemos con TrueCrypt; si ciframos sólo una parte del disco los datos se pueden escapar también) y, por supuesto, no introducir nuestras claves en el anillo de claves (por si la máquina se viera comprometida). Pero claro, si ciframos todo el disco es posible que en el siguiente control de aeropuerto viajando hacia EE.UU., nos obliguen a meter nuestra frase de paso con la gente mirando por encima de nuestro hombro. ¡Qué dificil todo, coño!

En fin, un post un poco largo y hecho casi a vuela pluma así que puede contener errores o haberme pasado algo por alto, pero creo que las conclusiones a las que llego son ciertas.

Jose Alcántara
Resolviendo problemas mediante ciencia, software y tecnología. Hice un doctorado especializado en desarrollo de hardware para análisis químico. Especialista en desarrollo agile de software. Más sobre Jose Alcántara.

3 comentarios

  1. Que bueno que pudierais hacer un post con unos ejemplos de como hacer la renombracion de datos

    Muchas Gracias colega

  2. Solo algo si te pasa por alto y es que no es una «minoría» la que solo tendría la capacidad de recuperar archivos borrados, solo debes buscar «recuperar archivos borrados accidentalmente» y encontraras una cantidad no despreciables de programas para dicho propósito uno de ellos es libre y funciona con Linux, Mac y Windows… se llama TestDisk y otros con interfaz gráfica que son de pago. Pero de pensar que los archivos se borran realmente de eso nada, solo me llama la atención de que pese a la cantidad «expertos» en software que realizan post’s no es un tema recurrente o muy sabido de hecho muchos estos desconocen o ignoran totalmente sobre este tema y tienen la inocente creencia de que los archivos si se borran realmente.

    Saludos

  3. He visto que la fecha del post es bastante antigua, pese a ello es un muy buen post.

    Me has aclarado algunas dudas que tenia respecto al «borrado con escritura».

    A @Narf solo decir que esos programas de recuperacion de datos borrados accidentalmente no te recuperarán nada que ya haya sido sobrescrito.

    Articulo relacionado: http://www.kriptopolis.org/recuperar-datos-sobreescritos

Los comentarios están cerrados.

Este blog usa cookies para su funcionamiento.    Más información
Privacidad