Un Algoritmo de Generación de Dominios (DGA) es un programa o subrutina que proporciona malware con nuevos dominios bajo demanda o sobre la marcha.
Historia
Kraken fue la primera familia de malware en usar un DGA (en 2008) que pudimos encontrar. Más tarde ese año, Conficker hizo a DGA mucho más famoso.
¿De qué sirve?
La técnica DGA se utiliza porque el malware que depende de un dominio fijo o una dirección IP se bloquea rápidamente, lo que dificulta las operaciones. Por lo tanto, en lugar de sacar una nueva versión del malware o configurarlo todo de nuevo en un nuevo servidor, el malware cambia a un nuevo dominio a intervalos regulares.
Un ejemplo de DGA en la práctica son los servidores C&C para botnets y ransomware. Si pudiéramos bloquearlos o derribarlos, cortaríamos el vínculo entre las víctimas y el actor de la amenaza. Los bots ya no podrían obtener nuevas instrucciones y las máquinas infectadas con ransomware no podrían solicitar claves de cifrado y enviar datos de usuario.
El cambio constante del dominio para el servidor C&C también se denomina a veces «Fundente de dominio» o «Fundente rápido», que en realidad es una referencia a una técnica anterior basada en el abuso del sistema de equilibrio de carga DNS.
Más detalles sobre cómo funciona
Para comprender mejor cómo funcionan estos algoritmos, veamos los requisitos que deben cumplir:
- Las rutinas tienen que generar dominios que sean predecibles para ambos lados de la cadena de comunicación.
- Las rutinas deben ser lo más impredecibles posible para los investigadores de seguridad.
- La tarifa de registro de dominios tiene que ser baja, dada la gran cantidad de dominios que se utilizarán.
- La necesidad de velocidad puede ser enorme.
- El proceso de registro debe ser anónimo o al menos imposible de rastrear.
Para lograr la previsibilidad, pero sigue siendo difícil de investigar, las rutinas DGA utilizan algunos bloques de construcción:
- Seed, el elemento base
- Un elemento que cambia con el tiempo
- Dominios de nivel superior (TLD)
Imagen cortesía de Cisco Blog
La semilla puede ser una frase o un número. Prácticamente cualquier cosa que el actor de la amenaza pueda cambiar a voluntad (por ejemplo, cuando cambia a una nueva versión), y que pueda usarse en un algoritmo. La semilla y el elemento basado en el tiempo se combinan en un algoritmo para crear el nombre de dominio y este «cuerpo» se combinará con uno de los TLD disponibles.
Tenga en cuenta que un elemento basado en el tiempo no necesita ser algo como la fecha y la hora. Puede ser otra cosa que varía con el tiempo, como por ejemplo el tema de tendencia en Twitter en un determinado país en el momento de la conexión. En realidad, se prefiere algo que sea difícil de predecir, ya que esto hace que sea más difícil para los investigadores registrar ciertos dominios con anticipación e interceptar el tráfico o realizar una adquisición.
Otro truco para deshacerse de las contramedidas es no usar todos los dominios que produce el algoritmo, sino solo algunos. Esto aumentará drásticamente el número de dominios necesarios para que los investigadores se registren si planean interceptar el tráfico.
Cuando se trata de Tld .xyz, .arriba, y .la oferta es muy popular en este momento. Esto se debe a las razones mencionadas anteriormente: bajos costos y disponibilidad rápida, porque los registradores permiten registros de dominios automatizados y anónimos.
Resumen
Los ciberdelincuentes utilizan algoritmos de generación de dominios para evitar que sus servidores sean incluidos en la lista negra o eliminados. El algoritmo produce nombres de dominio de aspecto aleatorio. La idea es que dos máquinas que usan el mismo algoritmo contacten con el mismo dominio en un momento dado, por lo que podrán intercambiar información o obtener instrucciones.
Enlaces
Para obtener más detalles técnicos, podemos recomendar: Diseccionar Algoritmos de generación de dominios
Y un ejemplo: Foco de amenaza: Dyre / Dyreza: Un Análisis para Descubrir el DGA
Pieter Arntz