Botnets

Índice
- Introducción
- Objetivos
- 1.Antecedentes e inicios de la amenaza
- 2.Fases previas al despliegue de una botnet
- 3.Coordinación y gestión básica de robots
- 4.Mayor redundancia y protección en las comunicaciones
- 5.Modelo económico asociado a las botnets
- Resumen
- Ejercicios de autoevaluación
- Glosario
- Bibliografía
Introducción
Objetivos
-
Entender qué son las botnets y saber cómo surgieron
-
Comprender el modelo de propagación de una botnet tradicional
-
Conocer el modelo de comunicación y colaboración entre robots y operadores
-
Ver algunas de las técnicas utilizadas por los operadores de una botnet para proteger sus equipos y evitar que la red de robots sea desarticulada
-
Conocer el modelo económico que promueve la creación y el mantenimiento de una botnet, así como las actividades asociadas.
1.Antecedentes e inicios de la amenaza
1.1.Breve historial sobre botnets conocidas

Una de las mejores lecturas para entender la evolución de las botnets es el artículo "The Evolution of Malicious IRC Bots", publicado por Symantec y escrito por John Canavan. En ella podréis encontrar un segundo caso parecido al despliegue de Subseven, conocido bajo el sobrenombre de Pretty Park. Al igual que el caso relacionado con el despliegue a gran escala de Subseven, Pretty Park se caracteriza por la instalación de malware de tipo troyano, que permitirá al operador de la infección un control total sobre los equipos que compondrán la futura botnet.
2.Fases previas al despliegue de una botnet

2.1.Búsqueda e identificación de futuros robots
2.2.Explotación de vulnerabilidades y acceso no autorizado
-
entradas no controladas que pueden provocar acciones malintencionadas y ejecución de código malicioso;
-
uso de caracteres especiales que permiten un acceso no autorizado al servidor del servicio;
-
entradas inesperadamente largas que provocan desbordamientos dentro de la pila de ejecución y que pueden implicar una alteración en el código que ejecutar, etc
-
Servicios RPC (remote procedure call) erróneos en objetos DCOM (distributed component object model) en sistemas operativos Windows XP. La explotación remota es posible mediante el acceso a los servicios vulnerables a través de puertos TCP (por ejemplo, puertos 135, 139, 445 y 593, entre otros)
-
Servicios web basados en IIS5 WEBDAV. Explotación remota a través de puertos TCP (por ejemplo, puerto 80)
-
Versiones vulnerables de Windows Messenger. Explotación remota a través de puertos TCP (por ejemplo, puerto 1025)
-
Implementación ASN.1 vulnerable en servicio Kerberos para sistemas operativos Windows. Explotación remota a través de puertos UDP (por ejemplo, puerto 88)
-
Servicio HTTP vulnerable del sistema operativo CISCO IOS en su gama de encaminadores (routers). Explotación remota a través de puertos TCP (por ejemplo, puerto 80)
-
Versiones vulnerables del sistema gestor de bases de datos MSSQL. Explotación remota a través de puertos TCP (por ejemplo, puerto 1433)
-
guest/letmein, invited/client, recovery/temp,
-
staff/changeme, faculty/qwerty, student/1234,
-
tech/public, ftp/default, manager/friend,..
-
Subseven (puerto por defecto, 27347)
-
NetDevil (puerto por defecto 903)
-
Optix (puerto por defecto 3140)
-
Bagle (puerto por defecto 2745)
-
Kuang (puerto por defecto 17300)
-
Mydoom (puerto por defecto 3127)
2.3.Ataques e infecciones complementarias
-
envío de enlaces tipo XSS, CSRF, phishing, tratando de engañar y robar información proporcionada por el usuario (por ejemplo, nombres de usuario y contraseñas);
-
código oculto dentro del mensaje electrónico para la posterior instalación de macros o código interpretado (imágenes o estructuras de datos con contenido malicioso, tipo vbasic, javascript, flash, etc.) que tratará, más adelante, de explotar vulnerabilidades locales o remotas en la víctima, y
-
propaganda sobre lanzaderas web (por ejemplo, falsos noticiarios en línea o sitios web con contenidos ilícitos, que esconden en su código HTML la inyección y ejecución en la víctima de código viral).
3.Coordinación y gestión básica de robots
3.1.Gestión centralizada basada en servicios IRC

