lunes, 29 de diciembre de 2008

Honeypots y botnets

Ha habido un cambio de última hora, por el cual se ha adelantado la charla sobre honypots, en la que se ha presentado por un lado una herramienta (no estoy seguro de si era esta) para poner en un honeypot que permite detectar los ataques a base de reflejarlos hacia el atacante,
y otra herramienta que permite detectar y a base de libemu emular shellcodes (para añadirlos a un honeypot).

De este modo se pueden conseguir todo tipo de muestras de malware (si la red de honeypots está suficientemente distribuida.

A continuación, otras personas del mismo equipo ha hecho una presentación sobre cómo podrían tomar el control de la botnet "Storm", del que han utilizado ingeniería inversa para conocer todo el protocolo de control de la red (command and control, C&C).

Lo primero de la ingeniería inversa fue conocer la estructura de la red de bots (botnet, claro): es una red P2P, originariamente utilizaba la red Overnet de eDonkey, pero en una versión posterior pasó a ser una red separada, con las conexiones cifradas, aunque seguía estando basada en el código de eDonkey (de hecho, uno de los ponentes se quejaba de que la ingeniería inversa de la biblioteca usada, kadc era peor que la del código, y que los propios autores de la botnet no lo entendían).

La red ha tenido en su momento de máximo esplendor de medio a un millón de equipos infectados, aunque gracias a las herramientas de eliminación de malware de Microsoft distribuíadas por Windows Update, actualmente se ve reducida a aproximadamente un centenar de miles de equipos.

La red en realidad utiliza el P2P únicamente para encontrar los ordenadores de C&C, y una vez encontrados, se conecta a ellos directamente para recibir comandos, que pueden ser tanto patrones de spam como objetivos de DDoS (que han sido usados contra investigadores que intentaban averiguar algo de la red).

Los principales logros del equipo han sido
  • Descifrar la manera en la que se encuentran los nodos en la red P2P (se buscan 32 hashes con un algoritmo que ha sido decompilado, y codificando el contenido de la dirección IP y el puerto destino en el hash devuelto)
  • La codificación de los comandos desde el servidor C&C a los equipos infectados (básicamente una compresión zlib más un xor con una clave -- que se encuentra en todos los ordenadores infectados, y que también se usaba en la fase de descubrimiento)
  • Descubrir cuáles son los comandos y que hacen
  • Y dentro de esto, implementar un servidor falso C&C, incluirlo en la red para que sea usado en lugar del correcto y encontrar una manera de abusar un comando de actualización para poder descargar un programa de limpieza
A continuación para deleite del público han hecho una demostración de cómo funcionaría en una configuración local, y han mencionado que desafortunadamente todavía no tienen lista la estrategia completa para desinfectar la red, ya que necesitan un conjunto de servidores de C&C y un proceso coordinado para que la desinfección sea efectiva y se propague a toda la red. Y además es posiblemente ilegal.

Van a liberar parte del código en breve, pero no del todo, ya que es bastante peligroso... ¿Y si alguien lo utiliza para sustituir el código de storm por otro propio?

¿Cuánto tiempo le quedará a esa red? ¿Se unirá a McColo pronto?

No hay comentarios:

Publicar un comentario