Le monde de la cybersécurité a évolué. Aujourd’hui, les cybercriminels n’hésitent pas à user des stratagèmes les plus complexes pour atteindre leurs cibles. Afin de maintenir leur présence dans le réseau de la victime via un serveur de commande et de contrôle (C&C), la plupart d’entre eux ont recours au DNS dynamique (DDNS). Cette stratégie leur permet de lancer des transferts ou des mises à jour de fichiers, généralement à des fins malveillantes. Les algorithmes de génération de noms de domaine, ou DGA (Domain Generation Algorithm), constituent en l’occurrence l’une des techniques les plus difficiles à détecter.
Il existe toutefois des méthodes visant à repérer ce type d’attaque DNS notoirement connu. Pour bien les comprendre, il est important de savoir en quoi consiste l’usage frauduleux de noms de domaine.
Contrôle de l’hôte
L’enregistrement de noms de domaine à des fins malveillantes (phishing, malwares, botnets, etc.) relève de la fraude et est jugé illégal dans le monde entier. Cela ne dissuade pourtant pas les cybercriminels, qui continueront à profiter de la souplesse des noms de domaine pour leur enrichissement personnel. Une pratique connue consiste à déplacer l’adresse IP des serveurs de commande et de contrôle (C&C) des malwares au moyen de différentes techniques afin d’échapper à la détection. Pour garder le contrôle de l’hôte compromis, les cybercriminels déploient une porte dérobée, ou backdoor, de même qu’un canal C&C de manière à rester en communication constante avec l’appareil cible. Autrement dit, l’appareil se transforme en bot contrôlé par le botmaster, c’est‐ à‐dire le cybercriminel.
Pour établir une communication C&C, les cybercriminels utilisent une méthode classique reposant sur une topologie centralisée dans laquelle l’adresse IP ou le nom de domaine de la victime est codé en dur, en vue de disposer d’un accès permanent à la machine de cette dernière. Bien qu’efficace, cette méthode est détectable. Un logiciel d’analyse de malware (sandbox) peut permettre identifier l’adresse IP codée en dur à bloquer sur le réseau puis à récupérer quelques IOC (indicateurs de compromission) utiles.
Mise au point d’une nouvelle tactique
Bien décidés à ne pas capituler, les cybercriminels se sont tournés vers des tactiques plus résilientes et moins repérables. C’est ainsi qu’une topologie décentralisée, composée de botnets P2P (pair à pair), a été développée afin de surmonter les limites inhérentes au réseau C&C. Les appareils compromis n’avaient plus besoin de se connecter au centre de commande, ce qui compliquait la détection de l’adresse IP de l’hôte. Le problème, avec la topologie décentralisée, est qu’elle est plus difficile à créer, à implémenter et à maintenir en conditions opérationnelles.
Malgré tout, séduits par la robustesse des infrastructures P2P, les cybercriminels ont alors décidé de lui associer la simplicité de l’infrastructure C&C. Cette initiative a donné naissance à de nouvelles stratégies, la principale étant la mise en œuvre d’algorithmes de génération de noms de domaine (DGA). Cette technique implique la création d’un grand nombre de noms de domaine auprès de différents fournisseurs de services, dans différents pays. Ces noms de domaine changent souvent. L’objectif est d’échapper à la détection des équipes de sécurité qui, autrement, s’empresseraient de déployer un mécanisme de défense approprié. L’idée est qu’en cas de suppression d’un ou de plusieurs domaines, l’appareil compromis se verra attribuer un nouveau nom de domaine, lui aussi sous le contrôle du botmaster via le serveur C&C. Le premier cas connu d’utilisation de DGA à des fins malveillantes remonterait au malware Sality, observé en 2006. Ce n’est toutefois qu’en 2008, avec les attaques Kraken, Conficker et Szribi, que le phénomène a gagné en notoriété.
Détection
De nombreuses stratégies ont été proposées pour détecter les noms de domaine compromis au sein du trafic DNS. Une analyse approfondie de logs de trafic DNS a fait apparaître des caractéristiques très différentes entre des noms de domaine légitimes et ceux produits par les hôtes infectés par un DGA. Selon les chercheurs, la taxonomie des noms de domaine générés par des algorithmes se compose de mots imprononçables et dépourvus de sens, contenant parfois des chiffres.
Les techniques de détection des noms de domaine DGA tirent largement parti du renseignement sur les menaces (threat intelligence) et de l’apprentissage automatique (machine learning), lesquels se révèlent très utiles pour prédire les résultats, schémas et événements susceptibles d’alerter les équipes de sécurité lors de l’analyse des logs de trafic. Les équipes de sécurité ont également la possibilité d’appliquer une technique d’analyse de fréquence capable de décortiquer la répartition des caractères dans les noms de domaine afin de décrypter un texte « secret » ou des algorithmes de chiffrement. Cette méthode de détection est d’autant plus efficace que les noms de domaine ont à l’origine été conçus pour prendre uniquement en charge l’alphabet ASCII (American Standard Code for Information Interchange). En ASCII, chaque caractère anglais est associé à un chiffre compris entre 0 et 127. De cette façon, les caractères et lettres qui composent les noms de domaine générés par un algorithme deviennent intelligibles une fois traduits. Étant donné que certaines lettres sont plus fréquentes que d’autres dans la langue anglaise, il est possible d’analyser la répartition des caractères afin de distinguer les noms de domaine légitimes des noms de domaine DGA. Cela fait de l’analyse de la fréquence un bon moyen de détecter les activités DGA.
La détection des noms de domaine DGA est sans conteste un exercice difficile. C’est ce qui explique le succès des algorithmes DGA auprès des cybercriminels, et principalement des développeurs de malwares. Le passage au crible de logs interminables de trafic est une opération complexe, en particulier si l’on emploie des outils de collecte et de corrélation de logs inadaptés. Le recours à une solution de détection basée sur l’apprentissage automatique et l’analyse de fréquence des caractères dans les noms de domaine constitue un atout pour les entreprises et les équipes de sécurité, leur permettant de déterminer la validité d’un nom de domaine et de protéger toute l’infrastructure réseau.
_________
Enoch Agyepong est Ingénieur cybersécurité Senior, Cyber Opérations, Airbus CyberSecurity