nhi-zero-trust-bypass — BIND CVE-2025-40775を悪用してDNSを妨害し、シークレットローテーションを破壊し、クラウドネイティブラボの静的認証情報を露出させることで、実際のゼロトラストバイパスを実証します。 | Kitploit
alexsvobo/nhi-zero-trust-bypassnhi-zero-trust-bypass
BIND CVE-2025-40775を悪用してDNSを妨害し、シークレットローテーションを破壊し、クラウドネイティブラボの静的認証情報を露出させることで、実際のゼロトラストバイパスを実証します。
541年前
コミュニティで最も使われているツールを見つけましょう。
プロジェクト:プロトコル脆弱性を悪用してNHIシークレットを操作し、ゼロトラストポリシーをバイパスする

スクリーンショット
以下はデモからの実際のスクリーンショットです。詳細は screenshots/README.md を参照してください。
1. DNSエクスプロイト(BINDクラッシュ)
A. エクスプロイトパケット送信
Scapy が不正なTSIG DNSパケットをBINDに送信します (dns_exploit.py 参照)。
B. コンテナクラッシュ確認
docker ps -a はエクスプロイト後にBINDコンテナが終了したことを示しています。
C. クラッシュログの証拠
docker logs vulnerable_bind からの該当するアサーション失敗とクラッシュログ。
2. NHIシークレットローテーション失敗
NHIクライアント (client_nhi_rotation.py) はDNS停止によりシークレットローテーションに失敗し、静的クレデンシャルにフォールバックします。
3. ゼロトラストバイパス
バイパスデモ (bypass_demo.py): 静的クレデンシャルが保護されたAPIに受け入れられ、ゼロトラスト制御をバイパスします。
目的
攻撃者が重要なDNS脆弱性(CVE-2025-40775)を悪用してDNSサーバーをクラッシュさせ、非ヒューマンアイデンティティ(NHI)シークレットローテーションワークフローを妨害し、マシンアイデンティティを乗っ取ることで、ゼロトラストセキュリティフレームワークをバイパスする方法を示します。このプロジェクトはプロトコルレベルの脆弱性とNHIライフサイクルギャップに焦点を当て、AI/ML依存を避けます。
背景と関連性
- DNS脆弱性: 重要なDNS脆弱性(例:不正なTSIGレコードによるBIND DoS)の調査。
- NHI管理: クラウド環境における非ヒューマンアイデンティティ(APIキー、サービスアカウント、マシンアイデンティティ)の管理とライフサイクルにおける一般的な弱点の分析。
- ゼロトラストフレームワーク: ゼロトラストの原則が継続的な認証とシークレットローテーションに依存している方法、および妨害がこれらの前提を無効にする方法の理解。
攻撃チェーンワークフロー
フェーズ1: DNSサーバークラッシュのトリガー
- 目標: ターゲットクラウドサービスのDNS解決を妨害する。
- 方法: TSIGレコードに関連する既知のBIND脆弱性(CVE-2025-40775)を悪用して不正なDNSクエリを細工する。
- ツール: パケット生成のための
Scapy。
フェーズ2: NHIシークレットローテーション失敗の悪用
- 目標: システムに静的/フォールバックNHIを強制し、それらをキャプチャする。
- 方法: DNS DoSを介してシークレットマネージャー(例:HashiCorp Vault)との通信を妨害し、シークレットローテーションの再試行を引き起こす。これらの再試行中に平文のフォールバックシークレットが送信されるかどうか、または古いシークレットへの依存が機会を生み出すかどうかを調査する。
- ツール: ネットワークキャプチャ用の
tcpdump、Pythonクライアントシミュレーション。
フェーズ3: ゼロトラストポリシーのバイパス
- 目標: 盗まれた/露出したNHIを使用してサービスを偽装し、データを流出させる。
- 方法: 認証トークン(例:JWT)を偽造するか、APIキーを直接使用して制限されたリソースにアクセスする。
- ツール: 保護されたAPIエンドポイントにアクセスするPythonスクリプト。
デモの概要
- 不正なTSIG DNSパケットでBIND 9.20.8をエクスプロイトし(
dns_exploit.pyとScapyを使用)、DNSサーバーをクラッシュさせます。
- DNS停止によるNHIシークレットローテーションの失敗をクライアント(
client_nhi_rotation.py)で観察し、静的/緊急用クレデンシャルへのフォールバックが発生します。
- 静的クレデンシャル(
STATIC_BREAK_GLASS_KEY_XYZABC)を使用して保護されたAPI(bypass_demo.py)にアクセスすることでゼロトラストバイパスを実演し、アクセスを許可してポリシーをバイパスします。
主要ファイル
dns_exploit.py: BIND DoSをトリガーするScapyスクリプト。
client_nhi_rotation.py: NHIシークレットローテーションとフォールバックをシミュレート。
bypass_demo.py: 静的NHIを使用したバイパスを実演。
api-service-mock/app.py: 保護されたAPIエンドポイント。
secrets-manager-mock/app.py: シミュレートされたシークレットマネージャー。
docker-compose.yml: 環境をオーケストレーション。
実行方法
- 環境をビルドして起動:
docker-compose up -d --build
- DNSエクスプロイトを実行:
- NHIクライアントシミュレーションを実行:
python .\client_nhi_rotation.py
- バイパスデモを実行:
影響
- エンドツーエンドのエクスプロイトチェーン: DNS DoS → NHIローテーション失敗 → 静的クレデンシャル露出 → ゼロトラストバイパス。
- 現実的なクラウドネイティブシナリオ: プロトコル層の攻撃が最新のセキュリティフレームワークをどのように弱体化させるかを示します。
推奨事項
- 可能な限り静的/緊急用クレデンシャルを排除する。
- DNSインフラストラクチャを強化し、プロトコル異常を監視する。
- シークレットマネージャーとクライアントがインフラ障害時に安全に機能低下することを保証する。
脆弱性開示
このプロジェクトは、BIND 9.20.0~9.20.8におけるサービス拒否脆弱性であるCVE-2025-40775の影響を示しています。ラボは意図的にBIND 9.20.8をビルドして実行し、このシナリオをシミュレートします。すべてのテストは研究および教育目的のためだけに管理環境で実施されました。
CVE詳細
- CVE: CVE-2025-40775
- 説明: 受信DNSプロトコルメッセージにトランザクション署名(TSIG)が含まれている場合、BINDは常にそれをチェックします。TSIGのアルゴリズムフィールドに無効な値が含まれていると、BINDは即座にアサーション失敗で異常終了します。
- 影響を受けるバージョン: 9.20.0–9.20.8, 9.21.0–9.21.7
- 影響: リモート、認証不要のDoS(CVSS 7.5 HIGH)
- 回避策: なし。9.20.9以降にパッチ適用。
- 参照: ISCアドバイザリ, NVD
- CWE: CWE-232: 未定義値の不適切な処理
脆弱なバージョンの使用方法
vulnerable_bind サービスは、Dockerfileに示されているように、公式の9.20.8 tarballを使用してソースからビルドされます。これはデモンストレーションのみを目的としており、本番環境ではこのバージョンを使用しないでください。
免責事項
このリポジトリは教育および研究目的のみです。これらの技術やコードを不正または悪意のある活動に使用しないでください。DISCLAIMER.mdを参照してください。