
Классификатор на основе LSTM для обнаружения доменов, генерируемых алгоритмами генерации доменов (DGA), с реализациями нейронной сети и моделей биграмм на Keras для аналитики угроз DNS.
Этот репозиторий содержит очень простой код для классификации доменов как DGA или легитимных. Данный код демонстрирует наши результаты, описанные в статье на arxiv: https://arxiv.org/abs/1611.00791. Одно из отличий — наборы данных. В статье и в этом репозитории в качестве легитимных используется топ-1 миллион от Alexa, но для простоты в этом репозитории генерируются собственные домены.
Мы также реализуем только LSTM и биграммный классификатор из статьи. Это два лучших классификатора, которые легко реализовать в Keras.
python run.py загрузит и сгенерирует все данные, обучит и оценит классификатор, а также сохранит PNG-изображение на диск (ROC-кривую). По умолчанию используется 1 фолд для ускорения. Этот код будет работать как на локальной машине, так и на машине с GPU (на GPU, конечно, будет намного быстрее).
В нашем репозитории 11 алгоритмов DGA. Некоторые взяты из репозитория https://github.com/baderj/domain_generation_algorithms. Мы отметили это в каждом файле и сохранили ту же лицензию GNU. Однако мы внесли небольшие правки, например, разрешили отсутствие TLD и изменяли размер для некоторых алгоритмов.