Detección de botnets mediante análisis de paquetes

El gran problema que suponen las botnets a día de hoy, tanto para el análisis de sistemas infectados como a las víctimas de sus acciones (ataques de denegación de servicio, spam,...) justifican el esfuerzo que se está realizando para desarrollar e implementar técnicas para su detección y prevención por parte de empresas de seguridad informática, universidades, CERTs, policía, etc.
Sin embargo, la lucha contra las Botnets no es un problema de fácil solución ya que representa un desafío en constante evolución, en el que los cibercriminales no paran de evolucionar creando nuevas técnicas para evadir los sistemas actuales de detección, y mantener estas redes de ordenadores zombies durante el mayor tiempo posible y con la máxima rentabilidad. El uso de técnicas como Fast Flux, la generación dinámica de dominios (DGA), la ofuscación de las comunicaciones, el uso de comunicaciones P2P o la utilización de la red Tor, y la implementación de medidas antireversing entre otras, intentan evitar o entorpecer la detección de este tipo de malware
Servicio Antibotnet de la Oficina de Seguridad del Internauta
Aunque existen varias clasificaciones sobre técnicas de detección de botnet, para hacer frente a las técnicas anteriormente descritas, en este texto tomaremos como base la realizada por la ENISA en el informe "Botnets: Detection, Measurement, Disinfection & Defence" El informe divide las técnicas pasivas, y técnicas activas.
Principales técnicas de detección de Botnets
Técnicas Pasivas
Este tipo de técnicas agrupan todo sistema o procedimiento de detección de botnets que se basan en la simple observación, sin interferir o modificar ninguno de los elementos implicados, es decir, métodos basados en el análisis de comportamiento y en firmas. Aunque estas técnicas tienen restricciones respecto a la información que pueden obtener, también son más difíciles de detectar por los Bot Masters. Veamos las principales características y funcionamiento de la primera de las técnicas pasivas de detección de botnets:
Inspección de Paquetes (Packet Inspection)
Esta técnica consiste en inspeccionar los paquetes del tráfico de red en busca de patrones o características previamente definidas para para detectar posibles amenazas. Ejemplos de uso de esta técnica es comprobar las IP destino de los paquetes contra lista negras de IP clasificadas como C&C (centros de control) de botnets, monitorizar conexiones a puertos diferentes de los habituales o la búsqueda de cadenas de caracteres especiales que puedan identificar una amenaza.
En función del tipo de análisis de paquetes podríamos distinguir entre inspección superficial de paquetes (Stateful Packet Inspection o SPI) e inspección a fondo de los paquetes (Deep Packet Inspection o DPI). El análisis SPI se centra exclusivamente en el los datos de cabecera (IPs, puertos, protocolos,…) pero no entra a analizar el contenido del paquete. Este tipo de análisis SPI es el que realizan los normalmente los firewalls.
Por otro lado, en un análisis DPI, además de tenerse en cuenta los datos de cabecera de los paquetes, el sistema analiza el contenido o parte útil del paquete. Este tipo de análisis es el más interesante desde el punto de vista de detección de botnets, ya que utiliza una combinación de técnicas de análisis basadas en firmas, análisis estadísticos y análisis de anomalías para detectar posibles amenazas en la red monitorizada. Con una parametrización adecuada, estos sistemas pueden detectar tanto amenazas conocidas e identificadas como amenazas nuevas al detectar patrones o tráfico anómalo.
Los tipos de sistemas o aplicaciones existentes enfocados en realizar análisis DPI pueden ser clasificados en IDS (Intrusion Detection Systems) e IPS (Intrusion Prevention Systems). Los IDS son sistemas pasivos que solo generan alertas, mientras que los IPS toman medidas activas como cortar las conexiones sospechosas.
Un ejemplo de este tipo de software IDS/IPS son SNORT, desarrollado por SourceFire y que es el estándar de facto; Suricata, desarrollado por la Open Information Security Foundation (OISF); y Bro, desarrollado actualmente por el International Computer Science Institute y el National Center for Supercomputing Applications. Los tres sistemas son IDS/IPS de código libre y tienen como misión analizar el tráfico de red en base a un amplio conjunto de reglas para detectar amenazas y minimizarlas en función de las medidas configuradas
Logotipos de los IDS SNORT, SURICATA y BRO
Estos IDS se pueden configurar para detectar unos eventos u otros utilizando reglas. Por ejemplo, a continuación se muestra una regla de SNORT para detectar conexiones establecidas por la botnet Zeus:
alert tcp $EXTERNAL_NET $HTTP_PORTS -> $HOME_NET any (msg:"MALWARE-OTHER Win.Trojan.Zeus Spam 2013 dated zip/exe HTTP Response - potential malware download"; flow:to_client,established; content:"-2013.zip|0D 0A|"; fast_pattern:only; content:"-2013.zip|0D 0A|"; http_header; content:"-"; within:1; distance:-14; http_header; file_data; content:"-2013.exe"; content:"-"; within:1; distance:-14; metadata:impact_flag red, policy balanced-ips drop, policy security-ips drop, ruleset community, service http; reference:url,www.virustotal.com/en/file/2eff3ee6ac7f5bf85e4ebcbe51974d0708cef666581ef1385c628233614b22c0/analysis/; classtype:trojan-activity; sid:26470; rev:1;)
Ejemplo de regla de SNORT para detección botnet Zeus
Aunque esta técnica de detección es útil tiene de varios problemas:
- Falta de escalabilidad, en redes con gran tráfico la cantidad de información puede crear un cuello de botella si las reglas del sistema no están definidas con cuidado.
- Alta tasa de falsos positivos.
- Dificultades con el análisis de paquetes si las comunicaciones están cifradas, ya que no se podrían descifrar el contenido de los paquetes a analizar.
- Legalmente pueden existir problemas al analizar se la información enviada en los paquetes.
A favor el análisis de paquetes tendría las siguientes ventajas:
- Tiempo de reacción bajo, "simplemente" actualizando las reglas se puede proteger al sistema frente a nuevas amenazas.
- Flexibilidad, el sistema es capaz de detectar amenazas no definidas si descubre comportamiento anómalos.
- Permite analizar ataques a posterior, si se registra el tráfico de la red