Esta es una publicación escrita por Kaspersky Lab Expert Tillmann Werner, que apareció por primera vez en El blog de Kaspersky's Securelist.

A principios de esta semana, Microsoft publicó un anuncio sobre la interrupción de una botnet peligrosa que era responsable de los mensajes de spam, el robo de información financiera confidencial, las estafas de acciones de bombeo y descarga y los ataques distribuidos de denegación de servicio..

Kaspersky Lab desempeñó un papel fundamental en esta iniciativa de eliminación de redes de bots, liderando el camino para aplicar ingeniería inversa al malware del robot, descifrar el protocolo de comunicación y desarrollar herramientas para atacar la infraestructura de igual a igual. Trabajamos estrechamente con la Unidad de Crímenes Digitales de Microsoft (DCU), compartiendo la información relevante y brindándoles acceso a nuestro sistema de rastreo de botnets en vivo..

Una parte clave de este esfuerzo es el hundimiento de la botnet. Es importante comprender que la botnet todavía existe, pero que está siendo controlada por Kaspersky Lab. Junto con el movimiento de Microsoft al sistema judicial de los EE. UU. Para deshabilitar los dominios, comenzamos a hundir la botnet. En este momento tenemos 3,000 hosts conectados a nuestro sumidero por minuto. Este post describe el funcionamiento interno de la botnet y el trabajo que hicimos para evitar que siga operando..

Comencemos con algunos antecedentes técnicos: Kelihos es el nombre de Microsoft para lo que Kaspersky llama Hlux. Hlux es una botnet peer-to-peer con una arquitectura similar a la utilizada para la botnet Waledac..

Se compone de capas de diferentes tipos de nodos: controladores, enrutadores y trabajadores. Los controladores son máquinas presumiblemente operadas por la pandilla detrás de la botnet. Distribuyen comandos a los robots y supervisan la estructura dinámica de la red de igual a igual..

Los enrutadores son máquinas infectadas con direcciones IP públicas. Ejecutan el bot en modo enrutador, alojan servicios proxy, participan en un colectivo de flujo rápido, etc..

Por último, los trabajadores son máquinas infectadas que no se ejecutan en modo enrutador, simplemente lo ponen. Se utilizan para enviar correo no deseado, recopilar direcciones de correo electrónico, rastrear las credenciales de usuario de la transmisión de la red, etc. A continuación se muestra un bosquejo de la arquitectura en capas con un nivel superior de cuatro controladores y nodos de trabajo que se muestran en verde..

ENCIMA: Arquitectura de la botnet Hlux

Nodos trabajadores

Muchas computadoras que pueden infectarse con malware no tienen una conexión directa a Internet. Están ocultos detrás de puertas de enlace, servidores proxy o dispositivos que realizan la traducción de direcciones de red. En consecuencia, no se puede acceder a estas máquinas desde el exterior a menos que se tomen medidas técnicas especiales..

Este es un problema para los bots que organizan las máquinas infectadas en redes peer-to-peer, ya que requieren servicios de alojamiento a los que otras computadoras pueden conectarse. Por otro lado, estas máquinas proporcionan una gran potencia informática y ancho de banda de red..

Una máquina que ejecute el bot Hlux verificará si se puede acceder desde el exterior y, de no ser así, ponerse en el modo de funcionamiento de trabajador. Los trabajadores mantienen una lista de pares (otras máquinas infectadas con direcciones IP públicas) y les solicitan trabajos. Un trabajo contiene cosas como instrucciones para enviar spam o para participar en ataques de denegación de servicio. También puede decirle al bot que descargue una actualización y se reemplace con la nueva versión..

Nodos de enrutador

Los enrutadores forman algún tipo de capa troncal en la red de bots Hlux. Cada enrutador mantiene una lista de pares que contiene información sobre otros pares, al igual que los nodos de trabajo. Al mismo tiempo, cada enrutador actúa como un proxy HTTP que canaliza las conexiones entrantes a uno de los Controladores. Los enrutadores también pueden ejecutar trabajos, pero su propósito principal es proporcionar la capa proxy frente a los controladores.

Controladores

Los nodos del controlador son la capa superior visible de la botnet. Los controladores alojan un servidor HTTP nginx y sirven mensajes de trabajo. No participan en la red de igual a igual y, por lo tanto, nunca aparecen en las listas de iguales. Normalmente hay seis de ellos, distribuidos por pares en diferentes rangos de IP en diferentes países.

Cada una de las dos direcciones IP de un par comparte una clave SSH RSA, por lo que es probable que realmente haya solo una casilla detrás de cada par de direcciones. De vez en cuando algunos de los controladores son reemplazados por otros nuevos. Justo antes de que se eliminara la botnet, la lista contenía las siguientes entradas:

193.105.134.189
193.105.134.190
195.88.191.55
195.88.191.57
89.46.251.158
89.46.251.160

La red peer-to-peer

Cada bot mantiene hasta 500 registros de pares en una lista de pares local. Esta lista se almacena en el registro de Windows bajo HKEY_CURRENT_USER \ Software \ Google junto con otros detalles de configuración. Cuando un bot se inicia en una máquina recién infectada por primera vez, inicializa su lista de pares con algunas direcciones codificadas contenidas en el ejecutable..

La última versión del bot vino con un total de 176 entradas. La lista de pares locales se actualiza con la información de pares recibida de otros hosts. Cada vez que un bot se conecta a un nodo enrutador, envía hasta 250 entradas de su lista de pares actual, y el par remoto envía 250 de sus entradas de vuelta. Al intercambiar listas de pares, las direcciones de los nodos del enrutador actualmente activos se propagan a través de la red de bots. Un registro de igual almacena la información que se muestra en el siguiente ejemplo:

