BotTrack: Tracking Botnets using NetFlow and PageRank

La semana pasada una compañera me hizo llegar una serie de papers de la Universidad de Luxemburgo. Entre ellos me llamó la atención uno cuyo título era el de esta misma entrada: BotTrack: Tracking Botnets using NetFlow and PageRank. Para el que no lo conozca, Netflow es un protocolo desarrollado por Cisco Systems que permite a routers y switches, principalmente, enviar los flujos de comunicación de red hacia otro dispositivo que se le conocerá como colector y donde se podrá hacer un análisis de la información.

La investigación, realizada por Jérôme François, Shaonan Wang, Radu State, y Thomas Engel, en su documento intenta mostrarnos cómo detectar botnets P2P utilizando NetFlow y una extensión del algoritmo PageRank utilizado por Google.

El documento nos cuenta las arquitecturas habituales de botnets y la evolución que están sufriendo hacia arquitecturas distribuidas, para aumentar la escalabilidad principalmente. Para detectar estas nuevas arquitecturas, proponen lo siguiente:

Tal y como explican, en primer lugar se dispone de un colector netflow (por ejemplo la herramienta ntop con el plugin de netflow) que recoge los flujos de routers, honeypots, etc. Con estos flujos se hace un grafo de relación entre hosts. Este grafo es analizado por un módulo que implementa una versión del algoritmo PageRank de Google que según el autor es un algoritmo apropiado para analizar los enlaces de comunicación entre los hosts en redes grandes. Como resultado de procesar el grafo con estos algoritmos se obtienen dos valores, el hub rank (Partiendo de los nodos origen tráfico hacia los nodos destino) y el authority rank (Partiendo de los nodos destino tráfico hacia los orígenes), que tienen en cuenta la dirección del tráfico para calcularlos. La puntuación de cada nodo será mayor dependiendo de la cantidad de conexiones que tenga con otros nodos y de la calidad de esas conexiones. Por ejemplo, el nodo que es un honeypot distribuirá mayor peso a los nodos con los que está relacionado, y se considerará por tanto una conexión importante (mayor peso), ya que la probabilidad de que un nodo relacionado con él forme parte de una botnet es muy alta.

Partiendo del hub rank y authority rank de cada nodo el módulo de cluster agrupará con el objetivo de identificar nodos con un rol similar dentro de la red. El ejemplo que ponen en el documento es el cálculo de hub rank y authority rank para el protocolo kademlia, para hosts normales y para bots, de manera que se vea la distribución de los valores y sea posible comparar. En este caso se ve cómo ha identificado dos clusters de bots principales:

Es posible por tanto obtener unos rangos de valores que permitan identificar una botnet utilizando un protocolo p2p según lo que nos cuentan en este estudio. Os recomiendo su lectura dado que puede aportaros ideas para la explotación del tráfico NetFlow para la detección de botnets p2p.

Comments

  1. Valiosa información desde luego. Además kademlia es un servicio gratuito.
    A ver si es el principio del fin del destierro de las botnets.