
Clasificador basado en LSTM para detectar dominios generados por algoritmos de generación de dominios (DGA), con implementaciones Keras de modelos de red neuronal y bigramas para inteligencia de amenazas DNS.
Este repositorio contiene código muy simple para clasificar dominios como DGA o benignos. Este código demuestra nuestros resultados en nuestro artículo de arxiv aquí: https://arxiv.org/abs/1611.00791. Una diferencia son los conjuntos de datos. Tanto el artículo como este repositorio utilizan los 1 millón principales de Alexa como benignos, pero este repositorio genera sus propios dominios para simplificar.
También implementamos solo el clasificador LSTM y de bigramas del artículo. Estos son los dos mejores clasificadores y son simples de implementar en Keras.
python run.py descargará y generará todos los datos, entrenará y evaluará el clasificador, y guardará un PNG en el disco (la curva ROC). Por defecto usa 1 pliegue para acelerar las cosas. Este código se ejecutará en su máquina local o en una máquina con GPU (la GPU será, por supuesto, mucho más rápida).
Tenemos 11 algoritmos DGA en nuestro repositorio. Algunos son del repositorio https://github.com/baderj/domain_generation_algorithms. Notamos esto en cada archivo y mantuvimos la misma licencia GNU. Sin embargo, hicimos algunas pequeñas modificaciones como permitir que no haya TLD y variar el tamaño para algunos algoritmos.