domingo, 30 de mayo de 2010

Adquisición de evidencias

Ya hemos hablado aquí de WinFE, una distribución live de Windows Vista orientada principalmente al campo del computer forensics. Vamos a sacarle partido en estas líneas y desarrollar la forma de utilizarla para la adquisición de evidencias, clonado del sistema objetivo de análisis o imaging, que queda como más mejor.

No estoy diciendo que sea mejor utilizar WinFE en lugar de los clásicos live-CD de Linux, ni es mi intención iniciar una de esas batallas que al final no conducen a nada; cada cual utilice aquello con lo que se sienta más comodo, pero al menos que conozca las alternativas.

Pero dado que no soy analista forense y por lo tanto no tengo la necesidad de este tipo de proceso, ¿como es que empezó todo esto?

Introducción, presentación o planteamiento

En mi trabajo son numerosas las ocasiones en que me encuentro con PCs prácticamente inusables, atestados hasta las trancas por todo tipo de fauna y flora que parece que les hayan puesto un felpudito en la entrada de esos de "Bienvenidos, estáis en vuestra casa".

Como soy de natural curioso enseguida me emociono pensando en iniciar un análisis que me permita detectar cuando empezó la infección, como se llevó a cabo y cual ha sido el alcance, pero el tiempo apremia y los clientes quieren un trabajo "bueno, bonito y barato"; ésto último sin duda, y principalmente por mis carencias, elimina de un plumazo cualquier atisbo de ilusión.

Sin embargo últimamente, y con el beneplácito del cliente, intento clonar el disco afectado del modo más "forénsico" posible (diós que mal suena la palabreja) para ya en mi casa, mucho más tranquilo y con la disponibilidad que consigo arrancarle a mi ya de por sí mermado tiempo libre, meterme en harina. Pero esa es otra historia que, queráis o no, acabaré contándoos otro día.

La unica duda que me quedaba era si WinFE realmente respetaba la máxima del análisis forense la cual establece que, a ser posible, no deben alterarse las evidencias. Para resolverla calculé antes de empezar el proceso la suma md5 para el disco objeto de clonado volviendo a calcular a posteriori la suma md5. Utilizando clonezilla, una vez dentro de la shell y con el sistema cargado en RAM, basta con un simple comando:

# md5sum /dev/sda

Finalizada la segunda ejecución del comando la suma md5 final coincide con la suma md5 inicial, así que el disco no ha sido alterado.

Desarrollo, complicación o nudo

Pongamos que tenemos un disco A de 160 GB extraído del PC víctima y un disco B de 500 GB conectados ambos a nuestra estación de trabajo, un simple PC, con una unidad de CD/DVD. Durante el encendido nos aseguramos de entrar en la pantalla de la BIOS para configurar el arranque desde esta última.

Ni que decir tiene que si por error el ordenador arrancase utilizando el sistema operativo instalado en el disco A podríamos despedirnos de utilizarlo como prueba en un proceso judicial, al menos siguiendo al pie de la letra el manual de las buenas prácticas para todo analista forense, o al menos aquel que por tal se tenga.

Con nuestro flamante WinFE recién tostadito en la unidad de CD/DVD, y creado según los pasos indicados aquí, arrancamos el sistema hasta alcanzar el prompt de la línea de comandos, nuestro querido y a menudo denostado cmd.

Por las características intrínsecas y deseables asociadas a WinFE ninguno de los discos duros de que dispone el sistema ha sido accedido, automontado o alterado en modo alguno. Teniendo en cuenta que nuestro objetivo es clonar el disco A o víctima en el disco B o destino y dado que hemos sido aplicados y hemos saneado previamente este último utilizando DBAN, por eso de no contaminar las evidencias, primero tendremos que particionarlo, asignarle una letra de unidad y formatearlo. La serie de comandos necesarios para ello quedaría como sigue:
X:\windows\system32>diskpart
 
Microsoft DiskPart versión 6.0.6000
Copyright (C) 1999-2007 Microsoft Corporation.
En el equipo: MININT-E1NAUD0
 
