
Diffie-Hellman一時鍵交換をTLSおよびSSH上で強制し、サーバーCPUを飽和させる概念実証型サービス拒否ツールです。認可されたセキュリティテストのためにCVE-2002-20001を実装しています。
D(HE)ater は D(HE)at 攻撃(CVE-2002-20001)の概念実証実装です。TLS と SSH の両方で Diffie-Hellman ephemeral(DHE)または楕円曲線 Diffie-Hellman ephemeral(ECDHE)鍵交換を強制することで、サーバーの CPU を飽和させます。攻撃の詳細についてはプロジェクトページを参照するか、IEEE Access に掲載されている完全な技術論文をお読みください。
D(HE)ater は、防御目的のセキュリティテスト、緩和策の検証、および研究のみを目的とした概念実証のサービス拒否ツールです。所有しているシステム、または明示的な書面による許可を得たシステムに対してのみ実行してください。許可なくシステムに対して使用することは違法となる可能性があり、対象のサービスを妨害する恐れがあります。著者はコードを現状のまま提供し、いかなる保証も行わず、誤用や損害に対する責任を負いません。
D(HE)ater はコマンドラインツールです。--protocol オプションと対象の は必須です:
uri# TLS サービスに対して DHE 鍵交換を強制
dheat --protocol tls example.com:443
# SSH サービスに対して DHE 鍵交換を強制
dheat --protocol ssh example.com:22
オプション引数:
| オプション | デフォルト | 説明 |
|---|---|---|
--key-exchange | DHE | 強制する鍵交換:DHE または ECDHE |
--timeout | 5 | ソケットタイムアウト(秒) |
--thread-num | 1 | 実行するスレッド数 |
--key-size | なし | 強制する鍵サイズ |
# 有限体(DHE)の代わりに楕円曲線(ECDHE)鍵交換を強制
dheat --protocol tls --key-exchange ECDHE example.com:443
# 16 スレッド、10 秒タイムアウト
dheat --protocol tls --thread-num 16 --timeout 10 example.com:443
D(HE)at 攻撃の検出と緩和に関するガイダンスは、公式プロジェクトサイト dheatattack.com で管理されています。
D(HE)ater には Python 3.9 以降が必要で、DHE/ECDHE サポートの確認と必要なトラフィックの生成に CryptoLyzer を使用します。この依存関係は、以下に説明する方法で自動的にインストールされます。
PyPI から最新リリースをインストール:
pip install dheater
ソースリポジトリから現在の開発版を直接インストールする場合:
pip install git+https://gitlab.com/dheatattack/dheater.git
このコードは Apache License Version 2.0 の条件で利用可能です。 包括的ではありませんが簡潔な説明とライセンス全文は、Choose an open source license のウェブサイトで確認できます。
D(HE)ater は、TLS/SSH サービスの DHE/ECDHE サポートを確認し、D(HE)at 攻撃を実行するために必要なトラフィックを生成するために CryptoLyzer を使用しています。