17 may 2010

Bichología – Laboratorio y herramientas

Aquí seguimos después del último rollo que os metí.
¿Qué necesitamos para analizar “bichos”? Tampoco mucho, y la mayoría es gratis.

Entorno de Trabajo

Lo primero que necesitamos es algún sitio donde tener nuestras herramientas de análisis y poder ejecutar las muestras de malware sin peligro de infectar nuestro PC de trabajo habitual o los equipos que estén conectados en la misma red. No, no queremos eso.

Lo mejor es tener un laboratorio con varios equipos, físicos y virtuales, conectados en red. Esto nos permite crear un entorno “realista” para la muestra, y poder monitorizar intentos de infección entre un equipo y otro.
Si no podemos permitirnos algo así, un conjunto de máquinas virtuales suele ser suficiente. Yo uso VMWare Workstation instalado sobre Linux con varias máquinas virtuales (Windows Server 2003, Windows XP, Windows 7) para hacer pruebas. Este producto tiene dos cosas que lo hacen interesante: permite tomar snapshots (guardar el estado de la máquina virtual en un momento dado, y poder volver atrás en cualquier momento), y la creación de redes virtuales para interconectar equipos virtuales.

También se puede usar Virtual PC o VirtualBox o similares, pero no tengo el gusto.
Si la red es física (sobre todo si estamos mezclando máquinas virtuales con físicas), viene bien tener un hub ethernet. Y cuando digo un hub no me refiero a un switch. Son cosas diferentes. Un hub nos simplifica la tarea de conectar un equipo con un sniffer que capture el tráfico de red para luego analizarlo. El problema es que es casi imposible encontrar hubs verdaderos ya. Casi todo lo que se vende son switches. Si os haceis con un hub viejo, no lo tireis.

Con las máquinas físicas (cualquier PC antiguo que pueda correr XP sirve) conviene tener imágenes de la máquina recién instalada y limpia, hechas con Ghost o similar. Esto es para poder recuperar el estado original de los equipos una vez hemos terminado el análisis.

Herramientas Online
Existen muchos servicios online que nos ayudan a analizar malware. Cogemos nuestra muestra (un .EXE o .DLL o similar) y la subimos a la página web. Al rato nos dará un informe que nos puede ser de mucha utilidad.
  • Anubis nos da un informe sobre los ficheros y entradas de registro accedidas, así como las DLLs cargadas en el proceso. Un poco lo que nos daría Process Monitor de hacerlo nosotros mismos. Además pasa el fichero por el scanner de Ikarus y nos dice si lo identifica o no.
  • JoeBox es como Anubis, pero nos da bastante más información y más detallada. Además analiza las conexiones de red del fichero y nos las muestra en el informe. Al igual que Anubis, tambien lo pasa por un scanner, esta vez de Avira.
  • VirusTotal nos permite analizar la muestra contra 39 scanners antivirus, además de proporcionarnos otra información útil. Un ejemplo de informe.
Hay más, pero estas son las tres que suelo utilizar.

Herramientas de Análisis de Comportamiento
Cualquier programa ejecutado en Windows hace básicamente cuatro cosas de forma silenciosa: acceso a ficheros, acceso a registro, gestión de procesos y threads, y conexiones de red.

La suerte es que para las tres primeras tenemos una excelente herramienta cortesía de Microsoft (SysInternals) llamada Process Monitor. Nos permite monitorizar en tiempo real todo lo que pasa en el sistema (fichero, registros, procesos, etc.) Además permite hacer análisis desde la propia herramienta, generando árboles de procesos, secuencias temporales de actividad, etc.

Esta herramienta se complementa con Process Explorer, de los mismos señores. Esta última está orientada a examinar procesos mientras se están ejecutando (digamos que es un Task Manager avanzado), y ver sus conexiones de red, librerías DLL cargadas, etc.

La tercera herramienta fundamental es un buen sniffer, como Wireshark. Podemos tenerla instalada en la máquina donde ejecutamos el especimen, o podemos tenera en otro sistema de forma que pueda capturar todo el tráfico de red (recuerda el hub). Un buen sniffer nos va a dar información sobre intentos de conexión que realiza el “bicho”, ya sea para infectar otras máquinas, como para enviar SPAM, como para conectarse “a casa” a recibir comandos.

Herramientas de Análisis de Código

El análisis de código es complejo y requiere experiencia  importante en desarrollo. El malware puede estar desarrollado en código compilado (más habitual) o interpretado (python, etc.). Además puede estar cifrado y/o empaquetado. Muchas veces es necesario ejecutar la muestra de malware de forma controlada, siguiendo su secuencia de ejecución, para poder entender qué hace y cómo lo hace.

Las herramientas principales aquí son los debuggers (como OllyDbg), desensambladores (IDA Pro), y cualquier herramienta que nos permita hacer volcados de la memoria reservada por un proceso (como Process Dumper o PMDump)  y un análisis de estos (Memory Parser).

También hay que tener a mano herramientas para “desempaquetar” código “empaquetado”.
Y no olvidemos la utilidad strings (también de Microsoft / SysInternals) que a veces es capaz de sacar información útil de ficheros binarios (una vez desempaquetados) y de ficheros de volcado de memoria de procesos.

En el próximo capítulo, veremos un ejemplo concreto de análisis de una muestra.

Fuente: Blog de Alfredo Reino

Suscríbete a nuestro Boletín

1 comentario:

  1. ¿Encuentras "bichos" en Linux? creía que no había... buscaré en synaptic el VMWare Workstation, por si acaso...

    Saludos.

    ResponderBorrar

Gracias por dejar un comentario en Segu-Info.

Gracias por comentar!