
Détection de domaines DGA par analyse de fréquence des bigrammes
De plus en plus de logiciels malveillants sont créés avec des techniques avancées de contournement de blocage. L'une des techniques les plus courantes est l'utilisation d'algorithmes de génération de domaines (Domain Generation Algorithms) qui génèrent périodiquement un ensemble de domaines pour contacter un serveur C&C. La majorité de ces domaines DGA génèrent des chaînes alphanumériques aléatoires qui diffèrent considérablement en structure d'un domaine standard. En examinant la fréquence à laquelle un ensemble de bigrammes d'un domaine apparaît dans le top 1M d'Alexa, nous avons pu détecter si un domaine était structuré avec une chaîne aléatoire ou s'il s'agissait d'un domaine légitime lisible par un humain. Si un domaine est composé presque entièrement de bigrammes de faible fréquence, apparaissant rarement dans le top 1M d'Alexa, alors le domaine serait très probablement une chaîne aléatoire. Les bigrammes d'une voyelle et d'une consonne sont les plus fréquents, tandis que les caractères et les entiers sont les moins fréquents. Le script a été exécuté sur 100 000 domaines GameoverZeus et a obtenu un taux de détection de 100 % et un taux de faux positifs sur le top 1M d'Alexa de 8 % sans aucune liste blanche de domaines appliquée.
Ce système a été testé sur Ubuntu et RaspberryPi. Actuellement, j'ai mon raspberrypi configuré comme serveur DNS avec Bind9. Le script DGA-Detection est également exécuté sur le raspberrypi et lit les requêtes. Les requêtes sont ensuite traitées pour déterminer si elles sont potentiellement DGA ou non.
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 <interface>
Lors de l'exécution du fichier install.sh, veuillez noter que le protocole git:// utilise le port 9418, vous devez donc vous assurer que votre pare-feu autorise les connexions sortantes vers ce port.
Ce projet est encore en développement.
En exécutant le script au niveau réseau sur mon réseau domestique, j'ai remarqué que si je faisais certaines recherches Google sur Google Chrome, je recevais un tas d'alertes qui semblaient être des domaines DGA. Même si vous ne visitez pas ces sites, qui sont normalement chinois (car ils utilisent des chaînes de charabia pour leurs domaines), Google Chrome les préchargera et les récupérera, provoquant les alertes.
REMARQUE : La fonctionnalité de liste blanche utilise le top 1M d'Alexa.
Contactez-moi sur Twitter @philarkwright