Sugerencia: para mejor comprensión, lea las anteriores entregas sobre botnets. La primera entrega está acá, la segunda acá, y, la tercera, la puede leer acá.
Técnicas de detección de IRC botnets son utilizadas en aplicaciones como Rishi (1) y BotSniffer (2), que fueron diseñadas para detectar patrones de tráfico o comportamientos ya conocidos y catalogados como sospechosos. Como era de esperarse, así como la cantidad de botnets (que inicialmente eran solamente IRC botnets) aumentó, y junto con ellas el número de máquinas infectadas a nivel mundial, cada día fueron más fácilmente detectadas e inutilizadas, por lo que los botmasters buscaron nuevas técnicas para construir sus redes de esclavos y mantenerlas en forma exitosa durante el tiempo. De esta manera empezaron a surgir las botnets que todavía mantenían un C&C centralizado, pero que usaban el protocolo de comunicaciones http (3) en vez del IRC; una razón muy importante para este cambio radica en que el tráfico de los canales de IRC viaja a través de los puertos 6665 a 6669 (4), que pueden ser filtrados o bloqueados por los proveedores de acceso a Internet, porque no están vinculados a ningún otro servicio o a alguna tarea que se vea interrumpida en el evento en el que sean bloqueados.
Esto, frente al tráfico que viaja por el puerto 80, que es el correspondiente al HTTP, que en la mayor generalidad de los casos no puede ser bloqueado porque al hacerlo se bloquearía el acceso web a los usuarios; es decir, mientras que por IRC el tráfico puede ser bloqueado, a través de HTTP no puede serlo y así los botmasters consiguen que sus botnets sigan activas durante más tiempo. Adicionalmente, el tráfico de las botnets, viajando a través del puerto 80 correspondiente al tráfico web, puede pasar desapercibido porque es normal que los usuarios legítimos de una red naveguen en cualquier momento, generando tráfico; otra ventaja que los botmasters encuentran al construir sus botnets sobre HTTP radica en que no es posible para un usuario de una máquina infectada conocer las direcciones IP de todas las máquinas que se encuentren conectadas al C&C server en un momento determinado, cosa que sí es posible en las IRC botnets, evitando así que se conozca el tamaño de su botnet y las identidades y ubicaciones de las demás máquinas infectadas.
Sin embargo, al igual que ocurre con las IRC botnets, las botnets construidas sobre HTTP tienen un gran defecto: si el servidor web deja de funcionar (se «cae») por cualquier razón, la botnet completa se desarticulará y quedará solamente un número plural de máquinas infectadas sin conexión alguna entre sí.
Dentro de sus operaciones habituales, las HTTP botnets se conectan a los sitios web que les ha indicado su botmaster, para lo que deben resolver los nombres de dominio correspondientes (5); evadiendo la detección, los botmasters usan técnicas como domain flux o fast flux (6), que consiste en que el botmaster, usando un algoritmo matemático, genera en forma automática nombres de dominio que son registrados en forma igualmente automática, y ordena a sus bots conectarse a ellos uno tras otro, de manera que un bot puede conectarse a un dominio diferente incluso en cosa de pocos minutos. La lista de dominios es actualizada de manera periódica por el botmaster; una vez él ordena a sus bots conectarse a una nueva serie de dominios, los bots lo hacen, permaneciendo así como hosts legítimos dentro de la botnet.
Una botnet construida sobre HTTP es Torpig (7), llamada también Sinowal o Anserin; el gusano desarrollado para que fuera distribuida fue considerado por algunos como el «peor software criminal» jamás creado; investigadores encontraron que, entre otras cosas, había sido utilizada para robar información de acceso a cuentas bancarias directamente desde los computadores de más 300,000 personas y un número similar de tarjetas débito y crédito (8). Torpig fue relacionada con la banda criminal llamada Russian Business Network (9), pero no hay unanimidad respecto de si fueron ellos sus creadores.
Torpig fue estudiada por un equipo de investigadores del Departamento de Ciencias de la Computación de la Universidad de California en Santa Bárbara, quienes llegaron incluso a tomar control de la botnet durante diez días en los que pudieron estimar su tamaño real (por cuanto los bots envían un identificador que es único y propio solamente de las máquinas infectadas con este gusano y no de otros gusanos que hayan podido infectar también a las mismas máquinas), su velocidad de propagación (durante esos diez días observaron 180,000 nuevas infecciones) y tuvieron acceso a toda la información financiera que el botmaster recibe, las utilidades que puede obtener y los riesgos que la botnet implica para la seguridad y la privacidad de las víctimas (10). Torpig es distribuido como parte de Mebroot, que es un rootkit (11) que toma el control de las máquinas infectadas reemplazando el boot sector o sector de arranque, que es el primer sector físico del disco duro, en el que el BIOS busca información sobre cómo iniciar la máquina y carga el sistema operativo; puesto que Mebroot toma control de las máquinas infectadas en la forma indicada, Torpig no es detectado, puesto que se carga antes de que los antivirus y el mismo sistema operativo lo sean.
La infección se produce a través de una modalidad de ataque conocida como drive-by-download que consiste en que en sitios web legítimos, pero vulnerables, se modifica el código HTML incluyendo unas instrucciones que ordenan al navegador de Internet de la máquina infectada conectarse a un sitio web determinado y descargar código en JavaScript, ubicado en un servidor controlado por el botmaster; ese código contiene varios exploits que se ejecutan y, si logran explotar alguna vulnerabilidad en el navegador de esa máquina, inmediatamente se descarga el ejecutable que sirve de instalador de Mebroot (12).
Mebroot usa técnicas de encripción de datos para guardar en la máquina víctima los módulos maliciosos que descarga desde el servidor al que se conecta; periódicamente reporta a ese servidor el estado actual de su configuración y las comunicaciones entre el bot y el servidor son también cifradas vía HTTP. Esos módulos son «librerías» o archivos que terminan con la extensión «.dll» que inyectan códigos maliciosos dentro de componentes legítimos de Windows; Torpig logra inyectar código malicioso en los sitios web de los bancos a los que se conecta la máquina víctima, siéndole posible conocer las claves, los nombres de usuario y la información enviada y recibida por el usuario, antes y después de ser protegida mediante el cifrado de los datos (13).
El control que tiene el botmaster de su botnet presenta siempre un retraso que depende de la configuración de los bots (no es un control en tiempo real); esto, por cuanto las órdenes impartidas por él a su red de esclavos son impartidas usando el mecanismo «pull», lo que hace que los bots solamente reciban las instrucciones al conectarse cada determinado tiempo a los sitios web indicados por el botmaster (14).
En la siguiente entrega: P2P botnets.
Saludos desde California,
Carlos S. Álvarez
blogladooscuro @ gmail.com
@isitreallysafe
Notas:
(1) http://sourceforge.net/projects/rishi .
(2) http://www.networkworld.com/community/node/25105 .
(3) Hypertext Transfer Protocol, protocolo de comunicaciones sobre el que se estableció la World-Wide Web; ver Request for Comments: 2616, Internet Engineering Task Force, en: http://www.ietf.org/rfc/rfc2616.txt .
(4) Las comunicaciones entre equipos a través de las redes van desde un puerto de la máquina que origina la comunicación hasta un puerto en la máquina que la recibe; los puertos se numeran del cero al 65.535 y, por ejemplo, el tráfico web viaja por el puerto 80, el correo saliente se envía a través del puerto 25 y el entrante llega a través del 110. La Internet Assinged Numbers Authority es la entidad que asigna los números; ver: http://www.iana.org/assignments/port-numbers .
(5) DNS o Domain Name System es el sistema mediante el cual las direcciones reales de los servidores son transparentes para los usuarios humanos, quienes simplemente deben recordar las URLs; es decir, para visitar eltiempo.com un usuario no necesita saber que la dirección IP de ese sitio web es 200.41.9.39. Al usuario le basta con recordar que el URL es eltiempo.com, la máquina resuelve el DNS, es decir, traduce ese URL, lo convierte en la dirección IP correspondiente y a ella lleva al usuario.
(6) Stone-Gross, Brett; Cova, Marco; Cavallaro, Lorenzo y otros; «Your botnet is my botnet: analysis of a botnet takeover» (Tu botnet es mi botnet: análisis de la toma de una botnet). Department of Computer Science, University of California, Santa Barbara. En: http://www.cs.ucsb.edu/~seclab/projects/torpig/torpig.pdf .
(7) Ver: http://www.sophos.com/security/analyses/viruses-and-spyware/trojtorpiga.html .
(8) Ver: http://www.rsa.com/blog/blog_entry.aspx?id=1378 .
(9) Ver: http://en.wikipedia.org/wiki/Russian_Business_Network .
(10) Stone-Gross, Brett; Cova, Marco; Cavallaro, Lorenzo y otros; op. cit.
(11) Ver definición de rootkit en: http://technet.microsoft.com/es-co/sysinternals/bb897445.aspx . Ver también: http://www.rootkit.com/ .
(12) Stone-Gross, Brett; Cova, Marco; Cavallaro, Lorenzo y otros; op. cit.
(13) Baumhof, Andreas; «MBR/Mebroot/Sinowal/ Torpig is back – better than ever» (MBR/Mebroot/Sinowal/ Torpig está de vuelta – mejor que nunca); en: http://www.trustdefender.com/blog/2009/01/07/mbrmebrootsinowaltorpig-is-back-%E2%80%93-better-than-ever/ .
(14) Gu, Guofei; Zhang, Junjie y Lee Wenke; «BotSniffer: Detecting Botnet Command and Control Channels in Network Traffic» (BotSniffer: detectando canales de comando y control de botnets en el tráfico de redes). School of Computer Science, College of Computing, Georgia Institute of Technology. En: http://faculty.cs.tamu.edu/guofei/paper/Gu_NDSS08_botSniffer.pdf .
Comentarios