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)进行开发,但使用附带的 requirements.txt 时,你也可以使用 Pipenv 或 virtualenv。

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 等人 2018 年的论文(http://faculty.washington.edu/mdecock/papers/byu2018a.pdf):

“深度神经网络最近出现在关于 DGA 检测的文献中(Woodbridge 等人,2016;Saxe & Berlin,2017;Yu 等人,2017)。它们在准确率上显著优于传统的机器学习方法,代价是增加了模型训练的复杂度,并且需要更大的数据集。”

既然有足够的数据可用于训练,创建深度学习模型就和其他替代方法一样简单,甚至更容易。

参考文献

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

为什么叫“Degas”?

  • 因为给项目起个名字比叫“DGA-detector”或其他名字更有趣。
  • 也许用印象派画家的名字命名会让它听起来更厉害?
  • 这是经典的“Samba 命名算法”的第一个结果(egrep -i '^d.*g.*a.* /usr/share/dict/words)

郑重声明,我把它读作“德加”,就像 埃德加·德加 一样,而不是“去气”,像“去除所有气体”那样。

下载工具