Algoritmo de Generación de Dominios

Los que nos dedicamos a la seguridad, y los que además tenemos el sombrero blanco, para proteger lo mejor que podemos las redes, sistemas y en definitiva los datos que es donde se encuentra en la mayoría de las veces lo realmente valioso, debemos saber primero cuáles son las técnicas que utilizan los “malos” para aplicar medidas que mitiguen la amenaza de que un atacante robe información o se haga con el control de nuestros sistemas. Es decir, como he dicho siempre, primero hay que saber cómo funcionan y trabajan los malos para saber defendernos.

Pensemos … los atacantes siempre están buscando formas de evadir sistemas de seguridad como listas negras, listas de reputación de IPs y dominios, filtros web, sistemas de prevención de intrusos, etc. ¿se puede eludir todas estas técnicas de detección y mitigación de intrusos? Pues analizando una de las últimas alarmas de la sonda Ariolo llegué al concepto DGA, que desconocía, y parece ser que ayuda bastante a los atacantes a evadir sistemas de seguridad perimetral.

 
DGA o Domain Generation Algorithm son algoritmos que utilizan los malwares para generar aleatoria y dinámicamente dominios donde se alojarán los servidores de C&C. Esta técnica junto con Domain Fluxing permite a un troyano generar una lista de por ejemplo 5000 dominios donde puede estar alojado el servidor de C&C y a los cuales intentará conectarse, de tal manera que el atacante lo único que tiene que hacer es registrar uno de esos dominios generados aleatoriamente, realizar las operaciones pertinentes, y volver a des-registrar el dominio. Como para cada operación que quiera realizar el atacante sobre la botnet puede utilizar un dominio diferente, y por tanto una IP diferente, los sistemas de detección basados en listas negras, listas de reputación y filtros web pueden ser evadidos sin problemas, ya que aunque hoy se catalogue como de baja reputación mañana el servidor de C&C tendrá otro dominio y otra IP, y por tanto se permitirá el acceso. Algunos de los malwares que utilizan esta técnica son el Conficker, Cryptolocker, Zeus, Murofet, BankPatch, Bonnana y Bobax.

La implementación de este tipo de evasión la podemos dividir en las siguientes cuatro fases:

 
  • En primer lugar, el atacante genera una semilla, que será la utilizada por los troyanos para generar los dominios aleatorios. Por ejemplo puede ser la fecha del sistema.
  • En segundo lugar, se incrusta el algoritmo DGA en el troyano para que utilizando la semilla genere aleatoriamente por ejemplo 1000 dominios todos los días.
  • En tercer lugar, el equipo infectado intentará conectarse a cada uno de los dominios, donde tan solo uno será el válido y que habrá sido registrado previamente por el atacante, con total seguridad utilizando una tarjeta robada y datos personales falsos.
  • Por último y en cuarto lugar, el atacante tendrá control sobre la botnet para dar nuevas ordenes, obtener información o desplegar actualizaciones del malware.

Una vez conocido cómo actúan los malos, ¿qué podemos hacer para que las máquinas infectadas no se comuniquen con los servidores de C&C? Por nuestra parte, mientras que los departamentos de análisis de malware realizan ingeniería inversa para conocer las semillas de cada uno de los troyanos que utilizan esta técnica y así tener la lista de dominios afectados, nosotros deberíamos realizar inspección de todo el tráfico, incluido SSL rompiendo el túnel en el perímetro de la red, para detectar reverse shell y comportamientos anómalos en las máquinas.

Espero que la entrada de hoy os haya sido interesante amigos y recuerda … cualquier comentario es bienvenido.

Commentaires

Enregistrer un commentaire