-
Mediante modelos tipo PUSH. Con la utilización de un modelo PUSH, el operador de la botnet será el encargado de enviar (empujar) el primer comando de control que requieren los robots de la botnet. Dicho comando, almacenado comúnmente como el tema de los canales del servidor (o servidores) para los que los robot han sido programados a visitar. Así pues, y de manera asíncrona, los robots de la botnet comprobarán periódicamente (según cómo su agenda haya sido programada) para acceder a dichos canales, para descargar nuevos comandos almacenados por el operador. Cada vez que un nuevo equipo infectado se una a la botnet, recogerá de esta manera la operación inicial que debe ejecutar para completar la fase de despliegue.
-
Mediante modelos tipo PULL. Con la utilización de un modelo PULL, el mismo comando será ejecutado por todos los robots sin necesidad de interacción directa con el operador. En contrapartida, el operador necesitará conocer a priori dónde almacenar o realizar el envío de los comandos para garantizar una correcta inicialización de los robots del sistema. Para ello, codificará, por ejemplo, un conjunto de direcciones IP o de nombre de dominio asociado a los servidores IRC que los robots deben visitar tras su primera ejecución. Estas listas serán actualizadas periódicamente a cada interacción con los servidores IRC. En el caso de utilizar un modelo PULL, los robots requieren iniciar una comunicación directa con el operador, a la espera de recibir nuevas instrucciones o comandos. Este modelo requiere también que los robots obtengan durante la fase de infección una agenda de tareas, programada por los operadores, y almacenada en los ficheros de configuración de los robots. El robot se encargará de enviar una petición (en inglés query) al operador, almacenándola como comentario en algunos de los canales de los servidores IRC desplegados por el operador. Al descubrir la petición, el operador responderá a la consulta mediante alguna aplicación automática con el fin de proveer una respuesta instantánea a los robots
3.2.Gestión centralizada basada en conexiones HTTP
http://mybotnet.canal.to/get?puerto=2001&clave=1234
3.3.Gestión centralizada basada en protocolos de aplicación similares
4.Mayor redundancia y protección en las comunicaciones
4.1.Necesidad de estrategias alternativas
4.2.Comunicación descentralizada mediante redes P2P

4.3.Protección basada en renovación cíclica de referencias DNS

acmeBotnet.servers.com pointing to 10.0.0.1 acmeBotnet.servers.com pointing to 10.0.0.2 acmeBotnet.servers.com pointing to 10.0.0.3 ...

