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.
¿Cómo puedo implementar este sistem en una LAN?
RépondreSupprimerGracias y saludos
Buenas,
RépondreSupprimerSi 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.