Detección de botnets basada en DNS

Una vez analizadas las técnicas pasivas de detección botnet mediante la inspección de paquetes y del análisis de flujo, en esta entrada describiremos cómo utilizar el análisis pasivo de DNS (Domain Name System) para detectar botnets en una red.
Antes de describir el análisis pasivo de DNS hay que tener en cuenta para qué usan las botnets este servicio. La principal característica que tienen las botnets es la capacidad de sus miembros o bots de comunicarse con los servidores de comando y control (C&C) o con otros bots. De esta forma, los miembros de la red maliciosa pueden obtener nuevas instrucciones y actualizaciones. Para establecer esta conexión, los desarrolladores de botnets tienen principalmente dos opciones: uso de direcciones IP fijas establecidas a nivel de código dentro del malware, o el uso de nombres de dominio, bien fijos o generados mediante algún algoritmo DGA.
-Técnicas de Detección de Botnets-
El uso de nombre de dominios ofrece mayor flexibilidad a los desarrolladores frente a la opción de IPs fijas. Un dominio puede estar asociado a múltiples IPs, pudiendo hacer más complicado la detección de actividad sospechosa en una red.
Esta característica se puede llevar al extremo si se utilizan técnicas como Fast-Flux, a través de la cual un dominio resuelve distinta IP dependiendo del momento en el que se realice la petición, lo que consigue que se descentralizan los servidores C&C y dificulta la labor de los investigadores para conocer la estructura de la botnet y así poder evaluar la mejor estrategia para desmantelarla. Al cambiar la IP de destino de las conexiones de los bots se dificulta la detección de comportamientos anómalos por parte de sistemas de análisis de flujos de red. Por contra, estos dominios maliciosos son técnicamente fáciles de bloquear tanto globalmente por los registradores de dominios, como localmente por los operadores de los servidores de DNS.
Por otro lado, el uso de IPs fijas por parte del malware puede evitar su detección mediante el uso de técnicas basadas en DNS. Sin embargo, al usar siempre las mismas IPs en sus comunicaciones facilitan su detección por técnicas como el análisis de flujo, que posteriormente pueden ser bloqueadas fácilmente mediante reglas de red.
- Evolución de los C&C de las Botnets (opendns.com) -
A continuación se muestran algunos ejemplos de técnicas de detección de Botnets basadas en DNS:
1) Solicitudes DNS fallidas (NXDOMAIN)
Estudios como "Winning with DNS Failures: Strategies for Faster Botnet Detection" muestran que una forma de detectar amenazas potenciales de malware perteneciente a una botnet es el análisis estadístico de las peticiones fallidas de resolución de DNS al no estar registrados los dominios utilizados por las botnets como C&C.
Botnets como Conficker o Torpig utilizan dominios con una alta entropía para evitar su posible detección, es decir que la utilización de cada uno de los dominios es poco probable, con lo que necesita un gran número de dominios para funcionar y algunos de estos pueden fallar en su resolución.
La respuesta que devuelve un servidor DNS ante la solicitud de un dominio que no existe es la siguiente:
- Consulta DNS sobre un dominio no existente -
2) Monitorización de dominios maliciosos
Consiste en monitorizar todas las peticiones realizadas al servidor DNS y comprobar que el dominio a resolver no está en ninguna lista negra DNSBL o RBL. Estas listas de dominios son generadas por diferentes organizaciones como Spamhaus o SpamRats, y son un medio rápido y sencillo de detectar amenazas. El problema con esta técnica reside en que la botnet debe ser previamente conocida y registrados sus dominios, si la amenaza es nueva o si una botnet es actualizada con el uso nuevos dominios no es detectada.
3) Dominios con bajos TTLs
Otra de los métodos usados por los creadores de botnets para dificultar su detección es la modificación de la IP asociada a un dominio, técnica conocida como fast-flux. De este modo al cambiar la IP de destino se dificulta la detección de anomalías. Para realizar este cambio estos dominios tienen un TTL o tiempo de vida asociado muy bajo, de este modo se fuerza a que los sistemas DNS a refrescar frecuentemente la caché de resolución de la IP asociada al dominio, o en caso de TTL nulo, ni siquiera almacenarla. Por lo tanto, aquellas peticiones DNS cuyo TTL sea bajo son sospechosas.
Sin embargo, esta técnica genera una alta tasa de falsos positivos, ya que existen sistemas legítimos conectados a Internet que utilizan este tipo de técnicas de ir cambiando la IP asociada a un dominio para por ejemplo balancear carga en sus sistemas. Un ejemplo es el buscador Google que, como se puede ver en la siguiente tabla la resolución del dominio google.com, devuelve diferentes IPs en cortos periodos de tiempo.
4) Detección de trafico DNS anormal
Además de las técnicas anteriores, existen estudios que analizan la detección de botnets en base al comportamiento anómalo de las peticiones DNS. Según estos estudios, algunas de las aproximaciones que se utilizan son:
- Búsqueda de nombres de dominio cuyas tasas de consulta son anormalmente altas o que están temporalmente concentradas.
- Análisis de peticiones similares, tanto temporalmente analizando el trafico DNS generado por una misma IP o analizando las peticiones generadas por IPs diferentes. El objetivo es la detección de patrones de comunicaciones entre los bots y los C&C, que suelen ser bastante similares.
- Peticiones a servidores DNS de países extranjeros puede ser un indicio para sospechar de la existencia de una botnet. Quitando los grandes servidores de DNS, como Google, que alguien de un país dado realice peticiones a servidores DNS de otros países puede ser un indicio de un comportamiento sospechoso.
- Análisis de las direcciones que se solicitan para su resolución, analizando posible patrones, porcentaje de caracteres numéricos o la inclusión de palabras reconocibles, ya que los atacantes no están preocupados de que sus nombres de dominio sean fáciles de recordar.
- Análisis de uso de TCP como protocolo de transporte para consultas, debido a que su uso suele ser residual puede ser un indicador de un comportamiento anómalo.