
Detección de Dominios DGA mediante Análisis de Frecuencia de Bigramas
Cada vez se crea más malware con técnicas avanzadas de evasión de bloqueo. Una de las técnicas más comunes es el uso de Algoritmos de Generación de Dominios (DGA), que generan periódicamente un conjunto de dominios para contactar con un servidor C&C. La mayoría de estos dominios DGA generan cadenas alfanuméricas aleatorias que difieren significativamente en estructura de un dominio estándar. Al observar la frecuencia con la que un conjunto de bigramas en un dominio aparece dentro del Alexa top 1M, pudimos detectar si un dominio estaba estructurado con una cadena aleatoria o si era un dominio legítimo legible por humanos. Si un dominio está compuesto casi en su totalidad por bigramas de baja frecuencia que ocurren raramente dentro del Alexa top 1M, entonces el dominio probablemente sería una cadena aleatoria. Los bigramas de una vocal y una consonante ocurrieron con mayor frecuencia, mientras que los caracteres y números enteros ocurrieron con menor frecuencia. El script se ejecutó contra 100,000 dominios GameoverZeus y tuvo una tasa de detección del 100% y una tasa de falsos positivos contra el Alexa top 1M del 8% sin aplicar ninguna lista blanca de dominios.
Este sistema ha sido probado en Ubuntu y RaspberryPi. Actualmente tengo mi raspberrypi configurado como servidor DNS usando Bind9. El script DGA-Detection también se ejecuta en la raspberrypi y lee las solicitudes. Luego, las solicitudes se procesan para determinar si son un posible DGA o no.
git clone https://github.com/philarkwright/DGA-Detection.git
cd DGA-Detection
chmod +x install.sh
./install.sh
sudo python dga_detection.py
nohup sudo python dga-detection.py -o 2 -i <interfaz>
Al ejecutar el archivo install.sh, ten en cuenta que el protocolo git:// usa el puerto 9418, por lo que debes asegurarte de que tu cortafuegos permita conexiones salientes a este puerto.
Este proyecto todavía está muy en desarrollo.
Mientras ejecutaba el script a nivel de red en mi red doméstica, noté que si realizaba ciertas búsquedas en Google Chrome, recibía un montón de alertas que parecían ser dominios DGA. Incluso si no visitas estos sitios, que normalmente son chinos (ya que usan cadenas sin sentido para sus dominios), Google Chrome los precargará y los recuperará, provocando las alertas.
NOTA: La función de lista blanca utiliza el Alexa Top 1M.
Contáctame vía Twitter @philarkwright