Brevet FR3101977A1 — publié le 20210416

L’invention concerne un procédé et un dispositif de détection d’un algorithme de génération de domaine DGA dans un réseau de communication informatique (106) comprenant au moins un serveur de résolution de requêtes DNS (104) émanant d’au moins un terminal client (102). Le réseau de communication informatique (106) comprend en outre un module de détection (108) couplé au serveur de résolution (104) et configuré pour analyser les requêtes DNS selon les étapes suivantes : - pour chaque requête DNS , associer le nom de domaine demandé et l’identité du terminal client demandeur pour former un tuple ; - combiner en partitions homogènes les tuples selon la technique de détection de communautés de tuples ; et - en déduire pour chaque partition homogène l’ensemble des terminaux clients exploitant un même DGA. Système et procédé de détection d’un algorithme de génération de domaine DGA DOMAINE DE L’INVENTION La présente invention concerne la détection d’un algorithme de génération de domaine, appelé encore DGA pour « Domain Generation Algorithm ». Elle trouve une application générale dans la détection de logiciel malveillant (malware) exploitant un DGA. CONTEXTE DE L’INVENTION De manière générale, un DGA est une technique permettant de générer en grande quantité des noms de domaines Internet. Les noms de domaines ainsi générés par DGA ne sont pas, pour la grande majorité d’entre eux enregistrés dans les systèmes de noms de domaine (appelés encore DNS pour Domain Name System), c’est-à-dire que les requêtes de résolution DNS aboutissent à NXDOMAIN (non existing domain) comme code de retour négatif à une requête DNS. La technique DGA est généralement utilisée par des logiciels malveillants insidieusement installés sur des terminaux, périphériques ou objets connectés tels que téléphones, ordinateurs, tablettes, caméras, systèmes d’alarme, … Les logiciels malveillants exploitants les DGA peuvent entre autres être de types : adware, spyware, virus, worm, trojan, keylogger, rootkit, phishing, spear phishing, bots, botnets, ransomware. Les logiciels malveillants sont le plus souvent contrôlés et commandés par un serveur complice distant qu’ils localisent par la résolution d’un nom de domaine via le protocole DNS. Ce serveur est appelé C&C pour « server Command & Control » dans le vocabulaire de la cybersécurité. Pour que le serveur complice ne puisse pas être découvert, le logiciel malveillant change régulièrement de nom choisi depuis une liste générée de manière déterministe. Les noms de cette liste sont générés par un algorithme DGA utilisé conjointement par le serveur C&C et le logiciel malveillant. Des logiciels malveillants peuvent se diffuser en se multipliant et se distribuant dans un réseau dans le but de mener une cyberattaque massive distribuée ou pour se cacher dans un grand flux de requêtes. On connaît déjà des systèmes de détection de logiciels malveillants. Généralement ils sont basés sur l’analyse du nom de domaine généré par DGA. Les techniques d’analyses sont généralement lexicales, fréquence de caractères, séquençage de caractères ou tout autre calcul d’entropie. Par exemple, la clusterisation par analyse lexicale est décrite dans la publication [CODDULM] Chunyu Han; Yongzheng Zhang. CODDULM: An Approach for Detecting C&C Domains of DGA on Passive DNS Traffic. 2017 6th International Conference on Computer Science and Network Technology. 2017. .Aujourd’hui, de tels systèmes de détection connus ne sont plus totalement satisfaisants puisqu’ils génèrent de nombreux faux positifs en raison des noms de domaines génériques utilisés par le cloud, par exemples entre autres, pour les machines virtuelles ou les micro services. Ou encore, ces systèmes de détection sont devenus inefficaces car les concepteurs de DGA de dernières générations ont fait évoluer leurs algorithmes pour trouver des parades techniques en imitant des noms communs de l’internet. Certains d’entre eux se basent sur des dictionnaires de mots naturels comme entre autres : suppobox, matsnu, gozi, nymaim2, ou pizd. La présente invention améliore la situation. Elle porte sur un procédé de détection d’algorithme de génération de domaine DGA dans un réseau de communication informatique comprenant au moins un serveur de résolution de requêtes DNS émanant d’au moins un terminal client. Procédé de détection d’un algorithme de génération de domaine DGA dans un réseau de communication informatique (106) comprenant au moins un serveur de résolution de requêtes DNS (104) émanant d’au moins un terminal client (102), caractérisé en ce que le réseau de communication informatique (106) comprend en outre un module de détection (108) couplé au serveur de résolution (104) et configuré pour analyser les requêtes DNS selon les étapes suivantes : - pour chaque requête DNS, associer le nom de domaine demandé et l’identité du terminal client demandeur pour former un tuple ; - combiner en partitions homogènes les tuples selon la technique de détection de communautés ; et - en déduire pour chaque partition homogène l’ensemble des terminaux clients exploitant un même DGA. 2. Procédé selon la revendication 1, caractérisé en ce que la technique de détection de communautés est réalisée à partir d’un graphe biparti comprenant: -une pluralité de nœuds de type terminal client (310); -une pluralité de nœuds de type domaine (340); -une pluralité d’arêtes (320) représentant chacune une requête DNS d’un nœud de terminal client (311) vers un nœud de domaine (344) ; un nœud de domaine (344) pouvant être connecté à plusieurs nœuds de terminal client (311) et un nœud de terminal client (311) pouvant être connecté à plusieurs nœuds de domaine (344), et -la recherche de communautés de tuples dans ledit graphe biparti étant propre à générer des partitions distinctes (410, 430), elles-mêmes réparties en graphes bipartis incluant des tuples représentant un ensemble cohérent de terminaux clients faisant des requêtes DNS sur un ensemble de domaines. Procédé selon la revendication 2, caractérisé en ce qu’il comprend en outre une mesure de la qualité de la clusterisation selon un calcul de la modularité des communautés de tuples ainsi détectées. Procédé selon la revendication 1, caractérisé en ce qu'il comprend en outre une étape de filtrage par statistique descriptive. Procédé selon la revendication 4, caractérisé en ce que la statistique descriptive est une fonction de covariance, écart type ou de calcul de distance euclidienne. Procédé selon la revendication 1, caractérisé en ce qu’il comprend en outre une recherche de chaînages de clusters (712) dans le temps (711, 713, 714) selon au moins une technique appartenant au groupe formé par apprentissage automatique non supervisé, apprentissage automatique supervisé, détection de communauté. Système de détection d’un algorithme de génération de domaine DGA, dans un réseau de communication informatique (106) comprenant au moins un serveur de résolution de requêtes DNS (104) émanant d’au moins un terminal client (102), caractérisé en ce que le réseau de communication informatique (106) comprend en outre un module de détection (108) couplé au serveur de résolution (104) et comprenant des moyens de traitement de données configurés, pour chaque requête DNS, à associer le nom de domaine demandé et l’identité du terminal client demandeur pour former un tuple; à combiner en partitions homogènes les tuples ainsi combinés selon la technique de détection de communautés; et à en déduire pour chaque partition homogène l’ensemble des terminaux clients exploitant un même DGA. Système selon la revendication 7, caractérisé en ce que la détection de communautés comprend un graphe biparti comprenant : -une pluralité de nœuds de type terminal client (310), une pluralité de nœuds de type domaines (340); -une pluralité d’arêtes (320) représentant chacune une requête DNS d’un nœud de terminal client (311) vers un nœud de domaine (344) ; un nœud de domaine (344) pouvant être connecté à plusieurs nœuds de terminal client (311) et un nœud de terminal client (311) pouvant être connecté à plusieurs nœuds de domaine (344), et -la recherche de communautés de tuples étant propre à générer des partitions distinctes (410, 430), elles-mêmes réparties en graphes bipartis incluant des tuples représentant un ensemble cohérent de terminaux clients faisant des requêtes DNS sur un ensemble de domaines. Système selon la revendication 8, caractérisé en ce que les moyens de traitement comprennent en outre des moyens de mesure propre à mesurer la qualité de la clusterisation selon un calcul de la modularité des communautés de tuples ainsi détectées. Programme d’ordinateur comprenant des instructions de code de programme pour l’exécution des étapes du procédé selon l’une des revendications 1 à 6 lorsque ledit programme est exécuté sur le système de détection selon l’une des revendications 7 à 9.