Una de las tareas criticas en el an�lisis de una intrusi�n es la extracci�n de informaci�n para posterior an�lisis, dado que no es posible hacer un an�lisis sobre un sistema en producci�n se debe poder simplemente guardad una imagen exacta de un sistema que posteriormente pueda ser abierta, instalada o simplemente mantenida como referencia en el caso de una disputa legal.
En este articulo se analizara la forma de crear im�genes un disco duro a partir de la l�nea de comandos, es importante aclarar que este articulo NO SE LIMITA �nicamente a la extracci�n de im�genes en LINUX, dado que la construcci�n de un sistema de archivo se puede acceder directamente por medio del recorrido f�sico del disco duro y su informaci�n no importa el sistema operativo la copia ser� fiel al montaje del mismo. Adicional mente la partici�n del disco duro se podr� extraer para dejar la informaci�n lista para an�lisis por medio de utilidades de l�nea de comando en Linux.
Existen un grupo de utilidades que permiten la extracci�n de la informaci�n del disco duro entre las cuales las m�s importantes que utilizaremos est�n en:
� nc
� dd
� sfdisk (opcional)
� df
Existen varios t�rminos que se deben conocer antes de emprender la tarea de copiar una imagen de disco duro, el principal es el concepto de MBR, adicionalmente el termino partici�n, y sistema de archivo y partionamiento.
El primer termino esta estrechamente relacionado con el segundo, pues en la l�gica de la construcci�n de un disco duro para su funcionamiento se debe tener en cuenta que el disco se divide en secciones denominadas particiones, en particular en el caso de Windows existen dos formas de particionar un disco duro, una se denomina FAT y NTFS, en el caso de Linux existen la tradicional ext y Resierfs, ambas con ventajas y desventajas propias. La partici�n permite segmentar un disco duro de forma en que pueda ser usado por el sistema operativo, dado que el disco duro no contiene ning�n sistema de ubicaci�n de informaci�n, la partici�n le permite al sistema operativo colocar la informaci�n en el disco y posteriormente lograr ubicarla cuando sea solicitada por el sistema. La partici�n es propia del sistema operativo, y aunque existen programas que permiten a un sistema operativo leer particiones de otros sistemas no es recomendable su uso por razones de rendimiento del mismo; debido a que al hacer la conversi�n se requiere tiempo de computo, en pruebas realizadas por este portal se determino que escribir una partici�n FAT en un sistema Linux reduce el desempe�o del sistema Linux entre un 20% y 45%.
Ya que conocemos los rudimentos de las particiones y algunos de sus tipos (existen mas de 70 tipos de particiones diferentes) podemos pasa al ver que es un MBR, la sigla que en ingles es Master Boot Record, es la parte inicial del disco duro se ubica en los primeros 512 bytes de informaci�n (el cluster 0), esta secci�n es vital en el arranque de todo el sistema si lo que se desea es que el sistema arranque desde la partici�n que estamos utilizando. Mas aun esta informaci�n es la porci�n mas fr�gil y susceptible a da�os de todo el proceso que realizaremos en esta serie de art�culos.
Para comprender el proceso de creaci�n de im�genes desde la l�nea de comandos debemos entender como es que el sistema Linux monta (hace accesibles) los sistemas de archivos.
De forma predeterminada todos los discos duros se denominan hd en el caso de ser IDE, si son de tipo SCSI sd a ambos tipos y en general a todos los dispositivos que reconozca el sistema se puede tener acceso a trav�s de la carpeta /dev ubicada en la ra�z del sistema (n�tese que no de dijo ra�z del disco duro porque puede no estar en disco duro el sistema) una vez se ha logrado acceder a esta carpeta por medio del comando:
#cd /dev
Debe hacer una lista de los dispositivos de disco duro que hay presentes este se logra por medio de:
#ls hd*
As� sabr� cuantos discos duros existen en su sistema y las particiones presentes en el mismo. Recuerde que la letra despu�s de hd significa el disco duro y el numero la partici�n dentro del mismo de la siguiente forma:
#ls hd*
hda1
hda2
hda3
hda4
hdb1
Significa que existen dos discos duros presentes en el mismo a,b y adicionalmente el disco a contiene cuatro particiones.
Para poder extraer la informaci�n del disco que deseamos debemos saber cual es la partici�n que deseamos clonar, debemos conocer el tama�o de dicha partici�n esto es relativamente simple usando la utilidad df la que nos permite saber el numero de bloques ocupados, y bloques totales de la partici�n dato esta que nos es muy �til para saber cuanto queramos iniciar el proceso de clonaci�n. Debemos recordar que para que el reporte sea exitosos debemos previamente haber montado la partici�n en el sistema, esto se logra por medio del comando mount una ves montado el sistema de archivos es relativamente simple el uso de df, ya que solo es escribir el comando en la linea asi
#mkdir /mnt/disco_c
#mount –t vfat /dev/hda1 /mnt/disco_c
#df
Una vez se determina las particiones a copiar por su tama�o o su ubicaci�n procedemos a hacer la copia, existen varios m�todos de copia en este primer articulo nos ocuparemos de copia de disco a disco, es decir copia de un disco duro a otro instalado en la misma maquina, sin embargo en la segunda parte de este articulo veremos como hacerlo atreves de la red de una maquina a otra.
El primer paso es extraer el MBR proceso que se logra por medio del comando dd asi:
#dd if=/dev/hda of=/mnt/floppy bs=512 count=1
El comando anterior se lee de la siguiente forma: de la unidad de disco duro a extraiga en paquetes de 512bytes el primer paquete y copuelo en la unidad floppy, previamente debimos haber montado en el sistema la unidad floppy, aunque no importa si esta o no montado el disco duro.
El siguiente paso consiste en hacer la copia en el disco duro b de la informaci�n del disco a lo cual se puede hacer por medio del comando:
#dd if=/dev/hda1 of=/dev/hdb1 bs=1024k
El comando anterior toma como origen la informaci�n del disco duro a en la partici�n 1 y la coloca en el disco duro b en la partici�n 1 en paquetes de 1024k, recuerde que el disco de destino debe tener al menos la misma capacidad de la partici�n de origen, no es importante que los discos duros sea sin embargo del mismo tama�o; este sistema le permite hacer copias fieles de la partici�n inicial de un disco, si desea puede almacenar toda la partici�n en un archivo dentro del otro disco para su posterior restauraci�n en otra maquina. Debe previamente haber creado una partici�n del mismo tama�o del origen (a) en el destino (b) no importa que sistema de archivo utilice puesto que se rescribir� al hacer la copia sin embargo es recomendable que sean del mismo tipo.
Para crear un archivo que almacene la informaci�n en el disco duro de destino recuerde que la partici�n de destino debe ser de lectura escritura (rw) el comando anterior se cambia de la siguiente forma:
#dd if=/dev/hda1 of=/dev/hdb1/archivodestino.bck bs=1024k
El archivo de destino en el caso anterior ser� archivodestino.bck el nombre y la extensi�n es poco relevante para el programa, pueden ser cualquiera que elija el administrador.
Si se desea llevar un paso mas adelante la copia se pueden guardar las diferentes particiones del disco duro en una serie de archivos pero recuerde que adicionalmente debe guardar la informaci�n de reconstrucci�n de las particiones extendidas en otro archivo esta tarea puede ser realizada de la siguiente manera.
#sfdisk –d /dev/hda >/mnt/floppy/partici�n.tbl
el comando anterior toma toda la informaci�n de particon del disco duro y la vuelca en un archivo de la unidad floppy. Recuerde hacer copias de seguridad tanto del MBR como de este ultimo archivo puesto que en caso de perder la informaci�n de este par de archivos no podr� reconstruir el sistema y no podr� tener un sistema completamente funcional, sin embargo podr� montarlo y leerlo en maquinas Linux si es de tipo NTFS, FAT, FAT32, VFAT u otro en Windows.
Si ha seguido los pasos anteriores no debe tener ninguna dificultad para hacer sus propias im�genes pero recuerde que este proceso puede tomar mucho tiempo dado que una partici�n t�pica de un sistema puede medir mas de 4Gb, adicionalmente recuerde que en kernel anteriores a 2.4 el tama�o m�ximo de archivos es de 2Gb por lo que es recomendable que utilice un sistema con kernel 2.4 o superior.
Dependiendo de sus necesidades es recomendable que descargue una distribuci�n de Linux que no requiera instalaci�n en el sistema, algunas de estas se ejecutan en floppy y otras en CD-ROM, requieren una m�nima cantidad de memoria y toda la informaci�n se ubica en discos virtuales en memoria. Una lista de las distribuciones disponibles la puede encontrar aqu�.