FR3101978A1 - Système et procédé de détection d’un algorithme de génération de domaine DGA - Google Patents
Système et procédé de détection d’un algorithme de génération de domaine DGA Download PDFInfo
- Publication number
- FR3101978A1 FR3101978A1 FR1911252A FR1911252A FR3101978A1 FR 3101978 A1 FR3101978 A1 FR 3101978A1 FR 1911252 A FR1911252 A FR 1911252A FR 1911252 A FR1911252 A FR 1911252A FR 3101978 A1 FR3101978 A1 FR 3101978A1
- Authority
- FR
- France
- Prior art keywords
- dns
- tuples
- dga
- aggregation
- tuple
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000004422 calculation algorithm Methods 0.000 title claims abstract description 19
- 230000002776 aggregation Effects 0.000 claims abstract description 25
- 238000004220 aggregation Methods 0.000 claims abstract description 25
- 238000005192 partition Methods 0.000 claims abstract description 21
- 238000001514 detection method Methods 0.000 claims abstract description 20
- 238000004891 communication Methods 0.000 claims abstract description 12
- 239000011159 matrix material Substances 0.000 claims description 9
- 230000008521 reorganization Effects 0.000 claims description 9
- 238000010801 machine learning Methods 0.000 claims description 6
- 230000008520 organization Effects 0.000 claims description 4
- 238000012545 processing Methods 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 3
- 238000003012 network analysis Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 claims description 3
- 239000000284 extract Substances 0.000 claims description 2
- 230000015654 memory Effects 0.000 description 13
- 238000004458 analytical method Methods 0.000 description 8
- 230000006399 behavior Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 238000000638 solvent extraction Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 241000700605 Viruses Species 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- ZXQYGBMAQZUVMI-GCMPRSNUSA-N gamma-cyhalothrin Chemical compound CC1(C)[C@@H](\C=C(/Cl)C(F)(F)F)[C@H]1C(=O)O[C@H](C#N)C1=CC=CC(OC=2C=CC=CC=2)=C1 ZXQYGBMAQZUVMI-GCMPRSNUSA-N 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1425—Traffic logging, e.g. anomaly detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/231—Hierarchical techniques, i.e. dividing or merging pattern sets so as to obtain a dendrogram
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
- G06N5/022—Knowledge engineering; Knowledge acquisition
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0236—Filtering by address, protocol, port number or service, e.g. IP-address or URL
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/145—Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2463/00—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
- H04L2463/144—Detection or countermeasures against botnets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Virology (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Medical Informatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Debugging And Monitoring (AREA)
Abstract
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 congruents selon au moins une technique d’agrégation choisie ; et
- en déduire pour chaque partition homogène l’ensemble des terminaux clients exploitant un même DGA.
Figure 1
Description
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
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.
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, mynaim2, 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.
Selon une définition générale de l’invention, le réseau de communication informatique comprend en outre un module de détection couplé au serveur de résolution de requêtes DNS et configuré pour analyser les requêtes DNS selon les étapes suivantes :
- pour chaque requête DNS collecté par le serveur de résolution, associer le nom de domaine demandé et l’identité du terminal client demandeur pour former un tuple unique;
- combiner en partitions homogènes les tuples congruents selon au moins une technique d’agrégation choisie ; et
- en déduire, pour chaque partition homogène ainsi combinée, l’ensemble des terminaux clients exploitant un même DGA.
- pour chaque requête DNS collecté par le serveur de résolution, associer le nom de domaine demandé et l’identité du terminal client demandeur pour former un tuple unique;
- combiner en partitions homogènes les tuples congruents selon au moins une technique d’agrégation choisie ; et
- en déduire, pour chaque partition homogène ainsi combinée, l’ensemble des terminaux clients exploitant un même DGA.
En pratique, l’analyse est basée sur le comportement des terminaux clients qui utilisent le DGA en comparant lesdits comportements entre eux. L’objectif de la détection est de déceler des similitudes de comportement des terminaux clients en général et plus particulièrement l’ensemble des domaines communs à un DGA requetés par un ensemble de terminaux clients infectés par un logiciel malveillant exploitant ledit DGA.
Le Demandeur a observé que seules les requêtes DNS vers des noms de domaines inconnus sont ici d’intérêt pour la détection du logiciel malveillant.
De façon surprenante, le Demandeur a aussi observé que les terminaux clients infectés d’un même logiciel malveillant font un ensemble de requêtes DNS communes. C’est-à-dire que tous les terminaux clients d’un ensemble limité de terminaux clients ont requetés tous les noms de domaines d’un ensemble limité de domaines. Ainsi la presque totalité des terminaux clients d’un ensemble qui requêteront la presque totalité des domaines d’un ensemble donne ici un niveau de similitude de comportement des terminaux clients DNS élevé.
En pratique, les techniques d’agrégation suivantes sont utilisées indépendamment ou successivement pour agréger/combiner les tuples : les statistiques descriptives, les algorithmes d’organisation de graphes basés sur de l’analyse de complémentarité, les techniques de réorganisation de matrices pour en révéler des régularités de séries, et les apprentissages (Learning) non supervisés pour identifier des règles d’associations ou de clustering.
Selon un premier mode de réalisation non limitatif, l’agrégation par statistique descriptive permet ici d’ordonner les tuples suivant des coefficients de corrélations. Un filtrage par seuil élimine ensuite les tuples dont le comportement n’est pas significatif d’un DGA.
Selon un deuxième mode de réalisation non limitatif, la méthode d’agrégation des tuples est basée sur de l'analyse de réseau de nœuds ou encore appelée spatialisation de données. Les domaines de chaque tuple sont associés entre eux en calculant leur pondération de similitudes basée sur le nombre liaisons de clients DNS communs qu’ils partagent deux à deux.
(X) et (Y) ensembles de clients respectifs à deux domaines requetés, (P) pondération
Le procédé prévoit ensuite de relier entre eux les domaines comme des nœuds par des arêtes pondérées. Chaque nœud ayant un ou plusieurs liens pondérés. Ces réseaux étants des graphes, leurs caractéristiques topologiques sont non triviales.
L’évaluation de similitude de clients entre plus de deux domaines peut être entre autres approximée par différentes méthodes telle que la méthode de calcul de Barnes-Hut. Cette méthode est utilisée en divisant de manière récursive les domaines DNS en partitions (clusters) en les stockant dans un quadri-arbre (quad-tree). Chaque noeud du quad-tree a 4 enfants (dont certains peuvent être vides). Chaque nœud représente une région de l'espace à deux dimensions. L'idée est de regrouper entre eux les domaines ayant une pondération de similitude de clients forte. Si le groupe est suffisamment éloigné, alors sa pondération de complémentarité globale est approximée en utilisant une nouvelle pondération d’ensemble de la partition pour continuer son analyse itérative.
La mesure de la qualité de partitionnement des nœuds du graphe se calcule avec la formule de modularité.
(m) nombre d'arêtes du réseau, (Aij) valeur de la matrice d'adjacence entre les nœuds i et j, (ki) somme des poids des arêtes adjacentes à i, (δ) delta de Kronecke.
La méthode de Louvain est aussi utilisée ici pour optimiser la modularité avec un calcul différent. Sans s’y limiter, d’autres méthodes de calculs de modularité peuvent toutefois être utilisées comme : Clauset-Newman-Moore, Pons-Lapaty ou encore Wakita-Tsurumi.
Selon un troisième mode de réalisation non limitatif, la méthode d’agrégation est de type par réorganisation de matrices.
Dans cette méthode, les tuples sont modélisés sous la forme d’une matrice domaines DNS et clients DNS respectivement en lignes et colonnes. Sans modifier les associations, les colonnes et les lignes sont permutées afin de mettre en évidence des motifs masqués. Les méthodes utilisées ici sont le tri 2D, le tri PQR (Celmar Guimarães da Silva - 2014) ou la réorganisation de Sugiyama
Ces méthodes sont utilisées sur des tuples déjà identifiés comme DGA potentiels car elles sont très sensibles aux bruits et en conséquence devenir inefficaces. Elles vont par contre permettre de dénombrer des DGA différents dans une agrégation globale par exemple successive à une analyse de complémentarité.
Selon un quatrième mode de réalisation non limitatif, la méthode d’agrégation est par règles d’association (itemsets).
Cette méthode permet d’extraire les règles d’associations de tuples les plus fréquentes. Un ensemble de clients font des requêtes de noms de domaines. Pour chaque nom de domaine, une règle d’association des clients est construite. La fréquence de répétitions d’un même motif d’une règle d’association ou d’un de ses sous ensemble donne ici un facteur de similitude fort pour partitionner des tuples.
De nombreux algorithmes de génération de règles d’association existent. Par exemple et de manière non limitative, les algorithmes d'extraction d’association fréquentes sont utilisées comme Apriori, Eclat et FP-Growth.
Une fois les tuples agrégés, le procédé prévoit de les découper en partitions homogènes à l’aide de systèmes d’apprentissages automatiques (Machine Learning) non supervisés de clustering pour classifier les tuples en DGA distincts.
Il est à noter qu’un DGA continue, dans le temps, à générer beaucoup de domaines. Donc, dans un ensemble de domaines identifiés, beaucoup de nouveaux domaines vont remplacer les précédents. Dans un ensemble, les noms de domaines sont volatiles et leur nombre peut varier dans le temps. On peut considérer ici cet ensemble comme un flux quand il est projeté dans le temps. L’association entre l’ensemble des clients et l’ensemble des noms de domaines reste elle avantageusement stable.
Il faut une quantité minimum de tuples pour définir une partition et donc en déduire un DGA. Une fois un cluster défini, en remontant avant sa période de détection, les tuples qui le constituent permettent par leur domaine, ou la fréquence de requêtes de leur client d’en déduire d’autres nouveaux tuples similaires non classifiés.
Il est aussi à noter qu’un logiciel malveillant peut muter, c’est-à-dire qu’il peut télécharger, remplacer son propre code en cours d'exécution et ainsi changer son DGA. En suivant l’ensemble des clients commun requêtant un flux de domaines communs, le procédé conforme à l’invention n’est pas sensible au changement de DGA et peut avantageusement continuer à suivre l’évolution du groupe de clients DNS.
La présente invention a également pour objet un système de détection d’un 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.
Selon un aspect de l’invention, le réseau de communication informatique comprend en outre un module de détection couplé au serveur de résolution 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 congruents ainsi combinés selon au moins une technique d’agrégation choisie ; et à en déduire pour chaque partition homogène l’ensemble des terminaux clients exploitant un même DGA.
La présente invention a encore pour objet un programme d’ordinateur comprenant des instructions qui conduisent le système de détection de DGA ci-avant, à exécuter les étapes du procédé de détection de DGA, visé ci-avant.
D’autres avantages et caractéristiques de l’invention apparaitront à l’examen de la description et des dessins dans lesquels :
DESCRIPTION DETAILLEE DES FIGURES
La figure 1 illustre un exemple d’environnement de réseau informatique 100. L'environnement réseau informatique 100 peut être soit un environnement distribué public, soit un environnement réseau fermé privé. L'environnement de réseau informatique 100 peut inclure différents terminaux clients ou dispositifs informatiques 102-1, 102-2, ..., 102-N couplés de manière à communiquer avec un serveur de résolution de requêtes de système de noms de domaine DNS 104 via un réseau de communication informatique 106.
A titre d’exemple, le terminal client 102 peut être un dispositif informatique de serveur d’applications 102-4, d'un dispositif mobile 102-3 (tablette, smartphone, …), d’un objet connecté 102-1, et/ou d'un ordinateur personnel 102-2 à travers lequel un utilisateur peut accéder à une application ou un service informatique en utilisant un nom d’application. Le terminal client 102 est distingué par un identifiant unique qui peut être soit son adresse IP, son adresse physique de réseau MAC, un numéro de mobile IMSI (GSM, UMS, ou LTE), un numéro d’inventaire arbitraire ou tout autre identifiant permettant d’identifier un client DNS. Ce numéro peut être transporté dans l'entête du protocole DNS ou dans l’extension du protocole EDNS. Dans une implémentation, le serveur de résolution DNS 104 peut être un serveur de noms de domaine pour analyser les demandes de nom de domaine et identifier un domaine de premier niveau (TLD) et un domaine de second niveau (SLD) à partir de la demande de nom de domaine et pour traduire la demande de nom de domaine en un protocole Internet correspondant. Le serveur DNS 104 peut également être un serveur Web fournissant un accès au contenu numérique aux dispositifs informatiques 102, un serveur DNS récursif, un serveur DNS de transfert et un serveur DNS de mise en cache.
Le réseau 106 peut être un réseau sans fil ou câblé, ou une combinaison de ceux-ci. Le réseau 106 peut être un ensemble de réseaux individuels, interconnectés les uns avec les autres et fonctionnant comme un seul grand réseau (par exemple, Internet ou un intranet). Des exemples de tels réseaux individuels incluent, sans toutefois s'y limiter, le réseau de téléphonie mobile, le réseau local, le réseau métropolitain le réseau étendu, le réseau satellite. En fonction de la technologie, le réseau 106 comprend diverses entités de réseau, telles que des émetteurs-récepteurs, des passerelles, des pares-feux, et des routeurs ; cependant, ces détails ont été omis pour faciliter la compréhension.
L'environnement de réseau informatique 100 est associé à un serveur de résolution de requêtes DNS 104 qui peut recevoir des requêtes DNS liées provenant des terminaux clients 102 via la liaison 107 et peut fournir une réponse sous la forme d'une adresse IP de serveurs hébergeant l’application ou autre service informatique. Les demandes peuvent être générées lorsqu'un utilisateur peut avoir l'intention d'accéder à une application via le terminal client 102 et d'entrer un nom d’application ou par exemple une URL (Uniform Resource Locator) dans la barre d'adresse d'un explorateur Web. Le serveur DNS 104 peut extraire l'adresse IP du terminal client 102 à partir de la demande reçue, puis utiliser l'adresse IP pour retourner la réponse au terminal client 102. Le serveur DNS 104 peut également stocker l'adresse IP du dispositif informatique 102 afin de répondre aux demandes ultérieures du terminal client 102 avec un temps aller-retour réduit.
Le serveur de résolution de requêtes 104 est couplé via la liaison 109 à un détecteur 208 de DGA, décrit plus en détail en référence à la figure 2.
La figure 2 illustre un exemple des composants du serveur de résolution 104 et du module de détection 208.
Le serveur DNS 104 peut comprendre un ou plusieurs processeurs 120, une ou des interfaces 121 dont l’une est reliée au réseau informatique 106 via la liaison 107 et une mémoire 122. En outre, le serveur DNS 104 peut inclure un cache 123.
Entre autres possibilités, le cache 123 peut servir de référentiel externe pour stocker des informations sur les noms de domaine fréquemment demandés et les adresses IP d'hôte. Dans une mise en œuvre du présent objet, la mémoire cache 123 peut stocker des informations de mappage pour des noms de domaine et leurs adresses IP respectives. Dans un exemple de mise en œuvre, le cache 123 peut être un référentiel interne au sein du serveur DNS 104 pour stocker les informations sur les noms de domaine fréquemment demandés.
Le processeur 120, parmi d'autres capacités, peut être configuré pour extraire et exécuter des instructions lisibles par ordinateur stockées dans la mémoire 122. Le processeur 120 peut être mis en œuvre sous la forme d'un ou de plusieurs microprocesseurs, micro-ordinateurs, microcontrôleurs, processeurs de signaux numériques, unités de traitement centrales, machines d'état, circuits logiques et / ou de tout dispositif manipulant des signaux sur la base d'instructions opérationnelles. Les fonctions des différents éléments représentés sur la figure 2, y compris tous les blocs fonctionnels étiquetés "processeur (s)", peuvent être fournies via l'utilisation d'un matériel dédié ainsi que d'un matériel capable d'exécuter un logiciel en association avec un logiciel approprié. Lorsqu'elles sont fournies par un processeur, les fonctions peuvent être fournies par un seul processeur dédié, par un seul processeur partagé ou par une pluralité de processeurs individuels, dont certains peuvent être partagés. De plus, l'utilisation explicite du terme "processeur" ne doit pas être interprétée comme visant exclusivement le matériel capable d'exécuter un logiciel, et peut implicitement inclure, sans limitation, le matériel du processeur de signal numérique (DSP), le processeur de réseau, le circuit intégré à application spécifique (ASIC) , FPGA (Field Programmable Gate Array), mémoire morte (ROM) pour le stockage du logiciel, mémoire vive (RAM), mémoire non volatile.
D'autres matériels, conventionnels et / ou personnalisés, peuvent également être inclus.
La ou les interfaces 121 peuvent inclure une variété d'interfaces et d'interfaces matérielles lisibles par machine qui permettent au serveur DNS 104 d'interagir avec différentes entités, telles que le processeur 120, le module de cache 123. En outre, la ou les interfaces 123 peuvent permettre aux composants du serveur DNS 104 de communiquer avec d'autres serveurs DNS et des référentiels externes. Les interfaces 121 peuvent faciliter de multiples communications dans une grande variété de réseaux et de types de protocoles, un réseau local, etc.
De son côté, le module de détection de DGA 208 peut comprendre un ou plusieurs processeurs 220, une ou des interfaces 221 dont l’une est reliée au cache 123 via la liaison 109 et une mémoire 222.
La mémoire 222 peut être couplée au processeur 220 et peut, entre autres capacités, fournir des données et des instructions pour générer différentes requêtes. La mémoire 222 peut inclure tout support lisible par ordinateur connu dans la technique, y compris, par exemple, une mémoire volatile, telle qu'une mémoire vive statique (SRAM) et une mémoire vive dynamique (DRAM), et / ou une mémoire non volatile, telle que mémoire morte (ROM), mémoire morte programmable effaçable, mémoires flash, disques durs, disques optiques et bandes magnétiques.
En pratique, le détecteur de DGA 208 comprend un module 200 configuré pour exécuter les méthodes d'agrégation des tuples que l’on décrira plus en détail ci-après.
Les techniques d’agrégation suivantes sont utilisées indépendamment ou successivement pour agréger/combiner les tuples: les statistiques descriptives (module 201), les algorithmes d’organisation de graphes basés sur de l’analyse de complémentarité (module 202), les techniques de réorganisation de matrices pour en révéler des régularités de séries (module 203), et les apprentissages (itemsets machine Learning, module 204) non supervisés pour identifier des règles d’associations ou de clustering (module 205).
En référence à la figure 3, la méthode d’agrégation des tuples est basée sur de l'analyse de réseau de nœuds. Les domaines de chaque tuple sont représentés par un nœud 301. Les nœuds sont associés entre eux par au moins une arête 301. Chaque arête reçoit une pondération 302 calculée sur la base du nombre de clients communs que partagent deux noms domaines demandés.
(X) et (Y) ensembles de clients respectifs à deux domaines requetés, (P) pondération
Le procédé prévoit ensuite d’agréger les domaines en partitions 303-1 et 303-2 par cette pondération de similitude de clients en utilisant des algorithmes de traitement de réseaux complexes, par exemple de type graphe dont les caractéristiques topologiques sont non triviales.
La figure 4 illustre les relations entre les domaines et les clients. Une ligne représente l’identifiant du client 401 et une colonne représente un nom de domaine 402. L’intersection d’une ligne et d’une colonne, appelée ici tuple 403 représente une requête faite par ce client pour ce nom de domaine. On appelle une partition 404-n l’ensemble des tuples pour lesquels à peu près les mêmes clients 401 ont fait des requêtes sur à peu près les mêmes domaines 402. Les tuples dont le domaine correspond à un DGA 403-2 font partie des partitions 404-n. Les tuples dont le domaine ne correspond pas à un DGA 403-1 n’appartiennent pas à une partition 404-n.
En référence à la figure 5, la méthode d’agrégation est calculée par réorganisation de matrices.
Dans cette méthode, les tuples sont modélisés (figure 5) sous la forme d’une matrice de clients DNS et de domaines DNS respectivement en lignes et colonnes. Sans modifier les associations des tuples, le procédé (figure 5) prévoit la permutation des colonnes et des lignes afin de mettre en évidence des motifs masqués. Par exemple, les méthodes utilisées appartiennent au groupe formé par le tri 2D, le tri PQR (Celmar Guimarães da Silva - 2014) ou la réorganisation de Sugiyama.
Ces méthodes sont utilisées sur des tuples déjà identifiés comme DGA potentiels car elles sont très sensibles aux bruits et en conséquence devenir inefficaces. Elles vont par contre permettre de dénombrer des DGA différents dans une agrégation globale par exemple successive à une analyse de complémentarité.
En référence à la figure 6, la méthode d’agrégation est par règles d’association (itemsets).
Cette méthode permet d’extraire les règles d’associations de tuples les plus fréquentes. Un ensemble de clients 601 font des requêtes de noms de domaines 602. Pour chaque nom de domaine, nous construisons la règle d’associations 603 des clients. La fréquence de répétitions d’un même motif d’une règle d’association 604 ou d’un de ses sous ensemble nous donne un facteur de similitude fort pour partitionner des tuples.
Une fois les tuples agrégés, le procédé prévoit de les découper en partitions homogènes à l’aide de systèmes d’apprentissages automatiques (Machine Learning) non supervisés de clustering pour classifier les tuples en DGA distincts.
Le DGA peut être un algorithme simple utilisant une graine, telle qu'une date et / ou une heure actuelle pour générer des noms de domaine alphanumériques. En variante, le DGA peut être un algorithme complexe assez sophistiqué pour générer des noms de domaine de type anglais avec des syllabes bien adaptées ou des combinaisons de mots du dictionnaire anglais.
En référence à la figure 7, on a décrit la distribution de clients exploitant un DGA dans le temps. En abscisse est représenté le temps et en ordonnée les clients susceptibles d’exploiter un DGA. Il faut une quantité minimum de tuples 704 pour définir une partition 703 et donc en déduire un DGA. Une fois un cluster défini, en remontant avant sa période de détection 705, les tuples qui le constituent permettent par leur domaine, ou la fréquence de requêtes de leur client d’en déduire d’autres tuples 701 similaires non classifiés.
La figure 8 décrit un tuple. Le tuple 802 est une relation entre un nom de domaine 803 requêté par un client 801. Le client 801 est distingué par un identifiant unique qui peut être soit son adresse IP, son adresse physique de réseau MAC, un numéro de mobile IMSI (GSM, UMS, ou LTE), un numéro d’inventaire arbitraire ou tout autre identifiant permettant d’identifier un client DNS. Ce numéro peut être transporté dans l’entête du protocole DNS ou dans l’extension du protocole EDNS.
La description qui précède a été dirigée vers des modes de réalisation spécifiques. Il apparaîtra cependant que d'autres variantes et modifications peuvent être apportées aux modes de réalisation décrits, avec l'obtention de tout ou partie de leurs avantages. Par exemple, il est expressément envisagé que les composants et / ou éléments décrits ici puissent être mis en œuvre sous forme de logiciel stocké sur un support lisible par ordinateur tangible (non transitoire) (par exemple, disques / CD / RAM / EEPROM / etc.) ayant instructions de programme exécutées sur un ordinateur, un matériel informatique, un micro-logiciel ou une combinaison de ces éléments. En conséquence, cette description doit être prise uniquement à titre d'exemple et ne doit pas limiter autrement la portée des modes de réalisation décrits ici. Par conséquent, l'objet des revendications annexées est de couvrir toutes les variations et modifications telles qu'elles entrent dans l'esprit et la portée véritables des modes de réalisation décrits ici.
Claims (10)
- 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 (208) 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 congruents selon au moins une technique d’agrégation choisie ; et
- en déduire pour chaque partition homogène l’ensemble des terminaux clients exploitant un même DGA. - Procédé selon la revendication 1, caractérisée en ce que la technique d’agrégation appartient au groupe formé par statistiques descriptives, algorithmes d’organisation de réseaux complexes, techniques de réorganisation de matrices, et apprentissages automatiques non supervisées.
- Procédé selon la revendication 2 caractérisé en ce que l’agrégation par statistique descriptive ordonne les tuples suivant des coefficients de corrélations.
- Procédé selon la revendication 2, caractérisé en ce que la méthode d’agrégation basée sur de l'analyse de réseau de nœuds associe entre eux les domaines de chaque tuple en calculant leur pondération de similitudes basée sur le nombre liaisons de clients DNS communs qu’ils partagent deux à deux.
- Procédé selon la revendication 2, caractérisé en ce que la méthode d’agrégation par réorganisation de matrices modélise les tuples sous la forme d’une matrice domaines DNS et clients DNS respectivement en lignes et colonnes dans laquelle, sans modifier les associations, les colonnes et les lignes sont permutées afin de mettre en évidence des motifs masqués.
- Procédé selon la revendication 2, caractérisé en ce que la méthode d’agrégation, par règles d’association (itemsets), extrait les règles d’associations de tuples les plus fréquentes.
- Procédé selon l’une quelconque des précédentes revendications 1 à 6, caractérisé en ce qu’il comprend en outre une étape de découpe dans laquelle les tuples agrégés sont découpés en partitions homogènes à l’aide de systèmes d’apprentissages automatiques (Machine Learning) non supervisés de clustering pour classifier les tuples en DGA distincts.
- 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 (208) 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 congruents ainsi combinés selon au moins une technique d’agrégation choisie ; et à en déduire pour chaque partition homogène l’ensemble des terminaux clients exploitant un même DGA.
- Système selon la revendication 8, caractérisé en ce que la technique d’agrégation appartient au groupe formé par statistiques descriptives, algorithmes d’organisation de réseaux complexes, techniques de réorganisation de matrices, et apprentissages automatiques non supervisées.
- Programme d'ordinateur comprenant des instructions qui conduisent le système de détection selon l’une des revendications 8 à 9, à exécuter les étapes du procédé selon l’une des revendications 1 à 7, lorsque ledit programme d’ordinateur est exécuté sur un ordinateur.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1911252A FR3101978B1 (fr) | 2019-10-10 | 2019-10-10 | Système et procédé de détection d’un algorithme de génération de domaine DGA |
US17/065,752 US11777969B2 (en) | 2019-10-10 | 2020-10-08 | System and method for detecting a DGA domain generation algorithm |
FR2010294A FR3101977B1 (fr) | 2019-10-10 | 2020-10-08 | Système et procédé de détection d’un algorithme de génération de domaine DGA |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1911252A FR3101978B1 (fr) | 2019-10-10 | 2019-10-10 | Système et procédé de détection d’un algorithme de génération de domaine DGA |
FR1911252 | 2019-10-10 |
Publications (2)
Publication Number | Publication Date |
---|---|
FR3101978A1 true FR3101978A1 (fr) | 2021-04-16 |
FR3101978B1 FR3101978B1 (fr) | 2024-02-09 |
Family
ID=70613818
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR1911252A Active FR3101978B1 (fr) | 2019-10-10 | 2019-10-10 | Système et procédé de détection d’un algorithme de génération de domaine DGA |
FR2010294A Active FR3101977B1 (fr) | 2019-10-10 | 2020-10-08 | Système et procédé de détection d’un algorithme de génération de domaine DGA |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR2010294A Active FR3101977B1 (fr) | 2019-10-10 | 2020-10-08 | Système et procédé de détection d’un algorithme de génération de domaine DGA |
Country Status (2)
Country | Link |
---|---|
US (1) | US11777969B2 (fr) |
FR (2) | FR3101978B1 (fr) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12045198B2 (en) * | 2022-07-29 | 2024-07-23 | Dell Products L.P. | Multi-domain and multi-tier scale-out architecture for clustered file systems |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8260914B1 (en) * | 2010-06-22 | 2012-09-04 | Narus, Inc. | Detecting DNS fast-flux anomalies |
US10198579B2 (en) * | 2014-08-22 | 2019-02-05 | Mcafee, Llc | System and method to detect domain generation algorithm malware and systems infected by such malware |
US10685295B1 (en) * | 2016-12-29 | 2020-06-16 | X Development Llc | Allocating resources for a machine learning model |
JP6912714B2 (ja) * | 2017-07-21 | 2021-08-04 | 富士通株式会社 | 情報処理装置、情報処理方法および情報処理プログラム |
-
2019
- 2019-10-10 FR FR1911252A patent/FR3101978B1/fr active Active
-
2020
- 2020-10-08 FR FR2010294A patent/FR3101977B1/fr active Active
- 2020-10-08 US US17/065,752 patent/US11777969B2/en active Active
Non-Patent Citations (3)
Title |
---|
HAN CHUNYU ET AL: "CODDULM: An approach for detecting C&C domains of DGA on passive DNS traffic", 2017 6TH INTERNATIONAL CONFERENCE ON COMPUTER SCIENCE AND NETWORK TECHNOLOGY (ICCSNT), IEEE, 21 October 2017 (2017-10-21), pages 385 - 388, XP033333441, DOI: 10.1109/ICCSNT.2017.8343724 * |
LIU ZHICHENG ET AL: "CCGA: Clustering and Capturing Group Activities for DGA-Based Botnets Detection", 2019 18TH IEEE INTERNATIONAL CONFERENCE ON TRUST, SECURITY AND PRIVACY IN COMPUTING AND COMMUNICATIONS/13TH IEEE INTERNATIONAL CONFERENCE ON BIG DATA SCIENCE AND ENGINEERING (TRUSTCOM/BIGDATASE), IEEE, 5 August 2019 (2019-08-05), pages 136 - 143, XP033653707, DOI: 10.1109/TRUSTCOM/BIGDATASE.2019.00027 * |
TRUNG-DUC NGUYEN ET AL: "DGA Botnet detection using Collaborative Filtering and Density-based Clustering", PROCEEDINGS OF THE SIXTH INTERNATIONAL SYMPOSIUM ON INFORMATION AND COMMUNICATION TECHNOLOGY, SOICT 2015, 1 January 2015 (2015-01-01), New York, New York, USA, pages 1 - 7, XP055719996, ISBN: 978-1-4503-3843-1, DOI: 10.1145/2833258.2833310 * |
Also Published As
Publication number | Publication date |
---|---|
FR3101978B1 (fr) | 2024-02-09 |
US11777969B2 (en) | 2023-10-03 |
FR3101977A1 (fr) | 2021-04-16 |
US20210112084A1 (en) | 2021-04-15 |
FR3101977B1 (fr) | 2024-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10757101B2 (en) | Using hash signatures of DOM objects to identify website similarity | |
US10574681B2 (en) | Detection of known and unknown malicious domains | |
US9386037B1 (en) | Using hash signatures of DOM objects to identify website similarity | |
US10270744B2 (en) | Behavior analysis based DNS tunneling detection and classification framework for network security | |
US9443019B2 (en) | Optimized web domains classification based on progressive crawling with clustering | |
US11042798B2 (en) | Regularized iterative collaborative feature learning from web and user behavior data | |
JP7382350B2 (ja) | 効率的なラベル伝搬のためのアンサンブルベースのデータキュレーションパイプライン | |
Alfazi et al. | Ontology-based automatic cloud service categorization for enhancing cloud service discovery | |
CN103248677B (zh) | 互联网行为分析系统及其工作方法 | |
Mehrotra et al. | Detection of fake Twitter followers using graph centrality measures | |
WO2021162925A1 (fr) | Systèmes et procédés de détection de logiciels malveillants | |
Beagum et al. | Nonparametric de‐noising filter optimization using structure‐based microscopic image classification | |
Mengiste et al. | Effect of edge pruning on structural controllability and observability of complex networks | |
CN113271292A (zh) | 一种基于词向量的恶意域名集群检测方法及装置 | |
CN105264526B (zh) | 基于垂直的查询选择化 | |
Yang et al. | Fast3DS: A real-time full-convolutional malicious domain name detection system | |
US20220360604A1 (en) | System and method for social network analysis | |
Kim et al. | Threat classification model for security information event management focusing on model efficiency | |
FR3101978A1 (fr) | Système et procédé de détection d’un algorithme de génération de domaine DGA | |
CN110929172A (zh) | 信息选择方法、装置、电子设备及可读存储介质 | |
Elezaj et al. | Criminal network community detection in social media forensics | |
Jusko et al. | Using behavioral similarity for botnet command-and-control discovery | |
EP1727060A1 (fr) | Procédé et dispositif de construction et d'utilisation d'une table de profils réduits de parangons, produit programme d'ordinateur correspondant | |
JP6669679B2 (ja) | 分類装置、分類方法及び分類プログラム | |
Ayat et al. | Entity resolution for distributed probabilistic data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PLFP | Fee payment |
Year of fee payment: 2 |
|
PLSC | Publication of the preliminary search report |
Effective date: 20210416 |
|
PLFP | Fee payment |
Year of fee payment: 3 |
|
PLFP | Fee payment |
Year of fee payment: 4 |
|
PLFP | Fee payment |
Year of fee payment: 5 |