En este post se expondrá el uso de la herramienta INetSim para la simulación de protocolos de red en el análisis dinámico de malware. Se propondrá un entorno de simulación y un caso de ejecución de una muestra maliciosa.
Cuando realizamos el análisis dinámico de una amenaza, a menudo nos encontramos con la situación de que se intenta establecer una comunicación con algún equipo externo a través de Internet. Si monitoreamos esta comunicación entre nuestra computadora infectada y los servidores maliciosos, obtendremos mucha información valiosa respecto al accionar del malware. Sin embargo, en algunos casos es deseable evitar la comunicación real con los servidores maliciosos por varios motivos. En primera instancia, podría suceder que los servidores no estén disponibles, situación ante la cual el malware podría cambiar su comportamiento y no seríamos capaces de entender qué acciones realiza el mismo o los objetivos que persigue. Además, podría suceder que necesitemos ejecutar el malware varias veces antes de entender su funcionamiento básico o los protocolos utilizados. Si en todas estas pruebas se entabla una comunicación con los servidores maliciosos, se corre el riesgo de alertar a los criminales sobre nuestra presencia.
Por ello, a veces es una buena alternativa simular ciertas situaciones. En particular, podemos hacerle creer al malware que se está comunicando con los servidores maliciosos, cuando en realidad está enviando sus mensajes a una máquina nuestra. Podemos utilizar herramientas para Windows como FakeNet, para encontrar información útil acerca de una botnet, por ejemplo. Otra alternativa para plataformas Linux es INetSim, una herramienta que permite simular varios protocolos de comunicación como TCP y UDP, recibiendo los paquetes que llegan, y generando respuestas falsas, pero que tienen una estructura acorde con lo que espera recibir el malware.
Para ilustrar el funcionamiento de INetSim, se planteará una estructura de red con una máquina virtual con Windows, que será la encargada de ejecutar el malware, y una máquina, virtual o física, con sistema operativo derivado de Linux. Esta última es la que se encargará de recibir el tráfico proveniente de la máquina infectada, actuando como gateway. Además, ejecutará INetSim para registrar las peticiones que recibe, y enviar respuestas simulando los protocolos de red involucrados. Así, cuando se ejecute INetSim, veremos cómo se inician las simulaciones de todos los servicios, tal cual se observa en la siguiente captura:
Del otro lado, en la máquina con Windows que todavía no ha sido infectada, se ejecuta una muestra de un malware que intenta conectarse a un servidor, para obtener un documento web que luego será abierto en el navegador. Como resultado de la ejecución, se observa que el malware abre el documento obtenido en el navegador y continúa con su ejecución normal, sin saber que el documento que obtuvo no es el que realmente debía mostrar.
Si ahora volvemos a nuestra máquina con INetSim, podemos acceder a los logs, y analizar las peticiones realizadas por el malware.
Como conclusión, se observa que INetSim es un buen recurso a considerar en el análisis dinámico de malware, ya que permite una ejecución en un entorno controlado, y la posibilidad de continuar con el análisis ante contingencias como la no disponibilidad de los servidores maliciosos.
Matías Porolli
Especialista de Awareness & Research