El análisis de códigos maliciosos suele incluir tareas bastante diversas. En primera instancia, tenemos que considerar qué tipo de amenaza estamos por investigar y en base a ello decidir qué tipo de aproximación vamos a utilizar para conocer su funcionamiento. En el día de hoy vamos a empezar a hablar sobre visualización en el análisis de malware y utilizar ProcDot una herramienta desarrollada por Christian Wojner en el CERT de Austria.
Esta herramienta analiza la información provista por Process Monitor (procmon) y WinDump para generar un gráfico en función del tiempo, donde es posible hacer un seguimiento de las actividades del código malicioso. Se puede observar la creación de archivos, cambios en la configuración y ejecución de procesos, entre otro tipo de información.
En otras palabras, ProcDot no es una herramienta que captura datos sino que su función principal es ayudar a los analistas a procesar la información. Es así como logra reproducir todas las actividades que el malware realizó en el equipo. Process Monitor almacena todos los eventos, que deben ser exportados a un archivo CSV y WinDump genera un log de todas las conexiones de red que se generaron en el sistema.
La información que exportamos desde ProcessMonitor debe incluir el campo "Thread ID", así que llegado el caso que no esté incluida se puede agregar a través de Options->Select Columns y marcar el checkbox correspondiente:
Además, es una buena práctica filtrar los eventos correspondientes al proceso que vamos a analizar. De esta manera el tamaño de los archivos de registro generados son menores y el proceso de visualización es más específico. Los filtros de Process Monitor nos permiten eliminar información innecesaria y concentrarnos solo en lo importante, como podemos observar a continuación:
Entonces, una vez que aplicamos filtros, quedan en la captura los eventos que creemos importantes y podemos exportar los resultados. Ahora, con esta información, en conjunto con la captura del tráfico de red generada por WinDump, tenemos todos los elementos necesarios para generar los gráficos.
Un punto importante a tener en cuenta es que ProcDot no necesita una interacción directa con el código malicioso, por lo tanto, la herramienta puede estar instalada en otra máquina, ya que lo único que necesitamos son las capturas. Esto también se debe a que la herramienta se encuentra disponible para Windows y para sistemas basados en Linux. Su dependencia más importante reside en la utilización de Graphviz, un software para generar los gráficos con los que representa las relaciones entre los procesos.
ProcDot tiene una interfaz sencilla e intuitiva con distintas opciones que se pueden seleccionar y los campos en dónde cargar los logs. Luego debemos ejecutar el análisis de los logs para generar el proceso que queremos estudiar a través de la interfaz de selección. Una vez seleccionado el proceso la herramienta automáticamente generará la visualización:
En la parte inferior es desde donde podemos reproducir la secuencia de eventos y ver las relaciones que se van generando a medida que el proceso se ejecuta. A continuación pueden observar el análisis que generamos con esta herramienta sobre la ejecución de una variante de Win32/Dorkbot.B:
Entonces, con este tipo de visualizaciones podemos ver cómo se maneja el proceso que ejecuta el código malicioso a medida que avanza el tiempo, y entender un poco más de su funcionamiento. Este tipo de análisis no son únicos, pero si pueden ayudar al analista de seguridad a generar una visión distinta sobre algún patrón particular de un código malicioso.
Pablo Ramos
Security Researcher