Una de las amenazas de las que más se ha hablado en estos últimos meses es Dorkbot, una botnet con más de 80.000 bots en Latinoamérica. Las botnets son redes comprometidas con algún tipo de código malicioso, operada por una entidad criminal y que se utiliza para hacer, por ejemplo, ataques de denegación de servicio, propagar spam o robo de información. La característica es que los equipos infectados, también conocidos como zombis, son utilizados para estas tareas maliciosas sin que el usuario se percate.

Muchos desarrollos para detectar botnets se enfocan en detectar el tráfico particular que existe entre los integrantes de una red de este tipo. Este procedimiento es bastante complejo pues exige monitorear una gran cantidad de datos que crece en redes de alta velocidad, y más aún cuando los botmasters utilizan técnicas para balancear el tráfico generado desde los diferentes equipos zombis que forman su red y de esta forma evadir este tipo de monitoreos.

Un enfoque que se ha desarrollado desde hace varios meses, consiste en utilizar lo que se denomina grupos de actividades (group activity’).  Este mecanismo de detección, desarrollado por profesores de la Universidad de Korea, utiliza la estructura particular de cualquier botnet: la asociación entre los hosts infectados, los servidores de comando y control (C&C) y las víctimas. Al utilizar los mencionados grupos es posible detectar botnets desconocidas, independientemente de su protocolo de comunicación y la estructura. Puntualmente se analiza el comportamiento del tráfico DNS, ya que es el que generalmente se envía antes de realizar los ataques, y al centrarse solamente en este tipo de paquetes se baja la carga de análisis al no tener que monitorear el tráfico de toda la red. Sobre la información del tráfico DNS recolectado se utilizan algoritmos de clustering (agrupamiento por similaridad) para detectar grupos cuyo tráfico este correlacionado. A partir de los cluster formados se pueden identificar cuales tienen comportamiento de botnet de acuerdo a las características particulares.

Otra técnica utilizada, se basa en el uso de análisis bayesiano (inferencia bayesiana) a partir de estudiar las similitudes con tráfico de equipos zombis conocidos. Lo que proponen este tipo de modelos es que los equipos infectados en una misma botnet deben tener un tráfico DNS similar y este se debe poder distinguir de el tráfico DNS legítimo. Uno de los problemas de este modelo es la generación de falsos positivos cuando un dominio particular es consultado por un equipo infectado y por pocos equipos no infectados.

Como estos dos ejemplos, muchas otras técnicas coinciden en utilizar el tráfico DNS para la detección de botnets, aprovechando que este tipo de tráfico es utilizado para enviar consultas a los servidores C&C o a los servidores de actualización. También se envían consultas DNS cuando se presentan los ataques de denegación de servicio o por ejemplo en la distribución de spam, una botnet puede generar consultas DNS masivas en la búsqueda de la víctima.

Más allá del algoritmo o la técnica de análisis que se utilice, el tráfico DNS se convierte en una alternativa para la detección de botnets, que al no ser tan masivo facilita la implementación de cualquier técnica de análisis sea supervisada o no supervisada dado la gran cantidad de tráfico que se puede generar en una red infectada.

H. Camilo Gutiérrez Amaya
Especialista de Awareness & Research