El otro día viendo un programa documental sobre ciencia forense, un técnico decía que es imposible borrar los datos de un disco duro, a no ser que lo quemaras o hicieras explotar.
Introducción
En las múltiples series sobre técnicas forenses, como CSI, NCIS, etc., vemos a menudo como sacan datos de discos duros con gran facilidad, pero… ¿es realmente tan fácil?
Pues la verdad es que en la mayoría de los casos si lo es, el borrado desde el sistema operativo no hace desaparecer los datos, si no que borra su entrada en el índice del disco, suficiente para dejar el espacio disponible para otros archivos. Mientras el espacio liberado no sea sobreescrito por nuevos archivos, los datos seguirán ahí, aunque desaparezcan del navegador de archivos.
Si tenemos información confidencial que de ninguna manera pueda caer en manos de terceros, cuando tenemos que enviar un equipo a reparar o tenemos que deshacernos de un disco duro, puede ser crucial asegurarse de que no se podrán recuperar los datos.
La teoría que defiende que no es posible borrar los datos
Hay quién sostiene que siempre es posible recuperar datos sobreescritos usando microscopia de fuerzas magneticas o MFM por sus siglas en inglés «Magnetic Force Microscopy», sobre todo a partir de un artículo publicado en Usenix por Peter Gutmann de la Universidad de Auckland en 1996, en el que se dice que al sobreescribir hasta dos veces un bit se podría determinar el valor anterior ya que si se escribe un 1 sobre un 1 se obtiene 1,05 y 0,95 si es un 0, algo que teóricamente podría ser leído usando un microscopio de fuerzas magnéticas o un microscopio de túnel. También sostiene que aunque se sobreescriba muchas veces, siempre quedan rastros en los canales de separación de las pistas por las diferencias de posicionamiento de los cabezales.
El el gráfico se puede ver la captura de dos pistas de un disco duro hecha con un microscopio de fuerzas magnéticas, a y c son dos pistas y b es la separación entre ambas, necesaria para que los datos de una pista no afecten a la otra.
Esto ya era algo cercano a la ciencia ficción con los discos duros de 1996 y fue refutado en un informe realizado en 2008 por expertos de BDO Kendalls, Computer Forensic Examiner y Symantec, en el que sobreescribieron varios discos y trataron de utilizar el sistema planteado por Peter Gutmann para recuperar los datos, lo que dejó claro que era imposible determinar si las variaciones de nivel de un determinado bit estaban producidas por un valor anterior o por variaciones de temperatura o humedad que afectan al nivel tanto o más que los valores anteriores.
En las pruebas realizadas, la probabilidad de recuperar correctamente tan solo 4 letras (32 bits), era del 0,00002317%.
Los discos duros actuales (2012) han pasado de una densidad de datos de 120 Mbits / In² de 1996 a 633 Gbits / In², es decir, se ha aumentado más de 5000 veces la densidad de grabación de los datos desde que Gutmann escribió ese informe, esto multiplica la dificultad, para hacernos una idea, la proporción sería como pasar de observar una letra de 1m a una de 0,2mm.
Aun suponiendo que la propuesta de Gutmann fuera posible, cosa que no parece probable, para leer un disco duro usando un microscopio de fuerzas magnéticas sería necesario capturar toda la superficie de los platos. Los discos duros actuales, según la generación y capacidad, tienen entre 2 y 4 platos (de 4 a 8 superficies), suponiendo que pudiéramos hacer una captura de 100µm² por minuto (algo muy optimista), para leer toda la superficie de un disco duro promedio necesitaríamos unos 20 años con un único microscopio y luego habría que componer un mapa y procesar todos los bits uno por uno, lo que para un disco duro de 500GB, bastante normalito hoy en día, la cantidad de bits para analizar sería de 4.3 billones (billones europeos, —no— millardos).
Cualquiera con un poco de sentido común se dará cuenta de que esta tecnología de recuperación de datos es ciencia ficción.
En la práctica, ninguna empresa de recuperación de datos del mundo será capaz de extraer datos en zonas que hayan sido sobreescritas dentro de un disco duro moderno, sin importar que medios se utilicen para recuperar los datos.
Geometría inteligente de los discos duros modernos
Los discos duros actuales hacen mapas que convierten su geometría real en un sistema lineal de pistas y clusters, por ejemplo, un disco de 3,5″ tiene una pista de unos 27,9 cm en su parte exterior y de unos 7,9 cm en la inferior, pero el sistema operativo ve un disco lineal con pistas del mismo tamaño.
Lógicamente no tendría sentido (como ocurría en los primeros discos duros), grabar mucha menos densidad de información en las pisas externas que en las internas y por eso los discos duros llevan un complejo sistema interno que genera mapas virtuales, convirtiendo un formato interno propietario, en un formato externo que nuestro ordenador entiende.
Además, los discos modernos detectan sectores dañados y hacen cambios en tiempo real de estos mapas para evitar que podamos perder datos.
Todo esto podría producir que algunos datos quedaran guardados en zonas fuera de la geometría del disco, que no serían accesibles de ninguna forma desde un ordenador, quedando totalmente fuera de nuestro alcance, pero no de algunas empresas de recuperación de datos que disponen de equipos especiales para leer directamente el disco.
La cantidad de datos que están fuera de la geometría actual del disco pueden verse usando SMART, en concreto el parámetro «Reallocated_Sector_Ct» indica cuantos datos hay sacados del mapa inicial del disco duro cuando es nuevo, aunque todos los discos duros tienen otro mapa que no se muestra, con los sectores que vienen ya marcados de fábrica.
Para ver estos datos en sistemas basados en Debian Linux, se puede hacer así:
Instalar smartmontools:
sudo apt-get install smartmontools
Iniciar la recolecta de datos:
smartctl -s on -t short /dev/sda1
Después de unos minutos, ya se puede ver resultados del test:
smartctl -l selftest -i /dev/sda1
Ver todos los datos smart registrados:
smartctl -a /dev/sda1
La teoría de la conspiración
En Slashdot se abrió un debate sobre la posibilidad de que los discos duros pudieran almacenar información que tratáramos de borrar aprovechando partes marcadas como defectuosas.
Se especularía con que hubiera algún acuerdo secreto entre fabricantes de discos duros y gobiernos para copiar información que luego podría obtenerse mediante comandos secretos.
De hacer eso, lógicamente no podría copiarse toda la información del disco (tendría que tener el doble de capacidad), por otro lado, crear un algoritmo que decidiera que información se debería copiar… ¿que guardo en la zona oculta?, sería poco menos que imposible, pero, si sería posible copiar los archivos que tratáramos de sobreescribir, es decir:
Si el usuario trata de escribir encima de «este» archivo, por algo será, así que lo copio en una zona oculta del disco duro.
Desde luego es posible hacer esto, pero le veo algunos puntos débiles a esta teoría de la conspiración:
- La competencia entre fabricantes de discos duros es muy fuerte y reservar zonas del disco para «espiar», iría contra los intereses empresariales, puesto que los discos tendrían menos capacidad o tendrían que marcar excesivos sectores como malos. Además, esto llamaría mucho la atención, por ejemplo, si hago un «wipe» de un archivo y aumentan los sectores dañados me daría cuenta inmediatamente de la relación, lo mismo que si se reduce el tamaño del disco.Claro que si no reduce el tamaño ni marca los sectores y sólo utiliza esa parte en caso de que llenemos el disco duro, sería más difícil de detectar.
- Por otro lado, hay quién tiene medios para leer los contenidos del disco sin utilizar la controladora, esto significa que no habría posibilidad de esconder los datos. De hecho, en los discos modernos gran parte del «firmware» está grabado en el propio disco para ahorrar costes de fabricación, es decir, en vez de usar una memoria flash donde entre todo, simplemente se graba un programa pequeño que utiliza una parte del propio disco para almacenar la programación restante, los mapas y otra información necesaria para su funcionamiento.En nuestra empresa tenemos equipos que son capaces de leer y modificar estos códigos y de leer directamente el disco. Aunque no nos hemos puesto específicamente a buscar datos escondidos, en alguna recuperación podrían haber aparecido esos datos (salvo que estuvieran cifrados), pero en cualquier caso alguien seguramente ya se habría dado cuenta.Todo esto lo saben los fabricantes, por lo que dudo que se arriesgaran a que alguien descubriera que están copiando información de los usuarios, ya que eso terminaría con la credibilidad de la marca.
Donde me parece más factible que pudiera haber puertas traseras es en el cifrado de discos con FDE «Full Disk Encryption», un sistema de cifrado de datos que hace la electrónica del propio disco, pero también corren el riesgo que que alguien lo descubra.
Este tipo de puertas traseras ha producido serios problemas a algunos fabricantes, tal vez el caso del rootkit de Sony es el más conocido, pero hay muchos más. Si alguien descubriera una puerta trasera en el FDE de un disco duro, el daño a la marca sería irreparable.
En cualquier caso, el cifrado de datos con FDE, haría imposible la recuperación de los datos en caso de avería, por lo que es mejor usar cifrado basado en software, como Truecrypt.
El cifrado de datos
Y precisamente, otra forma de proteger los datos sin necesidad de tener que borrarlos es el cifrado, aunque hablaré de esto en otra entrada, porque el tema da para mucho.
Sistemas de archivo con «journaling»
En los discos duros con sistemas de archivos Journaling como ReiserFS, Ext3, Ext4 y NTFS, cualquier programa que utilice las llamadas al sistema operativo para tratar de sobreescribir los datos puede fallar, porque los datos escritos por el journaling podrían no ser accesibles desde el sistema operativo.
Para asegurarse hay que utilizar herramientas de software adecuadas, que sean capaces de evitar la escritura diferida del «journaling».
Formatear no sirve
Al dar formato quedan sin sobreescrir los sectores del disco casi siempre, especialmente si es un formato rápido, por lo que es un sistema poco fiable para borrar un disco duro.
Borrado de datos en discos duros dañados
Si uno de nuestros discos con información confidencial se avería, con gran probabilidad quedarán datos recuperables dentro.
Para asegurarse de que no se pueden recuperar, habría que destruir el disco por completo antes de tirarlo, porque alguien podría extraer los datos de su interior.
Destrucción del disco duro
La destrucción del disco duro es otra forma de asegurar el borrado de los datos, especialmente en discos que se averían con datos confidenciales dentro.
Se pueden usar equipos de desmagnetizado, pero su fiabilidad es cuestionable, porque hay demasiados factores en juego.
Lo que es totalmente eficaz es calentar los platos del disco duro a la temperatura de Curie del material magnético usado en la película del disco duro. En los discos duros actuales se utiliza FePt, que tiene una temperatura de Curie de 477℃, pero el compuesto se daña a mucha menor temperatura. La temperatura máxima a la que pueden estar los platos de los discos duros sin dañarse es de 80℃. El compuesto de la película magnética se aplica a unos 300℃ cuando se fabrica el disco.
Para destruir un disco se puede utilizar una pistola de aire caliente de las usadas para decapar pintura, que llegan a una temperatura de unos 600℃. Bastaría con abrir la cubierta del disco y echarle el aire directamente a los platos durante unos minutos.
Otra opción es abrir el disco y golpear o torsionar los platos en su interior.
Para abrir los discos hace falta un destornillador especial, que puede encontrarse en ferreterías con facilidad, una vez retirados los tornillos es posible que haya que hacer palanca porque las cubiertas se quedan pegadas por las juntas de goma.
Los discos duros suelen tener varios platos, que pueden extraerse quitando el soporte central, que va sujeto con tornillos o con un clip de presión.
Los platos son normalmente de aluminio, que se deforma con facilidad, o de un compuesto cerámico en discos más modernos, que no se deforman fácilmente pero puede quebrarse.
Para hacer una recuperación —siempre— hay que hacer girar los discos, que son totalmente planos. Basta con una leve ondulación para que sea imposible recuperar los datos, porque al girar los cabezales tocarían el plato, dañándose instantáneamente.
También se pueden extraer los discos, fijarlos sobre una tabla o una mesa de trabajo y usando una lijadora, se puede eliminar la emulsión de los platos (por ambas caras), hasta que se vea el aluminio o la cerámica de la base del plato. Al arrancar la emulsión del plato, la recuperación es totalmente imposible.
Borrado de datos con wipe
Para borrar los datos con mucha seguridad, pero sin dañar el disco duro, se puede usar el programa «wipe» de Berke Durak.
Para instalarlo en un sistema operativo Debian Linux o derivados (como Ubuntu), se puede usar este comando desde un terminal:
sudo apt-get install wipe
Para borrar un archivo por completo, basta con indicar el archivo y su ruta, por ejemplo:
wipe /home/usuario/documentos/documento-muy-confidencial.odt
Esta herramienta puede usarse para cualquier disco duro que sea reconocido en Linux, por ejemplo, podría usarse en discos de Windows. Bastaría con descargar y grabar Ubuntu en un CD o pen drive, arrancar el equipo donde está el disco duro de Windows con ese CD en el modo «probar Ubuntu sin instalarlo».
Una vez arrancado se instala wipe como se indica en el paso anterior y se puede borrar datos de un disco de Windows que queda montado en la carpeta «/media/», por ejemplo:
wipe /media/nombredisco/Mis\ Documentos/documento.doc
(en las rutas hay que «escapar» los espacios poniendo una barra invertida delante, es decir, en vez de » «, hay que escribir «\ «.
Borrado del disco con dd
Se puede borrar un disco duro entero con dd. Para hacerlo primero hay que identificar el disco o partición, por ejemplo, si ponemos un disco externo para borrarlo entero y se monta como sdc1, podríamos usar este comando para borrarlo, que escribe valores aleatorios en cada sector del disco duro o partición:
dd if=/dev/random of=/dev/sdc1
Para ver los discos y particiones detectados se puede usar este comando:
sudo fdisk -l
Si es un disco de Windows se verá rápidamente por el tipo de sistema de archivos, por ejemplo, este es un disco de 250GB:
Disco /dev/sdc: 250.1 GB, 250059350016 bytes 255 cabezas, 63 sectores/pista, 30401 cilindros, 488397168 sectores en total Unidades = sectores de 1 * 512 = 512 bytes Tamaño de sector (lógico / físico): 512 bytes / 512 bytes Tamaño E/S (mínimo/óptimo): 512 bytes / 512 bytes Identificador del disco: 0x12602fee
Y como puede verse se identifica como NTFS.
Dispositivo Inicio Comienzo Fin Bloques Id Sistema /dev/sdc1 16065 488392064 244188000 f W95 Ext'd (LBA) /dev/sdc5 16128 488392064 244187968+ 7 HPFS/NTFS/exFAT
Este tipo de borrado nunca debe hacerse sobre el disco con el que se ha arrancado el equipo. Como en el caso anterior se puede arrancar desde un CD con Ubuntu Linux y borrar cualquier disco del equipo.
Servicios profesionales de borrado de datos
Si la destrucción de los datos es algo crucial, tal vez la mejor opción es contratar los servicios de una empresa especializada.
En Serman Data Recovey tienen un servicio de destrucción de datos en el que se meten los discos en una trituradora especial que los convierte en lonchas de 5mm. Todo el proceso está garantizado mediante contratos de confidencialidad, recogen los discos, los destruyen y te entregan los trocitos con total garantía.
Si necesitas asesoramiento profesional para instalar un sistema de borrado de datos efectivo, puedes contactar con nosotros.
La consultoría para seguridad de redes y equipos, respaldo de datos, borrado seguro de datos y la investigación forense, están entre los servicios que presta Intervía.
Deja una respuesta