Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
degas — Erkennung von DGA-generierten Domains mithilfe von Deep-Learning-Modellen | Kitploit
Tools/GitHubGitHub/matthoffman/degas
BedrohungsanalyseMaschinelles LernenPapers & ForschungLernen & BildungDNS-AnalyseAnomalieerkennung
GitHubmatthoffman/degas

degas

Erkennung von DGA-generierten Domains mithilfe von Deep-Learning-Modellen

Repository anzeigen
2375vor 7 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Degas

Erkennung von DGA-generierten Domains mittels Deep-Learning-Modellen

Edgar Degas, "Vier Tänzerinnen"

Ausführung

Ich verwende derzeit Conda (Anaconda/Miniconda) für die Entwicklung, aber Sie sollten auch Pipenv oder virtualenv mit der mitgelieferten requirements.txt verwenden können.

conda:

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

Pipenv:

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

Virtualenv ist ähnlich, aber es gibt wirklich keinen Grund mehr, virtualenv anstelle von Pipenv zu verwenden.

Modell neu trainieren

Es gibt ein trainiertes Modell im Verzeichnis models. Wenn Sie Ihr eigenes trainieren möchten, müssen Sie zunächst die Trainingsdaten von S3 herunterladen:

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

Verarbeiten Sie die Daten in das einfache CSV-Format, das der Modell-Builder erwartet:

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

Diese Schritte müssen nur einmal ausgeführt werden, es sei denn, Sie ändern die Trainingsdaten.

Um das Modell dann mit dem generierten Datensatz neu zu trainieren, installieren Sie zunächst tensorflow-gpu mit Ihrem bevorzugten Paketmanager (conda install tensorflow-gpu oder pip install tensorflow-gpu), damit das Training GPU-beschleunigt ist.

Führen Sie dann aus:

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

Führen Sie python degas/runner train-model --help aus, um einige verfügbare Optimierungsoptionen zu sehen. Dies dauert etwa eineinhalb Stunden auf einer GTX 1070. Es führt nur etwa 9 Epochen aus, bevor es abbricht; Sie könnten es theoretisch für, sagen wir, 5 Epochen laufen lassen und immer noch eine gute Genauigkeit bei halber Trainingszeit erzielen: python degas/runner train-model --epochs 5 data/processed

Vorhersagen treffen

Da dieses Projekt Tensorflow als zugrundeliegende Deep-Learning-Bibliothek verwendet, wird empfohlen, Tensorflow Serving für die Inferenz zu verwenden.

Sie sollten es wie folgt bereitstellen können:

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

Weitere Informationen zu den verfügbaren Optionen finden Sie in der Tensorflow Serving-Dokumentation.

Über Degas

Warum Deep Learning für diese Aufgabe? Weil es gut funktioniert und nicht schwer zu implementieren ist. Aus Byu et al., 2018:

"Tiefe neuronale Netze sind kürzlich in der Literatur zur DGA-Erkennung aufgetaucht (Woodbridge et al., 2016; Saxe & Berlin, 2017; Yu et al., 2017). Sie übertreffen traditionelle maschinelle Lernmethoden in der Genauigkeit deutlich, allerdings auf Kosten einer erhöhten Komplexität des Modelltrainings und der Notwendigkeit größerer Datensätze."

Da es reichlich Daten zum Trainieren gibt, ist die Erstellung eines Deep-Learning-Modells genauso einfach oder einfacher als die Alternativen.

Referenzen

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

Warum "Degas"?

  • Weil es mehr Spaß macht, an einem Projekt mit einem Namen zu arbeiten, als an einem wie "DGA-Detektor" oder so.
  • Vielleicht klingt es beeindruckender, wenn man das Projekt nach einem impressionistischen Maler benennt?
  • Es war das erste Ergebnis aus dem klassischen "Samba-Namensalgorithmus" ( egrep -i '^d.*g.*a.* /usr/share/dict/words )

Um das klarzustellen: Ich spreche es "de-gah" aus, wie Edgar Degas, nicht "de-gas", wie im Sinne von "das gesamte Gas entfernen".

Tool herunterladen