Como parte del análisis de códigos maliciosos, puede resultar interesante contar con herramientas que de forma automática realicen algún tipo de análisis y nos arrojen información relevante sobre su comportamiento.

Cuckoo es una herramienta de código abierto desarrollada en Python, para el análisis automático de muestras. Lo interesante es que su estructura es bastante modular, y por lo tanto se pueden agregar o quitar funcionalidades de acuerdo al tipo de análisis que queramos realizar.

A lo largo de esta serie de cinco posts, les contaremos los aspectos principales que deben tenerse en cuenta desde la instalación de esta herramienta hasta hacer el análisis completo de una muestra.

Configurando la máquina HOST

Antes de poner a funcionar nuestro sistema automático de análisis de muestras debemos tener en cuenta que Cuckoo se maneja a través de diferentes archivos de configuración.

Archivos de configuración Cuckoo

En el archivo cuckoo.conf este archivo se definen los parámetros de conectividad de la máquina que servirá como HOST y la interfaz de red a través de la cual se van a conectar la máquina virtual y la máquina HOST.

Además se debe configurar la conectividad a la base de datos donde Cuckoo va a registrar toda la información de los análisis. Por defecto viene para trabajar con una base de datos SQLite, pero es posible configurar una variedad de motores de bases de datos.

También es importante resaltar que dentro de este archivo se configuran los temporizadores para regular los tiempos que duraran los análisis, parámetros muy importantes para que el proceso de análisis de muestras no entre en ciclos infinitos.

Archivo cuckoo.conf

Otro archivo importante es el que está relacionado con la máquina virtual (GUEST). En este caso, trabajaremos con VirtualBox, por lo tanto el archivo asociado es virtualbox.conf. De forma análoga al caso del HOST, debemos configurar los parámetros de conectividad y las características de nuestra máquina virtual. En este punto es muy importante garantizar que la etiqueta que asignemos en este archivo coincida con el nombre que tiene la máquina virtual.

Archivo virtualbox.conf

Los archivos de configuración restantes (reporting.conf y processing.conf), presentan opciones que el usuario debe modificar de acuerdo al uso específico que espere de la herramienta.

Configurando la máquina virtual (GUEST)

La configuración de la máquina virtual es un poco más sencilla. Simplemente es necesario instalar Python y copiar el archivo agent.py para que se ejecute cada vez que reinicia la máquina virtual. Una vez que instalada la máquina virtual conviene registrarla en VirtualBox para poder manejarla por línea de comandos.

Registrar VM en VBoxManage

Conectividad entre HOST Y GUEST

Una vez que tenemos configurado lo relacionado con Cuckoo, solamente resta garantizar la comunicación entre la máquina virtual y nuestra máquina host. Para esto, utilizando la interfaz de la máquina virtual hacemos un direccionamiento IP de tal forma que ambas máquinas queden en la misma red.

Configuración IP

Luego debemos modificar en nuestro sistema Linux el firewall con iptables. Para esto podemos utilizar la siguiente configuración:

Iptables Linux

Para dejar lista la máquina virtual para iniciar los análisis, simplemente tomamos un snapshot de la máquina con el servicio agent.py corriendo. De esta forma tendremos lista nuestra entorno para iniciar con los análisis.

Tomar snapshot

En nuestra siguiente entrega, veremos como organiza Cuckoo la información de los análisis además de ver los comandos básicos para analizar un archivo o una URL. Además de describir las funcionalidades de la interfaz gráfica.