DNS Episode 1: Utilisation des Domain Generated Algorithms (DGA)

Etant assez fan du protocole DNS, des possibilités qu’il offre et du peu de solutions de sécurité implémentées dans de nombreuses entreprises à travers le monde, j’ai entrepris de faire une série d’épisodes sur la sécurité informatique autour de ce protocole et ses implémentations.

Dans ce premier épisode, je vous présente très succinctement comment un pirate peut facilement abuser du protocole DNS pour, par exemple, contacter un serveur Command & Control et prendre ses ordres pour agir sur la machine infectée. C’est un scénario typiquement utilisé par certains ransomware pour établir le contact avec leur centre de contrôle.

Episode 1 : L’utilisation des Domain Generated Algorithms (DGA)

J’ai passé en revue de nombreuses analyses de différents cabinets de conseils en sécurité et d’éditeurs de solutions de sécurité informatique pour m’apercevoir que de nombreux malwares détournent l’utilisation du protocole DNS pour contacter leur serveur Command & Control. En effet, cette technique permet aux pirates d’établir une architecture résiliente pour maintenir la pérénité de l’attaque sans avoir à construire une architecture Peer2Peer complexe. Le pirate peut ainsi garder un lien entre le malware et les serveurs C&C.

Dans un prochain épisode, je parlerai également des autres scénarios que les pirates utilisent pour arriver à leur fin à travers le protocole DNS. Pour l’heure, je vais m’attacher à l’explication des DGA.

Comment abusent-ils du protocole DNS ?

Pour contacter les serveurs C&C, les malwares vont inclure des algorithmes de génération automatique de noms de domaines dans le code uploadé sur la machine infectée. Dans de nombreux cas, le code contient des adresses IP définit en dur et utilisent cet algorithme DGA en tant que méthode de backup si les adresses IP ne sont pas joignables.

Ce sont généralement de petites portions de code qui vont permettre de générer une série de domaines plus ou moins aléatoires. C’est par exemple utilisé par les ransomwares Cryptolocker et Locky.

Voici un extrait d’une liste de 100 000 domaines que nous avons générés dynamiquement dans notre lab avec seulement 30 lignes de code en perl :

  • alqwxfpsjbmepa.com
  • ahibnhfenqqbqk.net
  • yrjprpyyloupro.biz
  • ydkbornsyirkqk.ru
  • xnlpsahnwgvyif.org
  • gbdrbbnrdlhcie.co.uk
  • swerujjubgsird.info
  • fwfrclvgodilpr.com
  • rsgrvtrjmxtrpe.net
  • edxkvvfmqqqwtj.biz
  • qyykpebpolcddb.ru
  • dyakwgnbcirgtx.org
  • pubkqojeaddmtd.co.uk
  • jknsxqudwwwodl.info
  • acecakhgmwiqrv.net
  • lfffkpdbjcohpp.biz

Les domaines générés par l’algorithme ne sont généralement pas détectés comme malicieux par la plupart des Proxy Web et des Firewalls Next-Gen car leur réputation est généralement inconnue au moment de l’attaque. En effet, les domaines sont créés à la volée par le pirate et n’ont pas d’historique disponible sur leur réputation.

Si l’un de ces domaines est résolu par le malware, il a alors la possibilité de contacter son C&C en utilisant des tunnels DNS et http. Dans les deux cas, êtes-vous sure que votre Next-Generation Firewall est capable de détecter la tentative de connexion du malware ?

Comment détecter ces domaines frauduleux ?

En analysant les domaines générés ci-dessus, on peut essayer de les détecter en analysant par exemple leur longueur ou leur entropie de Shannon.

Si l’on prend l’exemple du domaine « rsgrvtrjmxtrpe.net », l’entropie de ce mot sans le « .net » est de :

H(X) = -[(0.071log20.071)+(0.071log20.071)+(0.071log20.071)+(0.071log20.071)+
(0.071log
20.071)+(0.286log20.286)+(0.071log20.071)+(0.143log20.143)+(0.071log20.071)+
(0.071log
20.071)]
H(X) = -[(-0.272)+(-0.272)+(-0.272)+(-0.272)+(-0.272)+(-0.516)+(-0.272)+(-0.401)+(-0.272)+
(-0.272)]

H(X) = -[-3.09307]
H(X) = 3.09307

Si je calcule l’entropie du mot google contenu dans le domaine « google.net » en utilisant le même algorithme, je tombe sur la valeur suivante :

H(X) = -[(0.167log20.167)+(0.333log20.333)+(0.167log20.167)+(0.333log20.333)]
H(X) = -[(-0.431)+(-0.528)+(-0.431)+(-0.528)]
H(X) = -[-1.9183]
H(X) = 1.9183

Dans le cas présent, en refaisant le test sur de nombreux échantillons, je peux en conclure que l’entropie de Shannon me permet d’identifier des domaines DGA. En effet, les domaines présentés plus haut donnent une entropie entre 3 et 4 alors que des domaines valides donnent une entropie entre 1 et 3.

L’algorithme utilisé a été développé en 15 minutes. Il n’est pas très intelligent puisqu’il génère des chaines de caractères « aléatoires » sans utiliser de règles linguistiques, ni d’autres règles plus sophistiquées. De plus, l’analyse de l’entropie à elle seule ne permet pas de garantir un résultat positif à 100%.

Dans la pratique, les pirates peuvent être amenés à définir des algorithmes beaucoup plus performants qui génèrent des domaines plus proches des domaines valides. L’analyse réalisée précédemment devient alors plus complexe et les résultats obtenus moins probants. Cela requiert de l’imagination et l’utilisation de nouvelles techniques pour détecter l’utilisation des algorithmes DGA les plus avancés.

Notre mission dans ce domaine !

En tant qu’expert en sécurité informatique, nous aidons les entreprises à se protéger contre les menaces informatiques. Plusieurs services de notre catalogue permettent de répondre à la problématique posée dans cet article :

Architecture DNS : avec l’éditeur F5 Networks, nous proposons des solutions de Firewall DNS en incorporant des services de réputation d’IP et de filtrage de domaines. Cette solution peut aisément complémenter les solutions IPS ou de filtrage Web déjà en place.

Installation d’un SIEM : En partenariat avec l’éditeur Splunk, nous mettons en place l’analyse des logs de vos serveurs DNS pour identifier la résolution de domaines potentiellement frauduleux.

Services d’analyse : Nos équipes peuvent analyser les logs DNS pour rechercher des potentielles menaces et machines infectées. Grâce aux outils développés en interne, nos ingénieurs peuvent identifier certains ransomwares et malwares rien qu’en analysant les logs des serveurs DNS de l’entreprise et en établissant un score pour chaque domaine basé notamment sur la longueur de ce dernier, son entropie de Shannon et le nombre d’occurrences dans les fichiers de logs. D’autres paramètres viennent également compléter l’analyse pour identifier les menaces.

Dans le cadre d’un de nos projets de cyber sécurité en partenariat avec l’institut de recherche ICARE et la HES-SO Valais, notre département Recherche & Développement travaille sur l’application d’algorithmes de Machine Learning et de réseaux neuronaux en supplément des méthodes de détections énoncées si dessus pour détecter les menaces les plus avancées et complexes abusant du protocole DNS.

Laisser un commentaire