Incident Response, Security and Forensics"

.

lunes, 31 de agosto de 2009

Sparse - ¿Un nuevo método revolucionario de adquisición de datos?

Hola lectores,

En el pasada conferencia me llamo la atención un comentario que hicieron sobre la empresa ASR-DATA y un producto novedoso (SAW) que permite la adquisición de datos (discos, particiones, etc) para la obtención de pruebas sobre análisis forense. Por lo que se ve y así lo constato soluciona un viejo problema que se nos da a la hora de adquirir discos.

Para poder centrarnos voy a empezar con el problema:

Uno de los problemas más difíciles que nos encontramos a la hora de obtener una copia de un disco es su tamaño. Últimamente me he encontrado con discos para analizar de uno y dos terabytes y lógicamente al crear la clonación tarda horas y horas (1 TB=21 Horas, sobre todo utilizando el comando dd). Además si le añadimos que hay que disponer del mismo tamaño de origen y de destino la prueba supone un elevado costo económico.

La solución pasa por utilizar un nuevo método de obtención de imágenes utilizando la tecnología de los ficheros sparse (o ficheros dispersos).

Sparse o el método sparsing consiste en lo siguiente:

¿QUE ES?, ¿QUE SON LOS FICHEROS SPARSE?

Es un atributo que se aplica a ficheros, para el cual se asigna y reserva un espacio determinado a un archivo. Aunque el fichero no este lleno, el espacio queda reservado para el.

Este espacio asignado no se llena en su totalidad con ceros aún estando vacío, sino que se crea de una forma en la que las partes vacías no cuentan como espacio ocupado. De esta forma lo que quiero decir es que el tamaño de los archivos son siempre mayores que el espacio de disco consumido por ellos.

Aunque es un concepto algo complicado y poco conocido, es bastante útil para casos como el de la obtención de discos.

Otro ejemplo, imagine que nos solicitan la creación de una unidad de 10 Gb de tamaño. Tenemos dos opciones - Asignar con antelación 10 gigabytes de almacenamiento, o bien aplicar un complejo sistema de asignación de almacenamiento, permitiendo que el archivo pueda crecer y reducir de forma dinámica.

Las dos alternativas son lentas y consumen mucho I/O de disco, disminuyendo drásticamente el rendimiento.

Afortunadamente, en los sistemas Windows, *nix y Linux nos ofrecen una solución mejor: los archivos dispersos.(Sparse).

Cuando necesitamos liberar espacio en el almacenamiento de archivos, simplemente le decimos al sistema que parte del archivo no es más utilizado, y el sistema se encarga de liberar el correspondiente espacio de disco. De esta manera se puede asignar un archivo de cientos de gigabytes, pero sólo ocupan unos pocos kilobytes de almacenamiento físico.

En la captura de la pantalla siguiente se puede ver una zona cero (en gris). El panel de la parte inferior izquierda de la ventana del programa, muestra la configuración real de las áreas de datos, mostrando que un archivo de más de 250 megabytes ,requiere sólo 64 kilobytes de almacenamiento en disco.



La forma novedosa de está solución consiste en obtener lo mismo que haría un dd de una partición NTFS o Linux, pero con la ventaja adicional de que los sectores no utilizados por el sistema de ficheros (que el dd copiaría tal y como estén), no los devuelva y obtener solo aquellos datos que realmente existen en el disco, con lo cual se reduce mucho el tamaño de la obtención de resultados. Lógicamente esta obtención debería de hacerse utilizando integridad.

Veamos la siguiente imagen representativa:



¿COMO FUNCIONA?

Veamos un ejemplo ilustrativo con el que vemos que un fichero que aparentemente ocupa 5 Mg (por ejemplo, en la salida del ls), en realidad, no ocupa absolutamente nada en disco:

1.- Creamos un fichero con propiedad SPARSE

$ dd if=/dev/zero of=fichero_ejemplo_sparse bs=1 count=0 seek=5M
0+0 records in
0+0 records out
0 bytes (0 B) copied, 4.4798e-05 seconds, 0.0 kB/s

2.- Verificamos su tamaño con ls

$ ls -l fichero_ejemplo_sparse
-rw-r--r-- 1 user group 5242880 2008-09-22 19:41 fichero_ejemplo_sparse

3.- Comprobamos en realidad cuanto ocupa

$ du -s -B1 --apparent-size fichero_ejemplo_sparse
5242880 fichero_ejemplo_sparse

$ du -s -B1 fichero_ejemplo_sparse
0 fichero_ejemplo_sparse

Otra forma de verlo es utilizando Windows, veamos este ejemplo utilizando el comando fstuil y el parámetro sparse:



