Continuando con esta serie de post, les traemos la segunda entrega de este análisis a una amenaza. Algunos días atrás les mostrábamos qué información habíamos podido obtener por medio de un análisis dinámico, pero ahora es el momento de realizar un análisis estático para ver que información se puede obtener de la amenaza.

Un análisis estático implica abrir el archivo en cuestión con una herramienta de debugging como es Olly Debugger o Immunity Debugger, para dar un ejemplo, las cuales nos permiten visualizar las tareas que va a realizar la amenaza en lenjuage assembler. A su vez nos permite ir ejecutando instrucción por instrucción para ver que cambios se generan tanto en el stack (memoria) como en el registro.

Luego de abrir la amenaza con uno de estos debuggers y buscar el momento en su ejecución en el cual vuelca el código desempaquetado en memoria, nos pusimos a ver los strings de dicho código. Allí encontramos varias cosas interesantes, como lo siguiente:

Análisis estático - Geolocalización

Aquí la amenaza accede a un sitio gratuito que brinda información sobre la geolocalización de una dirección IP, en este caso la de la víctima que la ejecute. El sitio le responde con el país, ciudad y región de dicha maquina comprometida, información que la amenaza interpreta y luego utilizará más adelante.

Otra cosa que nos llamo mucho la atención es que la amenaza utiliza WQL (WMI Query Language) para verificar si el equipo posee un antivirus instalado o no, esto se puede apreciar en la siguiente captura:

Análisis estático - WQL Antivirus

Si bien la utilización de WQL no es algo novedoso, es la primera vez que lo vemos utilizado para obtener información acerca de las soluciones de seguridad instaladas en el equipo.

Luego notamos que la amenaza estaba utilizando algunas funcionalidades de otros códigos maliciosos que poseen ciertas características de RAT (Remote Access Tool). Entre esas funcionalidades encontramos la capacidad de propagarse mediante la utilización de redes P2P (Kazaa, uTorrent, LimeWire, etc) y la de propagarse por medio de dispositivos USB. A continuación se pueden observar los strings en cuestión:

Análisis estático - Propagación y RAT

Si bien esta información es muy interesante y nos brinda más detalles de los que obtuvimos por medio del análisis dinámico, hasta este punto no sabemos cuál es el objetivo de la amenaza más allá de propagarse. Luego de continuar el análisis dimos con la información precisa sobre dicho objetivo:

Análisis estático - Banker

La amenaza, al igual que las víctimas de la botnet Zeus, monitorea los navegadores del equipo esperando a que el usuario acceda al link oficial de un reconocido banco americano. De realizarse esta acción, la amenaza captura las credenciales y las envía al panel de administración de lo que ahora sabemos que es un una botnet.

Entre otras acciones la amenaza puede subir o descargar archivos, grabar el audio del micrófono e inclusive capturar imágenes de una cámara web. Dentro de las funcionalidades que posee también existe la instrucción de modificar el archivo hosts del equipo para la realización de phishing:

Análisis estático - Hosts y Webcam

Esto nos demuestra claramente que el objetivo del desarrollador malicioso es el rédito económico por medio del robo de credenciales bancarias, una tendencia muy habitual en el malware.

Antes de finalizar el análisis descubrimos que la amenaza también utiliza la famosa red social Facebook para propagarse por medio de publicaciones en los muros de los usuarios afectados:

Análisis estático - Facebook

De esta manera podemos ver y evaluar los resultados obtenidos por medio de las dos metodologías, un análisis dinámico y un análisis estático. Si bien pude suceder que dependiendo de la amenaza una de ellas nos arroje más resultados que la otra, ambas son muy útiles y efectivas dependiendo del tiempo que se disponga para realizar la investigación.

Joaquín Rodríguez Varela
Malware Lab Coordinator