Brevet FR2953957A1 — publié le 20110617

DETECTION DE NOM DE DOMAINE GENERE PAR UN RESEAU DE MACHINES MALVEILLANTES La présente invention concerne une détection de noms de domaines 5 générés par un réseau de machines malveillantes dans un réseau de télécommunications. Un réseau de machines malveillantes ou "BotNet" ("roBot Network" en anglais) dans un réseau de télécommunications désigne un ensemble d'automates 10 logiciels reliés entre eux, installé sur des machines informatiques reliées au réseau. Ce type de réseau peut être contrôlé à distance par des entités masquées, notamment à des fins criminelles, par exemple pour envoyer des courriers électroniques de type "spam" ou effectuer des attaques de type "dénis de service". Une machine malveillante est par exemple un ordinateur qui a été infecté par un 15 virus, et l'ordinateur agit pour le compte du réseau de machines malveillantes à l'insu de l'utilisateur de l'ordinateur. Une machine malveillante peut être aussi appelée une machine "zombie" et un réseau de machines malveillantes peut être assimilé à un virus distribué sur des machines fonctionnant à l'insu de leurs utilisateurs. 20 Un réseau de machines malveillantes peut utiliser des noms de domaine qui peuvent être générés pour cacher la localisation réelle des noeuds de commandes du réseau de machines malveillantes. Un nom de domaine a généralement un nom facilement mémorisable par un utilisateur afin d'être utilisé aisément, c'est-à-dire un utilisateur pourra accéder 25 par exemple à un site web à l'aide de mots-clés permettant d'identifier le nom de domaine associé au site web. Un nom de domaine généré par un réseau de machines malveillantes s'adresse directement aux ordinateurs infectés plutôt qu'aux utilisateurs, c'est-à-dire le nom de domaine n'est pas toujours compréhensible par l'utilisateur, le nom de domaine pouvant être généré 30 aléatoirement ou selon des algorithmes complexes. En raison du développement des architectures de réseau de télécommunications et des algorithmes de génération de noms de domaine, il devient de plus en plus difficile de détecter une activité de réseau de machines malveillantes, or la détection de réseau de machines malveillantes est un important problème de sécurité nécessitant de nombreux efforts de recherche. Un objectif de l'invention est de remédier aux inconvénients précédents en 5 proposant notamment un système de détection de noms de domaine générés par un réseau de machines malveillantes. Pour atteindre cet objectif, un procédé pour détecter un nom de domaine généré par un réseau de machines malveillantes dans un réseau de 10 télécommunications, comprend les étapes suivantes : capturer des réponses d'un serveur de nom de domaine à des requêtes de nom de domaine issues du réseau de télécommunications, déterminer un premier score en fonction d'informations relatives au protocole du système de nom de domaine contenues dans les réponses capturées, 15 déterminer un deuxième score en fonction d'une analyse lexicale et d'une analyse syntaxique d'un intitulé du nom de domaine contenu dans les réponses capturées, déterminer un troisième score en fonction du premier score et du deuxième score, 20 fournir une proposition de placer le nom de domaine dans une liste noire, si le troisième score excède un seuil donné. Avantageusement, l'invention permet de mettre à jour des listes noires de noms de domaine générés par des réseaux de machines malveillantes et ajoute une capacité dynamique à la détection de nom de domaine généré par un réseau 25 de machines malveillantes. Selon d'autres caractéristiques de l'invention, le premier score peut être est déterminé en fonction d'une date et d'un temps de vie relatifs à l'enregistrement du nom de domaine, et le deuxième score peut être déterminé au moyen d'au moins un dictionnaire parmi un dictionnaire de langage naturel, un dictionnaire de 30 mots-clés et un dictionnaire de noms de marque. Selon une autre caractéristique de l'invention, un utilisateur peut valider ou refuser la proposition de placer le nom de domaine dans une liste noire. Un utilisateur peut prendre la décision finale et enrichir le procédé de détection, par exemple lorsque l'utilisateur refuse la proposition de placer le nom de domaine dans une liste noire. L'invention concerne également un serveur pour détecter un nom de domaine généré par un réseau de machines malveillantes dans un réseau de télécommunications, comprenant : des moyens pour capturer des réponses d'un serveur de nom de domaine à des requêtes de nom de domaine issues du réseau de télécommunications, et des moyens pour déterminer un premier score en fonction d'informations relatives au protocole du système de nom de domaine contenues dans les réponses capturées, des moyens pour déterminer un deuxième score en fonction d'une analyse lexicale et d'une analyse syntaxique d'un intitulé du nom de domaine contenu dans 15 les réponses capturées, des moyens pour déterminer un troisième score en fonction du premier score et du deuxième score, et des moyens pour fournir une proposition de placer le nom de domaine dans une liste noire, si le troisième score excède un seuil donné. 20 L'invention se rapporte encore à un programme d'ordinateur apte à être mis en oeuvre dans un serveur, ledit programme comprenant des instructions qui, lorsque le programme est exécuté dans ledit serveur, réalisent les étapes selon le procédé de l'invention. 25 La présente invention et les avantages qu'elle procure seront mieux compris au vu de la description ci-après faite en référence aux figures annexées, dans lesquelles : - la figure 1 est un bloc-diagramme schématique d'un système de 30 communication selon une réalisation de l'invention, et - la figure 2 est un algorithme d'un procédé de détection de nom de domaine selon une réalisation de l'invention. En référence à la figure 1, un système de communication comprend au moins un serveur de nom de domaine SND et un serveur de détection SD aptes à communiquer entre eux à travers un réseau de télécommunications RT. Le réseau de télécommunications RT peut être un réseau filaire ou sans fil, ou une combinaison de réseaux filaires et de réseaux sans fil. Selon un exemple, le réseau de télécommunications RT est un réseau de paquets à haut débit de type IP ("Internet Protocol" en anglais), tel que l'internet ou un intranet. Le serveur de détection SD comprend un module de capture CAP, un module d'évaluation EVA, un module d'analyse ANA, un module de décision DEC, et une interface utilisateur IU. Dans la suite de la description, le terme module peut désigner un dispositif, un logiciel ou une combinaison de matériel informatique et de logiciel, 15 configuré pour exécuter au moins une tâche particulière. Dans une variante, le module de capture CAP, le module d'évaluation EVA, le module d'analyse ANA sont respectivement implémentés dans des serveurs externes au serveur de détection SD ou implémentés en partie dans un ou plusieurs serveurs externes au serveur de détection SD. 20 Par exemple, le serveur de détection SD est inclus dans un serveur de nom de domaine, ou dans un pare-feu, ou encore dans un système de détection d'intrusion. Le serveur de détection SD est lié à une base de données d'analyse BDA et une base de données de liste BDL qui sont intégrées dans le serveur de 25 détection SD ou incorporées chacune dans un serveur de gestion de base de données relié au serveur SD par une liaison locale ou distante. En particulier, la base de données d'analyse BDA contient des dictionnaires de langage naturel, de mots-clés et de noms de marque et la base de données de liste BDL contient des listes noires de noms de domaines. 30 Le module de capture CAP capture des réponses, et optionnellement des requêtes de noms de domaine issues du réseau de télécommunications, plus particulièrement qui sont relatives à un nom de domaine à analyser et qui sont échangées avec au moins un serveur de nom de domaine SND. Les réponses et des requêtes contiennent notamment l'intitulé d'un nom de domaine. Le module d'évaluation EVA évalue le comportement du protocole du système de nom de domaine, vis-à-vis de techniques dites "Fast Flux". Ces techniques sont utilisées pour dissimuler des activités et sites illégaux, notamment d'hameçonnage ("phishing" en anglais). Ces techniques utilisent les caractéristiques techniques du protocole du système de nom de domaine DNS ("Domain Name System" en anglais) permettant d'attribuer plusieurs adresses IP à un même nom de domaine. Plus particulièrement, le protocole du système de nom de domaine DNS est le protocole utilisé pour déterminer une adresse IP, et donc un serveur, à partir d'un nom de domaine. Afin de répartir les charges entre plusieurs serveurs, plusieurs adresses IP peuvent être attribuées à un même nom de domaine. Les attributions d'adresses IP peuvent être de courte durée afin que les serveurs changent les adresses attribuées très régulièrement. Dans le cas d'un réseau de machines malveillantes, l'adresse IP correspondant à un nom de domaine peut changer régulièrement et pointer vers des machines compromises redirigeant des requêtes vers les serveurs réels, c'est-à-dire les noeuds de commandes du réseau de machines malveillantes. Pour évaluer le comportement du protocole du système de nom de domaine, le module d'évaluation EVA peut notamment déterminer la date et la valeur "temps de vie" TTL ("Time To Live" en anglais) relative à l'enregistrement de nom de domaine, et déterminer dans quelle mesure des adresses IP ("Internet Protocol" en anglais) retournées par le serveur DNS sont locales. Le module d'évaluation EVA peut en outre déterminer le nombre de détails disponibles dans l'enregistrement du nom de domaine. Le module d'évaluation EVA détermine un premier score représentant par exemple la probabilité que le nom de domaine est un domaine "malveillant", c'est-à-dire issu d'un réseau de machines malveillantes utilisant des techniques dites "fast flux". Le module d'analyse ANA effectue une analyse lexicale, une analyse syntaxique et une analyse sémantique sur l'intitulé du nom de domaine. L'analyse lexicale identifie les caractères compris dans l'intitulé du nom de domaine, les caractères pouvant être des lettres de langues différentes, des chiffres ou encore des signes. L'analyse syntaxique détermine la structure de l'intitulé du nom de domaine, par exemple sous forme d'un ou plusieurs mots ou expressions, et vérifie si ces derniers existent ou ont un sens, par exemple à l'aide d'un dictionnaire de langage naturel, et/ou de mots-clés et/ou de noms de marque. L'analyse sémantique détermine dans quelle mesure le nom de domaine est compréhensible et mémorisable pour un utilisateur. Les analyses lexicale, syntaxique et sémantique peuvent recourir à des techniques de traitement de langage naturel NLP ("Natural Language Processing" en anglais). Le module d'analyse ANA détermine un deuxième score représentant par exemple la probabilité que l'intitulé de nom de domaine a été généré par un réseau de machines malveillantes, en fonction des analyses lexicale, syntaxique et analyse sémantique sur l'intitulé du nom de domaine. Selon un exemple, le nom de domaine est "biz4you.com". L'analyse lexicale identifie des lettres et chiffres couramment utilisés dans les noms de domaine. L'analyse syntaxique identifie l'expression "biz" à l'aide d'un dictionnaire de mots-clés et les expressions "4" et "you" à l'aide d'un dictionnaire de langage naturel. L'analyse sémantique identifie le sens de la combinaison des expressions identifiées des lettres : "biz" est la prononciation phonétique du début du mot anglais "business", "4" est utilisé pour le mot anglais "for". Le nom de domaine "biz4you.com" a donc une signification proche de "business for you" et peut être considéré comme compréhensible par un utilisateur. Par contre, un nom de domaine tel que "4bizyou.com" n'aurait pas de signification selon l'analyse sémantique, et le module d'analyse déterminerait qu'il y une forte probabilité que le nom de domaine a été généré par un réseau de machines malveillantes. Le module de décision DEC détermine un score final en fonction des premier et deuxième scores déterminés par le module d'évaluation EVA et le module d'analyse ANA. Le score final représente par exemple la probabilité que le nom de domaine est un domaine "malveillant", c'est-à-dire issu d'un réseau de machines malveillantes. Si le score final excède un seuil donné, le module de décision DEC propose de placer le nom de domaine dans une liste noire. L'interface d'utilisateur IU permet à un utilisateur de valider la proposition du module de décision DEC, c'est-à-dire placer le nom de domaine dans une liste noire. Par exemple, l'utilisateur prend cette décision à l'aide du score final, et éventuellement à l'aide du premier score et du deuxième score. Optionnellement, si l'utilisateur refuse la proposition du module de décision DEC, c'est-à-dire placer nom de domaine dans une liste noire, l'interface demande à l'utilisateur quel score parmi les premier et deuxième scores paraît incorrect à l'utilisateur. Cette correction est alors transmise aux modules d'évaluation et d'analyse pour améliorer des déterminations ultérieures de scores et affiner la détection de faux positifs. En référence à la figure 2, un procédé de détection de nom de domaine selon une réalisation de l'invention comprend des étapes El à E5 exécutées dans le système de communication. A l'étape El, le module de capture CAP capture des réponses, et optionnellement des requêtes de noms de domaine issues du réseau de télécommunications RT, les réponses étant en provenance d'un serveur de nom de domaine SND et les requêtes étant à destination du serveur de nom de domaine SND. Les réponses et les requêtes contiennent notamment l'intitulé d'un nom de domaine qui est requis par des entités du réseau de télécommunications. Le module de capture CAP transmet les requêtes et réponses capturées aux modules d'évaluation EVA et d'analyse ANA. A l'étape E2, le module d'évaluation EVA extrait des informations relatives au comportement du protocole du système de nom de domaine DNS, vis-à-vis de techniques dites "Fast Flux", depuis les réponses capturées, et optionnellement depuis les requêtes capturées. En particulier, à partir des informations extraites des réponses capturées, et optionnellement les requêtes capturées, le module d'évaluation EVA détermine la date et la valeur "temps de vie" TTL relative à l'enregistrement de nom de domaine, ainsi que le nombre de détails disponibles dans cet enregistrement, et détermine dans quelle mesure des adresses IP retournées par le serveur DNS sont locales. Le module d'évaluation EVA détermine un premier score S1 en fonction de l'analyse des informations relatives au protocole du système de nom de domaine extraites des réponses capturées, et optionnellement les requêtes capturées. Le premier score S1 représente par exemple la probabilité que le nom de domaine est un domaine "malveillant. A l'étape E3, le module d'analyse ANA effectue une analyse lexicale et une analyse syntaxique, et optionnellement une analyse sémantique, sur l'intitulé du nom de domaine. Le module d'analyse ANA effectue dans un premier temps une analyse lexicale et une analyse syntaxique sur l'intitulé du nom de domaine. En particulier, le module d'analyse ANA vérifie si l'intitulé du nom de domaine comprend des mots ou expressions qui existent ou ont un sens, par exemple à l'aide d'un dictionnaire de langage naturel, et/ou de mots-clés et/ou de noms de marque. Le module d'analyse ANA effectue dans un deuxième temps une analyse sémantique sur l'intitulé du nom de domaine, notamment si les analyses lexicale et syntaxique sont positives, c'est-à-dire l'intitulé de nom de domaine contient des mots ou expressions existant dans des dictionnaires. En effet, si l'intitulé de nom de domaine contient des mots ou expressions qui n'existent pas dans des dictionnaires, le module d'analyse peut déjà déterminer une forte probabilité que le nom de domaine a été généré par un réseau de machines malveillantes sans recourir à une analyse sémantique. Le module d'analyse ANA détermine un deuxième score S2 représentant par exemple la probabilité que l'intitulé de nom de domaine a été généré par un réseau de machines malveillantes, en fonction des analyses lexicale, syntaxique et analyse sémantique sur l'intitulé du nom de domaine. A l'étape E4, le module de décision DEC récupère les premier et deuxième scores des modules d'évaluation et d'analyse, et détermine un score final Sf en fonction du premier score S1 et du deuxième score S2. Par exemple, le module de décision DEC fait une moyenne des scores S1 et S2, éventuellement en affectant des coefficients aux scores. Le module de décision DEC compare le score final Sf à un seuil donné Th. Si le score final Sf excède le seuil donné Th, le module de décision DEC fournit une proposition de placer le nom de domaine dans une liste noire. A l'étape E5, l'utilisateur, via l'interface d'utilisateur IU, accède à la proposition fournie par le module de décision, et peut valider ou refuser la proposition de placer le nom de domaine dans une liste noire fournie par le module de décision DEC. Si la proposition est validée, le nom de domaine est inclus dans une liste noire mémorisée dans la base de données de liste BDL. L'invention décrite ici concerne un procédé et un serveur pour détecter des noms de domaine générés par un réseau de machines malveillantes. Selon une implémentation de l'invention, les étapes du procédé de l'invention sont déterminées par les instructions d'un programme d'ordinateur incorporé dans un serveur, tel que le serveur de détection SD. Le programme comporte des instructions de programme, qui lorsque ledit programme est chargé et exécuté dans le serveur, réalisent les étapes du procédé de l'invention. En conséquence, l'invention s'applique également à un programme d'ordinateur, notamment un programme d'ordinateur sur ou dans un support d'informations, adapté à mettre en oeuvre l'invention. Ce programme peut utiliser n'importe quel langage de programmation, et être sous la forme de code source, code objet, ou code intermédiaire entre code source et code objet tel que dans une forme partiellement compilée, ou dans n'importe quelle autre forme souhaitable pour implémenter le procédé selon l'invention. REVENDICATIONS1. Procédé pour détecter un nom de domaine généré par un réseau de machines malveillantes dans un réseau de télécommunications (RT), le procédé 5 comprenant les étapes suivantes : capturer (El) des réponses d'un serveur (SND) de nom de domaine à des requêtes de nom de domaine issues du réseau de télécommunications, déterminer (E2) un premier score (Si) en fonction d'informations relatives au protocole du système de nom de domaine contenues dans les réponses 10 capturées, déterminer (E3) un deuxième score (S2) en fonction d'une analyse lexicale et d'une analyse syntaxique d'un intitulé du nom de domaine contenu dans les réponses capturées, déterminer (E4) un troisième score (Sf) en fonction du premier score (Si) 15 et du deuxième score (S2), fournir (E5) une proposition de placer le nom de domaine dans une liste noire, si le troisième score (Sf) excède un seuil donné (Th). 2. Procédé conforme à la revendication 1, selon lequel des requêtes de nom 20 de domaine à destination du serveur (SND) de nom de domaine issues du réseau de télécommunications sont capturées, et le premier score (Si) est déterminé en outre en fonction d'informations relatives au protocole du système de nom de domaine contenues dans les requêtes capturées. 25 3. Procédé conforme à la revendication 1 ou 2, selon lequel le premier score (Si) est déterminé en fonction d'une date et d'un temps de vie relatifs à l'enregistrement du nom de domaine. 4. Procédé conforme à l'une des revendications 1 à 3, selon lequel le 30 deuxième score (S2) est déterminé au moyen d'au moins un dictionnaire parmi un dictionnaire de langage naturel, un dictionnaire de mots-clés et un dictionnaire de noms de marque. 5. Procédé conforme à l'une des revendications 1 à 4, selon lequel le deuxième score (S2) est déterminé en outre en fonction d'une analyse sémantique de l'intitulé du nom de domaine. 6. Procédé conforme à l'une des revendications 1 à 5, selon lequel le troisième score (Sf) est déterminé en fonction d'une moyenne du premier score (Si) et du deuxième score (S2). 7. Procédé conforme à l'une des revendications 1 à 6, selon lequel le 10 troisième score (Sf) représente une probabilité que le nom de domaine est un domaine issu d'un réseau de machines malveillantes. 8. Procédé conforme à l'une des revendications 1 à 7, selon lequel un utilisateur valide ou refuse la proposition de placer le nom de domaine dans une 15 liste noire. 9. Serveur (SD) pour détecter un nom de domaine généré par un réseau de machines malveillantes dans un réseau de télécommunications (RT), comprenant : des moyens (CAP) pour capturer des réponses d'un serveur (SND) de 20 nom de domaine à des requêtes de nom de domaine issues du réseau de télécommunications, et des moyens (EVA) pour déterminer un premier score (Si) en fonction d'informations relatives au protocole du système de nom de domaine contenues dans les réponses capturées, 25 des moyens (ANA) pour déterminer un deuxième score (S2) en fonction d'une analyse lexicale et d'une analyse syntaxique d'un intitulé du nom de domaine contenu dans les réponses capturées, des moyens (DEC) pour déterminer un troisième score (Sf) en fonction du premier score (Si) et du deuxième score (S2), et 30 des moyens (DEC) pour fournir une proposition de placer le nom de domaine dans une liste noire, si le troisième score (Sf) excède un seuil donné (Th). 10. Programme d'ordinateur apte à être mis en oeuvre dans un serveur (SD) pour détecter un nom de domaine généré par un réseau de machines malveillantesdans un réseau de télécommunications (RT), ledit programme comprenant des instructions qui, lorsque le programme est chargé et exécuté dans ledit serveur, réalisent les étapes suivantes : capturer (El) des réponses d'un serveur (SND) de nom de domaine à des requêtes de nom de domaine issues du réseau de télécommunications, déterminer (E2) un premier score (Si) en fonction d'informations relatives au protocole du système de nom de domaine contenues dans les réponses capturées, déterminer (E3) un deuxième score (S2) en fonction d'une analyse lexicale 10 et d'une analyse syntaxique d'un intitulé du nom de domaine contenu dans les réponses capturées, déterminer (E4) un troisième score (Sf) en fonction du premier score (Si) et du deuxième score (S2), fournir (E5) une proposition de placer le nom de domaine dans une liste 15 noire, si le troisième score (Sf) excède un seuil donné (Th). 20