Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
degas — Détection de domaines générés par DGA à l'aide de modèles d'apprentissage profond | Kitploit
Outils/GitHubGitHub/matthoffman/degas
Renseignement sur les MenacesApprentissage AutomatiqueArticles et RechercheApprentissage et ÉducationAnalyse DNSDétection d'Anomalies
GitHubmatthoffman/degas

degas

Détection de domaines générés par DGA à l'aide de modèles d'apprentissage profond

Voir le dépôt
2375il y a 7 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Degas

Détection de domaines générés par DGA à l'aide de modèles d'apprentissage profond

Edgar Degas, « Quatre Danseuses »

Exécution

J'utilise actuellement Conda (Anaconda/Miniconda) pour le développement, mais vous devriez pouvoir utiliser Pipenv ou virtualenv également avec le fichier requirements.txt fourni.

conda:

root@kitploit:~
conda env create -f environment.yml
conda activate degas

Pipenv:

root@kitploit:~
pipenv install -r requirements.txt
pipenv shell

Virtualenv est similaire, mais il n'y a plus vraiment de raison d'utiliser virtualenv à la place de Pipenv.

Réentraînement du modèle

Un modèle entraîné est inclus dans le répertoire models. Si vous souhaitez entraîner le vôtre, vous devez d'abord télécharger les données d'entraînement depuis S3 :

root@kitploit:~
python degas/runner download-data

Traitez les données dans le format CSV simple attendu par le constructeur du modèle :

root@kitploit:~
python degas/runner process-data data/raw data/processed

Ces étapes ne doivent être exécutées qu'une seule fois, sauf si vous modifiez les données d'entraînement.

Pour réentraîner ensuite le modèle à l'aide du jeu de données généré, installez d'abord tensorflow-gpu avec votre gestionnaire de paquets habituel (conda install tensorflow-gpu ou pip install tensorflow-gpu) afin que l'entraînement soit accéléré par le GPU.

Ensuite, exécutez :

root@kitploit:~
python degas/runner train-model data/processed

Exécutez python degas/runner train-model --help pour voir les options de paramétrage disponibles. Cela prend environ une heure et demie sur une GTX 1070. Il ne tourne qu'environ 9 époques avant de s'interrompre ; vous pourriez potentiellement le faire tourner, par exemple, sur 5 époques et obtenir encore une bonne précision avec la moitié du temps d'entraînement : python degas/runner train-model --epochs 5 data/processed

Faire des prédictions

Puisque ce projet utilise Tensorflow comme bibliothèque d'apprentissage profond sous-jacente, la méthode recommandée pour l'inférence est d'utiliser Tensorflow Serving.

Vous devriez pouvoir le servir avec :

root@kitploit:~
docker run -p 8501:8501 \
  --mount type=bind,source=models/degas,target=/models/degas\
  -e MODEL_NAME=degas -t tensorflow/serving

Voir la documentation de Tensorflow Serving pour plus d'informations sur les options disponibles.

À propos de Degas

Pourquoi l'apprentissage profond pour cette tâche ? Parce qu'il fonctionne bien et qu'il n'est pas difficile à mettre en œuvre. D'après Byu et al., 2018 :

« Les réseaux de neurones profonds sont récemment apparus dans la littérature sur la détection de DGA (Woodbridge et al., 2016 ; Saxe & Berlin, 2017 ; Yu et al., 2017). Ils surpassent significativement les méthodes d'apprentissage automatique traditionnelles en termes de précision, au prix d'une complexité accrue de l'entraînement du modèle et de la nécessité de jeux de données plus volumineux. »

Comme il y a abondance de données disponibles pour l'entraînement, créer un modèle d'apprentissage profond est aussi facile, voire plus facile, que les alternatives.

Références

https://openreview.net/forum?id=BJLmN8xRW&noteId=BJLmN8xRW http://faculty.washington.edu/mdecock/papers/byu2018a.pdf

Pourquoi « Degas » ?

  • Parce que c'est plus amusant de travailler sur un projet avec un nom plutôt que « détecteur-de-DGA » ou quelque chose du genre.
  • Peut-être que nommer le projet d'après un peintre impressionniste le rendra plus impressionnant ?
  • C'était le premier résultat du classique « algorithme de nommage Samba » ( egrep -i '^d.*g.*a.* /usr/share/dict/words )

Pour mémoire, je le prononce « dé-ga », comme Edgar Degas, et non « dé-gaz », comme « enlever tout le gaz. »

Télécharger l’outil