Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
degas — Обнаружение DGA-сгенерированных доменов с помощью моделей глубокого обучения | Kitploit
Инструменты/GitHubGitHub/matthoffman/degas
Разведка угрозМашинное ОбучениеСтатьи и ИсследованияОбучение и ОбразованиеАнализ DNSОбнаружение Аномалий
GitHubmatthoffman/degas

degas

Обнаружение DGA-сгенерированных доменов с помощью моделей глубокого обучения

Репозиторий
2377 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Degas

Обнаружение DGA-генерированных доменов с использованием моделей глубокого обучения

Эдгар Дега, "Четыре танцовщицы"

Запуск

В настоящее время я использую Conda (Anaconda/Miniconda) для разработки, но вы также можете использовать Pipenv или virtualenv с прилагаемым файлом requirements.txt.

conda:

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

Pipenv:

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

Virtualenv аналогичен, но больше нет причин использовать virtualenv вместо Pipenv.

Переобучение модели

В директорию models добавлена обученная модель. Если вы хотите обучить свою собственную, сначала необходимо загрузить обучающие данные из S3:

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

Обработайте данные в простой CSV-формат, который ожидает построитель модели:

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

Эти шаги нужно выполнить только один раз, если вы не изменяете обучающие данные.

Чтобы затем переобучить модель на сгенерированном наборе данных, сначала установите tensorflow-gpu, используя ваш любимый менеджер пакетов (conda install tensorflow-gpu или pip install tensorflow-gpu), чтобы обучение ускорялось на GPU.

Затем выполните:

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

Выполните python degas/runner train-model --help, чтобы увидеть некоторые доступные параметры настройки. Это занимает около полутора часов на GTX 1070. Он выполняет около 9 эпох, после чего прерывается; вы потенциально можете запустить его, скажем, на 5 эпох и всё равно получить хорошую точность при вдвое меньшем времени обучения: python degas/runner train-model --epochs 5 data/processed

Получение прогнозов

Поскольку этот проект использует Tensorflow в качестве базовой библиотеки глубокого обучения, рекомендуемый способ использования для инференса — это Tensorflow Serving.

Вы сможете его запустить с помощью:

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

Смотрите документацию Tensorflow Serving для получения дополнительной информации о доступных параметрах.

О Degas

Почему глубокое обучение для этой задачи? Потому что оно хорошо работает и его несложно реализовать. Из Byu et al, 2018:

"Глубокие нейронные сети недавно появились в литературе по обнаружению DGA (Woodbridge et al., 2016; Saxe & Berlin, 2017; Yu et al., 2017). Они значительно превосходят традиционные методы машинного обучения по точности, ценой увеличения сложности обучения модели и необходимости больших наборов данных."

Поскольку доступно много данных для обучения, создание модели глубокого обучения так же просто или даже проще, чем альтернативы.

Ссылки

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

Почему "Degas"?

  • Потому что работать над проектом с именем веселее, чем над "DGA-детектором" или чем-то подобным.
  • Возможно, называть проект в честь художника-импрессиониста сделает его более впечатляющим?
  • Это был первый результат классического "алгоритма именования Samba" ( egrep -i '^d.*g.*a.* /usr/share/dict/words )

Для справки: я произношу его "de-gah", как Эдгар Дега, а не "de-gas", как "удалить весь газ".

Скачать инструмент