BotNets

El malware, los virus, ya no tienen fines únicamente destructivos, tienden a aprovecharse las vulnerabilidades de seguridad ya no sólo para robar información bancaria, por ejemplo, sino además para conseguir que los ordenadores infectados queden bajo el control de la red criminal que preparó el software para poder seguir utilizando ese equipo en el futuro.

Según el CERT son una de las principales amenazas de Internet: se alquilan en el mercado negro,  se utilizan para el envío de spam o phising y para originar los temidos ataques de denegación de servicio. Hay miles de redes zombies que llegan a controlar millones de equipos. De vez en cuando se hace pública alguna noticia que revela la envergadura del problema.

Incluso se venden kits de desarrollo de estas botnets con funcionalidades que ponen verdaderamente muy fácil el uso de complejas técnicas de hacking.

Un ordenador infectado queda a las órdenes de los administradores de estas redes. Pueden estar en estado latente durante mucho tiempo y su presencia es difícil de detectar. Permiten al administrador de la red tomar el control del equipo, robar información desde él, u ordenarle atacar otros equipos.

En general los administradores sabemos lo que es una botnet, escuchamos cada cierto tiempo la caída de alguna y nos asustamos con la cantidad de equipos zombies que tenía… y surge la duda: ¿habrá equipos infectados en la organización?, (se estima que más del 25% son equipos empresariales ) y: ¿cómo podemos hacer un análisis para detectarlos? ¿Está mi red protegida contra esta amenaza? Si no es así ¿Cómo puedo protegerme?

La complejidad de esta amenaza hace que, en una organización grande, la lucha sea una tarea multidisciplinar: involucra a administradores de comunicaciones, de sistemas Windows…  Por un lado los equipos deberían tener antivirus pero sabemos que no es suficiente, por otro los ordenadores infectados no son fáciles de detectar ya que estás redes son “proxy-aware”: no es suficiente con tener un proxy que filtre la salida a Internet para estar protegido: las IP’s a las que conectan para recibir órdenes cambian rápidamente y utilizan protocolos de salida a Internet que suelen estar abiertos en cualquier organización: HTTP y HTTPS.

Mecanismos de comuniccación

Las  redes de zombies han ido aumentado su complejidad llegando a utilizar técnicas bastante sofisticadas para asegurar su prevalencia (incluso a competir entre ellas por cada equipo infectado, eliminando las infecciones por redes rivales). Han pasado de utilizar el protocolo IRC para establecer la comunicación con el centro de control CnC a utilizar HTTP o HTTPS, e incluso la mensajería de twitter, más difíciles de detectar al confundirse con tráfico legítimo:

protocols

Fuente: http://www.microsoft.com/security/sir/story/default.aspx#section_2_2_1

Además de por el protocolo utilizado las botnets pueden clasificarse por su topología:

Topologías de redes de BotNets:

Estrella

star

Multi-server

Es similar a la topología en estrella, pero hay diversos centros de control que evitan que la red tenga un punto único de fallo al desactivarse el CnC. Además permite planificar una distribución geográfica que mejore las latencias en la comunicación.

multiserver

Jerárquica

Como si de distintos comandos terroristas se tratase, evitan que caiga toda la red en caso de caer una subred y además es fácil alquilar las subredes. Aumentan las latencias en la transmisión de órdenes.

jerarquica

Aleatoria

La ventaja que proporcionan estas redes a sus administradores es que son muy difíciles de apagar, ya que no hay dependencia de unos controladores. La desventaja es que es muy fácil enumerar a sus miembros a partir de uno detectado, además se pueden producir grandes latencias entre hosts al ser impredecible s los caminos en su comunicación. Es una típica topología de red P2P.

random

Fuente: http://www.damballa.com/downloads/r_pubs/WP%20Botnet%20Communications%20Primer%20(2009-06-04).pdf

Para aumentar la resistencia y el tiempo de vida de sus redes zombies los administradores de las mismas comienzan a utilizar complejas técnicas que impiden su rastreo, detección y bloqueo:

