Detección de botnets mediante análisis de flujo

En la detección de botnets, otra técnica usada es el análisis de los registros de flujo de red. Esta técnica se basa en analizar el tráfico desde un punto de vista más abstracto, sin entrar a analizar los datos propiamente dichos. Básicamente, la idea es caracterizar las comunicaciones a partir de datos como direcciones IP de origen y destino, puertos de comunicación, volumen de tráfico transmitido o duración de las sesiones. Con todos estos datos, el sistema de análisis de flujo de red puede detectar comportamientos estadísticamente anómalos o patrones de comportamiento mediante los cuales se detecten botnets u otro tipo de amenazas.
- Modelo de datos de NetFlow 5 (fuente: CISCO System) -
Esta técnica, al no analizar la carga útil de los paquetes ("payload"), reduce la cantidad de datos que se deben de almacenar y examinar. Gracias a este hecho, se evitan problemas que tienen otras técnicas como por ejemplo:
- Problemas de legalidad, al no inspeccionar los datos privados no se entra en conflicto con determinadas leyes sobre la privacidad de las comunicaciones.
- Problemas de escalamiento, el tratamiento en tiempo real de los grandes volúmenes de datos, que se generan en redes tamaño mediano o grande, suele ser un problema de gran complejidad y que necesita una gran cantidad de recursos. Al reducirse la cantidad de datos a manejar se atenúa en gran medida este problema.
Sin embargo, este tipo de análisis adolece de tener acceso directo a las evidencias de un comportamiento malicioso, puesto que no analiza los datos propiamente dichos. Esta técnica está limitada al análisis de los metadatos de las comunicaciones, pero que suele ser bastante eficiente a la hora de identificar amenazas en una red.
NetFlow
El protocolo de red que se ha convertido en estándar de facto para el análisis de flujos de red es NetFlow. NetFlow es un protocolo abierto (RFC 3954) diseñado por CISCO System y adoptado posteriormente por otros fabricantes como Juniper, Huawei o 3Com/HP. Este protocolo permite la recolección de información sobre el tráfico IP de una red para su posterior análisis. Los routers y switches que soportan este protocolo, además de distribuir el tráfico por la red, se encargan de enviar los metadatos de dicho tráfico (IPs, puertos,…) a un servidor especializado de recolección. En este servidor se realizan los análisis correspondientes con el fin de identificar patrones de tráfico anómalos, comunicaciones con puertos en teoría filtrados, conexiones a IPs maliciosas, exceso de determinado tipo de tráfico, sesiones demasiado largas o demasiado cortas,… que pueden indicar que la red o alguno de sus integrantes han sido comprometidos.
- Ejemplo de arquitectura NetFlow (fuente: Cisco) -
El análisis de flujo de red puede detectar tanto amenazas desconocidas, al detectar comportamientos anómalos como por ejemplo una botnet no identificada, como amenazas previamente identificadas, como son IPs conocidas de los centros de C&C de una botnet.
Otra ventaja de esta técnica de análisis es la posibilidad de almacenar los reducidos metadatos de las comunicaciones, gracias a lo cual se pueden realizar análisis retrospectivos de amenazas o de ataques con el objeto estudiar la respuesta del sistema y mejorar las contramedidas existentes. Por el contrario, esta técnica genera una sobrecarga de tráfico considerable, ya que los dispositivos de enrutamiento envían los metadatos de las comunicaciones al servidor encargado de almacenar y procesar esta información.
A continuación veremos algunas publicaciones y estudios que desarrollan esta técnica para la detección de botnets:
- En Using machine learning techniques to identify botnet traffic (Livadas C., Walsh, R., Lapsley, D., Strayer, T), se explicó, ya en el año 2006, cómo utilizar métodos de aprendizaje automático para la detección del tráfico de botnet IRC. El sistema propuesto analiza el tráfico de una red estadísticamente, segregando en una primera fase el trafico IRC del no IRC, para en una segunda fase ver qué tráfico IRC corresponde a alguna botnet, para lo cual entre otros datos analiza el número de bytes por paquete y su varianza en el tiempo.
- DISCLOSURE: Detecting Botnet Command and Control. Servers Through Large-Scale NetFlow Analysis (Bilge, Leyla; Balzarotti, Davide; Robertson, William; Kirda, Engin; Kruegel, Christopher), en el cual proponen un sistema para la detección de los servidores C&C de las botnets mediante el análisis de los registros de NetFlow; este análisis se realiza en base al tamaño de los flujos, los patrones de acceso de los clientes y del comportamiento temporal.
- Arquitectura de DISCLOSURE -
- Una aplicación real es el Cisco Cyber Threat Defense Solution. Este sistema utiliza el análisis de los datos obtenidos mediante NetFlow para identificar posibles patrones sospechosos de tráfico de red. Además del análisis de patrones, este sistema incorpora otros métodos para la detección de amenazas:
- Blacklist, detección de botnets mediante el uso de lista negras. El sistema comprueba las conexiones de la red contra múltiples fuentes de información que registran direcciones IP de posibles amenazas.
- Monitorización de conexiones unidireccionales periódicas de muy corta duración hacia el exterior de la red monitorizada. Este tipo de conexiones podrían ser un indicio de conexiones maliciosas.
- Backtracking, cuando se descubre un nuevo servidor de C&C se comprueba la existencia de comunicaciones antiguas contra este servidor en base al histórico que almacena.
Por supuesto, esta técnica de detección es fácilmente evadible si es la única medida que se aplica para detectar botnets. Existen técnicas, como Algoritmo de generación de dominios (DGA) o covert channel, son utilizadas para evitar su detección, intentando que las conexiones realizadas por tipo de amenazas pasen desapercibidas. Por lo tanto, aunque útil esta técnica no puede ser la única a usar en un sistema y deberá ser complementada con otras como análisis de paquetes, análisis de log, análisis de DNS,…