Pleiades: Detectando Malware DGA

Los malos siempre van por delante, y esto hace que los investigadores de seguridad constantemente tengan que innovar en sus técnicas de detección y mitigación de intrusos. Lo que en un principio parecía una muy buena idea, tener una base de datos global categorizada por IP y dominios maliciosos al estilo CIF mediante un sistema de reputación dinámico donde se asigne la reputación de cada IP y dominio, ahora ya parece que se está quedando obsoleto con las nuevas técnicas de evasión utilizadas por los desarrolladores de malware, como Fast Flux y los Algoritmos de Generación de Dominios o DGA.

Actualmente botnets como Nugache, Storm, Waledac, Alureon o Zeus utilizan el protocolo P2P para comunicarse con su servidor de Command & Control (C&C), sin embargo cuando los zombies se encuentran tras una red empresarial donde se controla la salida a Internet y se bloquea el acceso a redes P2P, este tipo de malware contiene un plan de contingencia utilizando DGA para conectarse al C&C. Para detectar malware que haga uso de algoritmos DGA, el Instituto de Tecnología de Georgia ha desarrollado un sistema llamado Pleiades que se basa principalmente en el análisis del tráfico DNS.


El sistema Pleiades está compuesto por dos grandes módulos. El módulo de Descubrimiento de DGA, y el módulo Clasificador de DGA y de Detección de C&C.

El módulo de Descubrimiento de DGA obtiene y analiza el tráfico DNS buscando respuestas NXDomain o Name Error Responses, ya que un equipo infectado con DGA realizará muchas consultas a nombres de dominios inexistentes. Además, analiza la distribución de caracteres de los dominios solicitados, debido a que normalmente un malware basado en DGA realizará peticiones a nombres de dominios con características parecidas como misma longitud, mismo nivel de aleatoriedad, misma distribución de caracteres, etc. Finalmente, tras el análisis de las respuestas NXDomains y la distribución de los caracteres, Pleiades agrupa o clusteriza los dominios solicitados, ya que éstos pueden pertenecer a distintos algoritmos DGA.

Una vez agrupados los dominios mediante cluster, el módulo Clasificador de DGA realiza una clasificación, donde encontrará DGA conocidos y no conocidos. En el caso que nos ocupa, el sistema Pleiades descarta los DGA conocidos porque tan solo está interesado en los nuevos DGA. Además, el módulo Clasificador de DGA recibe los NXDomains generados por los equipos de la red monitorizada. Si uno de los dominios está marcado como que es DGA, diremos que el equipo está comprometido y añadiremos su IP y la etiqueta del DGA al informe de detección del malware.

Para realizar la clasificación de dominios, Pleiades se apoya en el módulo de modelado de DGA, que recibe una lista de 10000 dominios legítimos de Alexa.com, una lista de dominios DGA conocidos y el cluster de NXDomains desde el módulo de descubrimiento de DGA. Con toda esta información es capaz de construir un nuevo modelo de DGA.

Por último, el módulo de Detección de C&C recibe las solicitudes DNS realizadas por todos los equipos y cuando una máquina es etiquetada como comprometida, analiza sus consultas legítimas de DNS para detectar el servidor de C&C.

Es de destacar en el sistema Pleiades sus limitaciones, como por ejemplo la incapacidad de obtener el algoritmo de generación de dominios exacto utilizado por el DGA, a pesar de conseguir modelos estadísticos precisos, o la dificultad de diferenciar botnets que utilicen el mismo algoritmo DGA. Además tampoco es capaz de obtener el número de equipos infectados por la botnet, debido a que utiliza Passive DNS y normalmente existe un NAT tras el router de los operadores de Internet.

Pleiades es el primer sistema que conozco que trata de detectar malware basado en DGA, la técnica de detección es innovadora y estoy convencido que eficaz al analizar las respuestas de los servidores de DNS. Sin embargo, aunque sea capaz de detectar el comportamiento anómalo de un equipo infectado por DGA, la detección del C&C está comenzando a ser más difícil debido a que los malos han empezado a generar varias semillas dentro del mismo DGA, la buena que se utiliza para la conexión con el C&C, y otra simplemente para hacer ruido, así es más fácil despistar a los investigadores que intentan obtener la lista de dominios aleatorios mediante ingeniería inversa.

Un saludo amigos y recuerda, los comentarios te esperan para cualquier idea que te surja.

Commentaires

  1. ¿Cómo puedo implementar este sistem en una LAN?

    Gracias y saludos

    RépondreSupprimer
  2. Buenas,

    Si lo que quieres es implementar el sistema Pleiades en la LAN, creo que lo mejor es que contactes con las personas que han escrito el paper de la Universidad de Georgia, ya que ellos van a saber técnicamente mejor que yo como implementarlo.

    Sino, una alternativa es utilizar cualquier solución SIEM que recolecte eventos, como por ejemplo la solución de Alienvault, que el IDS junto con los eventos recolectados, es capaz de detectar la mayoría de DGA que actualmente son conocidos.

    Espero haberte ayudado con la respuesta.

    Saludos.
    David.

    RépondreSupprimer

Enregistrer un commentaire