DISKPART> list disk
 
Núm Disco Estado Tamaño Disp Din Gpt
---------- ---------- ------- ------- --- ---
Disco 0 En pantall 149 GB 37 GB
Disco 1 En pantall 466 GB 466 GB
 
DISKPART> select disk 1
 
El disco 1 es ahora el disco seleccionado.
 
DISKPART> create partition primary
 
DiskPart ha creado satisfactoriamente la partición especificada.
 
DISKPART> assign letter=K
 
DiskPart asignó correctamente una letra de unidad o punto de montaje.
 
DISKPART> format fs=ntfs label=images quick
 
100 por ciento completado
 
DiskPart formateó el volumen correctamente.
 
DISKPART> exit
 
Saliendo de DiskPart...
 
X:\windows\system32>

Ahora que tenemos preparado el disco de destino y que éste puede ser accedido por cualquiera de las utilidades lanzadas desde WinFE ya podemos iniciar el clonado, para el cual utilizaré por su simplicidad y bajo coste (0 si tenemos en cuenta que es gratuita) FTK Imager Lite. Recordar que no tenemos entorno gráfico así que lo lanzaremos desde la línea de comandos:
X:\windows\system32>"..\Program Files\FTK\FTK Imager.exe"

Una vez iniciado el programa menú "File", "Create Disk Image..."; en la nueva ventana de diálogo marco "Physical Drive" y en el siguiente desplegable selecciono la entrada "\\.\PHYSICALDRIVE0 - [160GB]" y pulso "Finish", con lo que llego a la ventana de control del proceso de clonado o "Create Image" tal como reza en la barra de título.

Pulsando el botón "Add..." comienzo con la selección de las características de la imagen resultante así que primero "Raw (dd)" y "Siguiente", indico los datos de interés para el registro del caso (Case Number, Evidence Number, Unique Description, Examiner y Notes) y "Siguiente" para llegar al penúltimo paso.

Para el campo "Image Destination Folder" paso del botón "Browse" ya que no sirve de nada ejecutándose sobre un live-CD y manualmente introduzco "K:\", o lo que es lo mismo la letra de unidad asignada anteriormente mediante DiskPart; para el campo "Image Filename" introduzco "winmediacenter" (o lo que mejor se adapte); para el campo "Image Fragment Size (MB)" introduzco 0, evitando de esa forma que la imagen resultante termine dividida y para el resto de parámetros servirán los que aparecen por defecto.

De vuelta en la ventana "Create Image" dejo marcado "Verify images after they are created" y si quiero saber de antemano el tiempo que empleará el proceso de clonado marco "Precalculate Progress Statistics". Pulsar el botón "Start" provoca el inicio del proceso que, en este caso, termina tras aproximadamente una hora y media.

Desenlace final

El proceso finaliza con la ventana "Drive/Image Verify Results", la cual incluye los hashes MD5 y SHA1 de la imagen así como la cuenta de sectores clonados, si se han encontrado sectores defectuosos y el nombre final para la imagen, "winmediacenter.001". No será necesario que apuntemos los valores ya que si una vez cerrado "FTK Imager" examinamos el contenido del disco B o destino:
X:\windows\system32>dir K:\
El volumen de la unidad K es IMAGES
El número de serie del volumen es: C05A-87A0
 
Directorio de K:\
 
22/05/2010 17:06 160.041.885.696 winmediacenter.001
18/05/2010 19:42 1.074 winmediacenter.001.txt
2 archivos 160.041.886.770 bytes
0 dirs 339.954.167.808 bytes libres

encontraremos un fichero de texto, winmediacenter.001.txt, con la información anterior.

Para apagar la estación de trabajo bastará con cortar la corriente (vamos, tirar del cable) o mas elegantemente:
X:\windows\system32>wpeutil shutdown

Y por último un documento muy detallado, encontrado en Forensic Focus, sobre WinFE y todos los detalles necesarios para su creación y personalización.

Hasta pronto, espero.