m_ip: 41.212.81.2
m_live_time: 22639 segundos
m_last_active_time: 2011-09-08 11:24:26 GMT
m_listening_port: 80
m_client_id: cbd47c00-f240-4c2b-9131-ceea5f4b7f67

La arquitectura peer-to-peer implementada por Hlux tiene la ventaja de ser muy resistente frente a los intentos de derribo. La estructura dinámica permite reacciones rápidas si se observan irregularidades. Cuando un bot desea solicitar trabajos, nunca se conecta directamente a un controlador, sin importar si se está ejecutando en modo trabajador o enrutador. Una solicitud de trabajo siempre se envía a través de otro nodo enrutador. Entonces, incluso si todos los nodos del controlador se desconectan, la capa de igual a igual permanece activa y proporciona un medio para anunciar y propagar un nuevo conjunto de controladores.

La red de servicio de flujo rápido.

La botnet Hlux también sirve varios dominios de flujo rápido que se anuncian en el sistema de nombres de dominio con un valor TTL de 0 para evitar el almacenamiento en caché. Una consulta para uno de los dominios devuelve una única dirección IP que pertenece a una máquina infectada.

Los dominios de flujo rápido proporcionan un canal de retroceso que los bots pueden usar para recuperar el acceso a la red de bots si no se puede acceder a todos los pares en su lista local. Cada versión del bot contiene un dominio de recuperación individual codificado.

Microsoft anuló el registro de estos dominios y retiró efectivamente el canal alternativo. Aquí está el conjunto de nombres DNS que estaban activos antes de la eliminación, en caso de que quiera vigilar su sistema de resolución de DNS. Si ve máquinas que piden una de ellas, es probable que estén infectadas con Hlux y deben ser atendidas.

hellohello123.com
magdali.com
restonal.com
editial.com
gratima.com
partric.com
wargalo.com
wormetal.com
bevvyky.com
earplat.com
metapli.com

La botnet utilizó además cientos de subdominios de ce.ms y cz.cc que se pueden registrar sin cargo. Pero estos solo se utilizaron para distribuir actualizaciones y no como un enlace de respaldo a la botnet..

Contraacciones

Un bot que puede unirse a la red de igual a igual nunca resolverá ninguno de los dominios de reserva, no tiene que hacerlo. De hecho, nuestro monitor de botnets no ha registrado un solo intento de acceder al canal de respaldo durante los siete meses en que se operó, ya que al menos otro igual siempre ha sido accesible.

La comunicación para los comandos de arranque y recepción utiliza un protocolo especial personalizado que implementa un formato de mensaje estructurado, cifrado, compresión y serialización. El código del bot incluye un despachador de protocolo para enrutar los mensajes entrantes (mensajes de arranque, trabajos, comunicación SOCKS) a las funciones apropiadas mientras sirve todo en un solo puerto.

Realizamos ingeniería inversa de este protocolo y creamos algunas herramientas para decodificar el tráfico de botnets. El hecho de poder rastrear los mensajes de arranque y de trabajo para una máquina infectada intencionalmente proporcionó una vista de lo que estaba sucediendo con la botnet, cuando se distribuyeron las actualizaciones, qué cambios arquitectónicos se realizaron y también, hasta cierto punto, cuántas máquinas infectadas participan en la botnet.

ENCIMA: Golpes en el sumidero por minuto.

Este lunes, comenzamos a propagar una dirección especial de compañeros. Muy pronto, esta dirección se convirtió en la más frecuente en la red de bots, lo que dio como resultado que los robots hablaran con nuestra máquina y solo con nuestra máquina. Los expertos llaman tal acción hundimiento - Los bots se comunican con un sumidero en lugar de sus controladores reales..

Al mismo tiempo, distribuimos una lista especialmente diseñada de servidores de trabajo para reemplazar el original con las direcciones mencionadas anteriormente y evitar que los robots soliciten comandos. A partir de este momento, la red de bots ya no puede ser ordenada. Y dado que los bots se están comunicando con nuestra máquina ahora, podemos hacer un poco de minería de datos y rastrear infecciones por país, por ejemplo. Hasta el momento, hemos contado con 49.007 direcciones IP diferentes. Kaspersky trabaja con los proveedores de servicios de Internet para informar a los propietarios de la red sobre las infecciones..

ENCIMA: Direcciones IP disipadas por país

Ahora que?

La pregunta principal ahora es: ¿qué sigue? Obviamente no podemos hundir a Hlux para siempre. Las medidas actuales son una solución temporal, pero en última instancia no resuelven el problema, porque la única solución real sería una limpieza de las máquinas infectadas..

Esperamos que la cantidad de máquinas que golpeen nuestro sumidero disminuya lentamente con el tiempo a medida que las computadoras se limpien y reinstalen. Microsoft dijo que su Malware Protection Center ha agregado el bot a su Herramienta de eliminación de software malintencionado. Dada la difusión de su herramienta, esto debería tener un impacto inmediato en los números de infección. Sin embargo, en las últimas 16 horas todavía hemos observado 22,693 direcciones IP únicas. Esperamos que este número sea mucho menor pronto.

Curiosamente, hay otra opción teórica para deshacerse de Hlux: sabemos cómo funciona el proceso de actualización del bot. Podríamos usar este conocimiento y emitir nuestra propia actualización que elimina las infecciones y termina por sí misma. Sin embargo, esto sería ilegal en la mayoría de los países y, por lo tanto, seguirá siendo la teoría..