5.Modelo económico asociado a las botnets
5.1.Primeras generaciones
5.2.Actividades asociadas a botnets actuales
5.3.Perspectivas y garantías de mejoras continuas
-
El alquiler de una cuenta de usuario, con acceso no exclusivo a los recursos del robot, asciende a los 15 céntimos de euro mensuales
-
El alquiler de una cuenta de usuario, con acceso exclusivo a los recursos de un robot de la botnet, asciende a los 30 céntimos de euro mensuales
-
El alquiler de una zona parcial de una botnet, con hasta 500 robots, puede alcanzar los 380 euros mensuales
-
La utilización puntual de un volumen mayor de robots para, por ejemplo, la realización de un ataque de tipo DDoS contra una víctima que determinar puede alcanzar entre 40 y 700 euros
-
El alquiler de volúmenes mayores (de un orden superior a los veinte mil robots) para, por ejemplo, realizar una campaña de publicidad mediante el uso de spam se comercializa a unos 75 euros por semana
Resumen
Botnets
|
||
---|---|---|
Descubrimiento, explotación e infección |
Búsqueda de víctimas |
Barrido de puertos + escáner de vulnerabilidades Distribución de mensajes corruptos, P2P, IM... Ingeniería social, servicios secretos... |
Explotación de vulnerabilidades |
Desbordamientos de pila Condiciones de carrera Robo de contraseñas, fuerza bruta... |
|
Toma de control de los equipos |
Modificación de servicios internos Instalación de código malicioso Obertura de puertas traseras |
|
Coordinación y gestión de los robots |
Despliegue de recursos y canales C&C |
Arquitecturas centralizadas - Topología monoservidor en estrella - Topología multiservidor en estrella Arquitecturas descentralizadas - Topología aleatoria Arquitecturas híbridas - Topología jerárquica |
Protocolos mayoritariamente utilizados |
IRC, HTTP, IM, FTP... P2P (bittorrent, kademlia, Waste...) DNS (resolución y protección de recursos) |
|
Inicialización y características de la comunicación |
Modelo PUSH monodireccional Modelo PULL monodireccional Modelo PULL bidireccional |
|
Técnicas de redundancia y protección |
Descentralización total de los servidores C&C Federación de servidores C&C Uso de FastFlux y FastFlux avanzado |
|
Servicios y actividades asociadas al modelo económico de las botnets actuales |
Denegaciones de servicio distribuidas Campañas de venta ilícita Servicios de espionaje Hospedaje de aplicaciones ilícitas Diseminación de aplicaciones ilícitas |
Servicios de spamming Hospedaje de contenidos ilegales ... |
Ejercicios de autoevaluación
a) Las primeras botnets de la historia fueron utilizadas por administradores de operadoras de servicios ilícitos para proteger sus campañas de venta de productos ilegales y para agilizar sus servicios de espionaje y de control de compañías de la competencia
a) Mediante la modificación de los registros o guiones de iniciazalición de los equipos infectados, asegurando que el código malicioso se ponga en marcha tras cada nueva reinicialización
a) Los teléfonos móviles, en especial aquellos que se caractericen por una mayor autonomía y libertad de movimiento
a) Porque TCP ofrece los mecanimos de redundancia y protección necesarios para evitar una desarticulación total de la botnet
Solucionario
1. a) Incorrecto.b) Correcto.
c) Incorrecto.
d) Incorrecto.
2. a) Correcto.
b) Incorrecto.
c) Incorrecto.
d) Incorrecto.
3. a) Incorrecto.
b) Correcto.
c) Incorrecto.
d) Incorrecto.
4. a) Incorrecto.
b) Incorrecto.
c) Incorrecto.
d) Correcto.
Glosario
- bug m
- Error de programación que puede desencadenar una deficiencia de seguridad.
- caballo de troya m
- Programa, aparentemente inofensivo, que contiene en su interior un ataque contra una vulnerabilidad no corregida.
- denegación de servicio f
- Ataque que tratará de saturar recursos de la víctima, tales como memoria o capacidad de cálculo y procesamiento (en inglés, denial of service).
- DDoS f
- Denegación de servicio distribuida (en inglés, distributed denial of service).
- DoS f
- Véase denegación de servicio.
- exploit m
- Técnica (en general, de tipo software) que permite utilizar una vulnerabilidad, aún no corregida, con fines deshonestos.
- exploración de puertos f
- Técnica utilizada para identificar los servicios que ofrece un sistema o un equipo en particular.
- escáner de vulnerabilidades m
- Aplicación que permite comprobar si un sistema es vulnerable a un conjunto de deficiencias de seguridad.
- huella identificativa f
- Información precisa que permite identificar un equipo o una red en concreto (en inglés, fingerprinting).
- malware m
- Programa con fines malintencionados.
- requests for comments m
- Conjunto de documentos técnicos y notas organizativas sobre Internet.
- RFC f
- Véase requests for comments.
- robot m
- Programa deshonesto que permite al operador de una botnet controlar a distancia los recursos de un equipo infectado.
- sniffer m
- Aplicación que intercepta toda la información que pase por la interfaz de red a la que esté asociada.
- troyano m
- Véase caballo de troya.