Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
degas — Detección de dominios generados por DGA mediante modelos de aprendizaje profundo | Kitploit
Herramientas/GitHubGitHub/matthoffman/degas
Inteligencia de AmenazasAprendizaje AutomáticoPapers e InvestigaciónAprendizaje y EducaciónAnálisis de DNSDetección de Anomalías
GitHubmatthoffman/degas

degas

Detección de dominios generados por DGA mediante modelos de aprendizaje profundo

Ver Repositorio
237hace 7 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Degas

Detección de dominios generados por DGA mediante modelos de aprendizaje profundo

Edgar Degas, "Cuatro bailarinas"

Ejecución

Actualmente estoy usando Conda (Anaconda/Miniconda) para el desarrollo, pero también deberías poder usar Pipenv o virtualenv con el requirements.txt incluido.

conda:

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

Pipenv:

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

Virtualenv es similar, pero realmente ya no hay motivo para usar virtualenv en lugar de Pipenv.

Reentrenamiento del modelo

Hay un modelo entrenado incluido en el directorio models. Si quieres entrenar el tuyo propio, primero tendrás que descargar los datos de entrenamiento desde S3:

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

Procesa los datos al formato CSV simple que espera el constructor de modelos:

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

Esos pasos solo necesitan ejecutarse una vez, a menos que cambies los datos de entrenamiento.

Para reentrenar el modelo con el conjunto de datos generado, instala primero tensorflow-gpu con el gestor de paquetes que prefieras (conda install tensorflow-gpu o pip install tensorflow-gpu) para que el entrenamiento esté acelerado por GPU.

Luego, ejecuta:

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

Ejecuta python degas/runner train-model --help para ver algunas opciones de ajuste disponibles. Esto tarda aproximadamente una hora y media en una GTX 1070. Solo ejecuta unas 9 épocas antes de interrumpirse; podrías ejecutarlo, digamos, durante 5 épocas y aun así obtener una buena precisión con la mitad del tiempo de entrenamiento: python degas/runner train-model --epochs 5 data/processed

Realizar predicciones

Dado que este proyecto usa Tensorflow como librería de aprendizaje profundo subyacente, la forma recomendada de usarlo para inferencia es mediante Tensorflow Serving.

Deberías poder servirlo con:

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

Consulta la documentación de Tensorflow Serving para obtener más información sobre las opciones disponibles.

Acerca de Degas

¿Por qué aprendizaje profundo para esta tarea? Porque funciona bien y no es difícil de implementar. De Byu et al, 2018:

"Las redes neuronales profundas han aparecido recientemente en la literatura sobre detección de DGA Woodbridge et al. (2016); Saxe & Berlin (2017); Yu et al. (2017). Superan significativamente a los métodos tradicionales de aprendizaje automático en precisión, a costa de aumentar la complejidad de entrenar el modelo y de requerir conjuntos de datos más grandes."

Dado que hay abundantes datos disponibles con los que entrenar, crear un modelo de aprendizaje profundo es tan fácil o más fácil que las alternativas.

Referencias

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

¿Por qué "Degas"?

  • Porque es más divertido trabajar en un proyecto con nombre, en lugar de "DGA-detector" o algo así.
  • Quizás ponerle al proyecto el nombre de un pintor impresionista haga que suene más impresionante.
  • Fue el primer resultado del clásico "algoritmo de nombres de Samba" ( egrep -i '^d.*g.*a.* /usr/share/dict/words )

Para que conste, yo lo pronuncio "de-gah", como Edgar Degas, no "de-gas", como en "quitar todo el gas".

Descargar herramienta