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.
Amazing
RépondreSupprimer