IP Flux (fast-flux)

Se asocian varias IP’s con un registro DNS y además cambian rápidamente las IP’s asociadas.

Hay dos tipos de fast-flux:

  • §  Single-flux: cientos o miles de IP’s asociadas a un nombre de dominio. Son registradas y desregistradas rápidamente. RoundRobin de DNS + TTL bajo en la configuración de los registros.
  • §  Double-flux: además de cambiar las IP’s asociadas a los registros cambian los servidores DNS asociados al nombre de dominio.

Domain Flux

El caso inverso. Se asocian múltiples fqdn’s a una misma IP, típicamente el CnC (centro de control) de la red.

Además de por estas técnicas, el tráfico generado por un equipo zombie es difícil de detectar ya que.

  • §  Utiliza protocolos que son utilizados por tráfico legítimo, habitual y de muy costoso análisis debido al volumen de datos en una red corporativa.
  • §  El volumen de tráfico que genera, si el zombie está latente, es muy pequeño.
  • §  Puede haber muchos tipos de infecciones en una red grande
  • §  Puede utilizar comunicación encriptada HTTPS

Defensa

Ante tal complejidad parece difícil defenderse, pero hay medidas que se pueden tomar para intentar evitar, en la medida de lo posible, estas infecciones y, si se producen, detectarlas rápidamente y eliminarlas.

Lo más importante, por supuesto, es tener todos los equipos de la red actualizados con los últimos parches de seguridad, tanto del sistema operativo, como de otros programas (Acrobat Reader, Flash Player, etc…)

En segundo lugar disponer de un sistema antivirus actualizado en el equipo.

Esto aplica a todos los equipos, domésticos y empresariales. Trend Micro ha liberado una herramienta gratuita que detecta y elimina estas infecciones específicamente: http://free.antivirus.com/rubotted/

En el caso de grandes organizaciones es necesario, además, atajar estas amenazas de una forma centralizada y ese punto es la infraestructura de comunicaciones (la salida a Internet), por donde están obligados a pasar todos los equipos infectados para enviar y recibir instrucciones. Es aquí donde podemos detectar de forma centralizada equipos infectados. Es básico, por tanto contar con una infraestructura de comunicaciones que impida a los equipos la libre salida a Internet y, en las excepciones en que se permita, esté monitorizada la salida a Internet y filtrada.

En este sentido, afortunadamente, hay en el tráfico de red patrones comunes que pueden servir para identificar equipos infectados: Varios equipos infectados recibirán de forma similar instrucciones y enviarán instrucciones o actuarán de forma similar ante instrucciones de  los CnC. Por ejemplo: en horas muy similares varios equipos ejecutan los mismos comandos y reportan al CnC el resultado de las tareas asignadas.

Estos patrones comunes permiten generar complejos algoritmos de detección que afinen bastante la detección de equipos:

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.110.8092&rep=rep1&type=pdf

http://ccs.korea.ac.kr/pds/COMSWARE09.pdf

En base a estos algoritmos se construyen herramientas específicas para luchar contra estas amenazas. Además ya hay diversas iniciativas en Internet que pretenden poner freno a la expansión de este tipo de redes:

En SRI han desarrollado una herramienta específica para este propósito: BootHunter

Se pueden configurar sistemas IDS (Sistema de detección de intrusos) como SNORT (opensource Windows/Linux) utilizando reglas específicas: emerging-botcc.rules y botnet-cnc.rules para detectar/bloquear este tráfico no legítimo.

Se puede afrontar utilizando sistemas DLP: http://blog.damballa.com/?p=648

Otras iniciativas interesantes en la lucha contra este tipo de amenazas son:

En dsshield mantienen una lista negra de IP’s generada cooperativamente por sus miembros.

En ShadowServer pretenden monitorizar y medir la actividad de estas redes, instalando honeypots que monitoricen y envíen información que permita medir su actividad. Disponen de estadísticas en tiempo real de la actividad monitorizada.