Con el siguiente comando podemos establecer un fichero con el atributo sparse

c:\>fsutil sparse setflag fichero.txt

Y en la siguiente pantalla podemos comparar los tamaños



Aunque todo lo dicho hasta ahora nos parezca desconocido, realmente no es así ya que hay muchos productos que utilizan esta propiedad, por ejemplo la utilidad NTFSCLONE.

Por otro lado, en Windows se soporta desde NTFS v.5, (prácticamente desde Windows XP hasta sus otras versiones de servidor) y para casi todos los sistemas de ficheros tradicionales del mundo *nix y Linux.

Hace unos dos años, los desarrolladores de Solaris ZFS sacaron una versión de la función lseek() que permite a una aplicación encontrar los espacios reservados y no utilizados en los archivos dispersos de manera más eficiente.

También hoy en día nos podemos utilizar está herramienta para copiar ficheros utilizando el método sparse, es decir solo copiamos lo que realmente ocupa.

¿COMO ES LA NOVEDAD?

ASR-DATA ha creado un producto orientado al análisis forense llamado SAW que permite realizar de forma integra la obtención de datos relevantes de discos de gran capacidad, disminuyendo el tiempo de obtención.

El ejemplo es que un disco de 2 Terabytes se ha 'clonado' utilizando sparser y obteniendo como resultado un fichero de 234 Gbytes. el tiempo de adquisición se ha reducido prácticamente en un 95%.

Lamentablemente SAW solo se proporciona si asistes a un curso que realiza ASR-DATA, por lo que hace imposible que os pueda proporcionar el link de acceso al software.

No obstante su versión de producto SMART 2.0 llevará incluida la capacidad de obtener imágenes utilizando está técnica.

CONCLUSIONES

En las conferencias nos fuimos con la idea de que aunque este método está poco documentado y probado, todo hace pensar a que si las grandes empresas orientadas a productos de análisis forense invierten en esta tecnología y los productos empiezan a liberarse o son asequibles económicamente, podremos reducir el tiempo de adquisición de discos de alta capacidad.

Por otro lado hay que pensar que el soporte sparse viene de 'serie' en los sistemas de ficheros de la mayoría de sistemas operativos, siendo transparente para las aplicaciones, con lo que no hay que instalar ningún programa para convertir las unidades de disco, ni nada parecido.

El tiempo dirá si se especializa está técnica que a buen seguro revolucionará la obtención de datos de discos. De momento nos conformaremos con lo que tenemos.

8 comentarios:

No sé si es una pregunta estúpida pero ¿esto no se usa para las copias de seguridad?

Un saludo.

Correcto!! Aunque no todas, lo normal es que así sea, dependiendo de como este configurada las opciones de copia, el problema es que el espacio asignado y no ocupados lo rellenan con ceros y de esta forma 'copian'el fichero.

Este comentario ha sido eliminado por el autor.

A mi me surge otra duda, y es la siguiente: ¿cómo se comprueba la integridad de la copia?

Quiero decir, que cuando haces una copia, para asegurarte que es idéntica al original (para que lo que analices sobre la copia valga en un juicio) yo suelo hacer hashes MD5 y SHA-1 de uno y de otro. En este caso, si no entiendo mal, la información se guarda en un formato concreto, como indexando la información en lugar de estar en RAW para ahorrar espacio, con lo que realmente el Hash de uno y de otro no va a ser el mismo.

¿Existe algún comprobador de integridad que incorpore esta herramienta y que realice el Hash de lo que sería el fichero "deshaciendo" el Sparse?

Gran artículo!

Jose Selvi: Hola, en las presentaciones que vi, nos comentaron que la herramienta SMART v2.0 de la empresa ASR-DATA es capaz de realizar hash en la siguiente secuencia: Hash de todo el disco, hash de las zonas sparse y y como bien dices, el Hash de lo que sería el fichero "deshaciendo" el Sparse. Esto es lo que nos dijeron y que en las demos vi. No se si evolucionará o se quedará en nada, pero me pareció muy interesante

Gracias!!

Hay algo que no entiendo, si vos queres hacer un análisis forense, ¿no deberías también analizar archivos borrados con software de recuperación de datos?

Estos archivos van a ser ignorados por este tipo de software que descarta los espacios no utilizados.

¿Deberían recuperarse los archivos antes de hacerse la copia mediante este método?

Ariel Camino: Según comentaron SMART 2.0 hacia el carving o recuperación antes de la obtención de los datos utilizando sparse, eso si yo en la demo no lo vi, aunque por el precio del producto 2.000$ a buen seguro que lo hace.

Saludos