Phoenix: Buscando Botnets DGA
En
la anterior entrada hablamos sobre Pleiades
para detectar malware basado en DGA,
es decir, en algoritmos
de generación de dominios
(DGA).
Pleiades principalmente se basa en la búsqueda de respuestas
NXDomains analizando el tráfico DNS para detectar dominios
maliciosos que son generados aleatoriamente. En esta entrada me
gustaría escribir sobre un nuevo sistema llamado
Phoenix
desarrollado por la Politécnica de Milán, que
se basa principalmente en la lingüística
y la fonética para detectar dominios maliciosos generados
automáticamente por equipos zombies para conectarse a su servidor de
Command & Control (C&C).
El
sistema Phoenix utiliza
sensores pasivos de DNS, preservando la privacidad de los equipos
infectados sin
afectarle
los mecanismos
de compartición de IPs,
como NAT, que utilizan los operadores de telecomunicaciones.
En
primer lugar, Phoenix crea un modelo lingüístico
de los dominios benignos. A continuación, los dominios que violan
el modelo son
considerados como generados automáticamente, es decir, dominios DGA.
Después, Phoenix agrupa estos dominios de acuerdo a las
relaciones
existente entre la IP y el dominio. Por
último, Phoenix
etiqueta los
grupos, ya que todos los dominios de un mismo grupo pertenecerán
a la misma botnet. Las etiquetas son importantes para ver la
evolución de la botnet (por ejemplo si el servidor de C&C se
migra de un sistemas
autónomo
a otro), y para identificar servidores de C&C no conocidos, es
decir, para generar nuevas listas negras.
El
sistema Phoenix está dividido en tres módulos. El módulo principal
es el módulo de Descubrimiento
de
DGA,
el cual identifica y modela los DGAs extrayendo los caracteres y
palabras de los dominios. El módulo de Detección
de
dominios maliciosos
recibe uno o más nombres de dominio con su correspondiente tráfico
DNS, y usa el modelo construido por el módulo de Descubrimiento para
decir si el nombre de dominio ha sido automáticamente generado. Si
es así, este módulo etiqueta el dominio indicando que probablemente
se trate de un dominio generado mediante DGA. A continuación el
módulo de Inteligencia,
correlaciona y monitoriza los resultados de los otros módulos para
extraer información significativa de los datos obtenidos (por
ejemplo si una botnet
basada
en DGA aún
desconocida
se está migrando entre sistemas
autónomos,
si un dominio previamente ignorado
pertenece a una familia en particular de DGA, etc).
El
módulo
de Descubrimiento
de
DGA
recibe flujos de tráfico de DNS (solicitudes y respuestas) desde el
sensor de DNS Pasivo, además de nombres de dominios maliciosos desde
un sistema de reputación para identificar DGA conocidos. Esta
información es públicamente accesible y puede ser obtenida
fácilmente desde listas negras o sistemas de reputación de dominios
y desde monitores pasivos de DNS públicos que mantienen la
privacidad de los usuarios (por ejemplo ISC/SIE).
Este módulo sigue los siguientes tres pasos para reconocer dominios
utilizados por botnets basadas en DGA.
- Filtrando DGA: Se extrae un conjunto de características lingüísticas desde los nombres de dominio. El objetivo es reconocer los nombres de dominio que parecen ser generados automáticamente. Por ejemplo, se puede diferenciar entre 5ybdiv.cn, que parece un DGA, y searchsmart.tk, que parece ser un dominio benigno o legítimo. Destacar que el sistema Phoenix está basado en la lingüística del idioma Inglés para la detección de DGAs. ÇLa salida es un conjunto de dominios que han sido generados aleatoriamente, posiblemente generados por diferentes algoritmos.En este paso se supone que un dominio generado automáticamente tiene diferentes características lingüísticas que un dominio generado por un humano. Esta suposición es razonable ya que el objetivo principal de un dominio es que sea recordado fácilmente y pueda ser usado por los humanos.
- Agrupando los DGA: Se extraen características basadas en la IP, desde el sensor de DNS, de los dominios que se han recibido en el Paso 1. Se usan estas características para agrupar los DGAs que resuelven al mismo conjunto de direcciones IP, es decir que resuelven a los mismos servidores de C&C. Estas agrupaciones se realizarán observando las respuestas DNS. Por ejemplo, si el dominio 5ybdiv.cn y hy093.cn resuelven a la misma IP, se agrupan. Aquí se asume que dominios generados por diferentes algoritmos serán utilizados en distintas botnets, o distintas variantes de malware, o al menos por distintos botmasters, quienes han personalizado el algoritmo a su estrategia de C&C. Por lo tanto, esta partición y agrupación reflejará los distintos grupos de botnets existentes.
- Fingerprinting del DGA: Se extraen características de las agrupaciones de dominios realizadas en el paso 2 que definirán la huella o fingerprinting de los algoritmos DGAs. Es importante destacar que las características utilizadas son distintas a las del paso 2. El módulo de Detección usará estas huellas para buscar e identificar dominios aún no conocidos. Por ejemplo, los dominios epu.org y xmsyt.cn tendrán distinta huella.
El
módulo
de
Detección
de dominios maliciosos recibe
nombres de dominios, lo cuales pueden ser benignos o maliciosos, y
los hace pasar de nuevo por el filtrado para comprobar si han sido
generados automáticamente. Los nombres de dominio que pasen este
filtro se someten a otras comprobaciones, las cuales pueden hacer que
finalmente no se categoricen como pertenecientes a un DGA (por
ejemplo si no coincide con ninguna huella). Por lo tanto, en este
paso, se puede llegar a etiquetar un dominio como benigno y no
perteneciente a un DGA. Aunque es más importante no descartar
dominios sospechosos. Por tanto, sólo para este módulo, se
configura el filtrado con un umbral más bajo, para que no
descartemos dominios que presenten, aunque ligeramente, las
características lingüísticas
que son típicamente de los dominios maliciosos. Es decir, si hay que
monitorizar un dominio porque se piense que pueda ser malicioso se
hará, en lugar de decidir y precisar si el dominio es maligno o no.
Entonces, este módulo aprovecha las agrupaciones de dominios
maliciosos y sus correspondientes huellas para encontrar nuevos
algoritmos de generación de dominios maliciosos.
Una
vez que un dominio ha sido etiquetado como malicioso, el módulo
de Inteligencia
puede registrar
al dominio
como perteneciente a un DGA conocido. Por lo tanto, la salida de los
módulos anteriores permiten a este módulo extraer información
simplificada
y actualizada de los dominios. Con esta información, las direcciones
de los servidores de C&C y las listas de dominios maliciosos se
agrupan
en pequeños conjuntos, lo
que facilita el análisis considerándolas todas en una sola lista.
Por
ejemplo, si un analista sabe que 100 dominios son maliciosos, puede
usar las etiquetas para dividirlos en conjuntos
más pequeños: uno que contiene los nombres de dominios similares a
5ybdiv.cn y hy093.cn, y otro con dominios similares
a epu.org. La similitud no significa que solamente
tengan semejanzas lingüísticas,
sino
que también
se considera otras características basadas en nombre de DNS e IP. El
TLD tampoco es distintivo, aunque se usa como ejemplo. Con esta
información, el analista puede rastrear por separado la evolución
de las IPs de dos grupos de dominios distintos. Por ejemplo, detectar
cuando un servidor de C&C se migra a un nuevo sistema autónomo
es fácil cuando el conjunto de IPs y dominios es pequeño y las
características del DGA son conocidas y uniformes.
Al igual que el sistema Pleiades tiene limitaciones, el sistema
Phoenix también las tiene. En primer lugar, necesita previamente
conocer dominios maliciosos generados aleatoriamente. Además, el
estudio tan solo está hecho para la fonética y lingüística del
idioma Inglés, lo que si intentamos analizar dominios de otras
lenguas será ineficiente. Por último, si el dominio que genera el
DGA es pronunciable, este sistema no lo detectaría como DGA.
Un saludo amigos y
recuerda, los comentarios te esperan para cualquier idea que te
surja.
Commentaires
Enregistrer un commentaire