Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
degas — 深層学習モデルによるDGA生成ドメインの検出 | Kitploit
ツール/GitHubGitHub/matthoffman/degas
脅威インテリジェンス機械学習論文と研究学習と教育DNS分析異常検知
GitHubmatthoffman/degas

degas

深層学習モデルによるDGA生成ドメインの検出

リポジトリを見る
2377年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Degas

深層学習モデルを用いたDGA生成ドメイン検出

Edgar Degas, "四人の踊り子"

実行方法

現在、開発には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

これらの手順は、トレーニングデータを変更しない限り、一度だけ実行すれば十分です。

生成されたデータセットを使用してモデルを再学習するには、まず任意のパッケージマネージャ(conda install tensorflow-gpu または pip install tensorflow-gpu)でtensorflow-gpuをインストールして、GPUで高速化されたトレーニングを可能にします。

次に、以下を実行します:

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

利用可能なチューニングオプションについては、python degas/runner train-model --help を実行してください。 これはGTX 1070で約1時間半かかります。約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-detector」などの名前ではなく、名前が付いている方が楽しいからです。
  • 印象派の画家にちなんでプロジェクト名を付ければ、より印象的に聞こえるかもしれない?
  • 古典的な「Samba命名アルゴリズム」(egrep -i '^d.*g.*a.* /usr/share/dict/words)の最初の結果でした。

ちなみに、発音は「de-gah」(エドガー・ドガのように)であり、「de-gas」(「ガスを抜く」という意味)ではありません。

ツールをダウンロード