脅威インテリジェンス (Pro)
DefectDojo Proは、悪用可能性、既知の悪用事例、脅威アクターの活動といった専用の脅威インテリジェンスで検出事項をエンリッチし、それをPriorityとRiskに反映します。これはEPSSやCISA KEVフラグをはるかに超える情報です。
得られるもの
CVEを持つすべての検出事項は、毎晩、CISA KEV、Metasploit、Exploit-DB、Nucleiテンプレート、および一般公開されているPoC(概念実証)の追跡情報から構築された厳選済みのインテリジェンスフィードと照合されます。悪用の証跡がある場合、その検出事項にはThreat Intelligenceカードが表示されます。
- **悪用成熟度(exploit-maturity)**バッジ — なし → PoC → 武器化済み → 実際に悪用中
- 脅威スコア(0〜100)
- 証跡へのリンクとなるエビデンスチップ — KEVエントリ(掲載日を含む)、ランサムウェアでの使用、Metasploitモジュール、Exploit-DBエントリ、Nucleiテンプレート、一般公開されているPoCリポジトリ
- その検出事項のpriorityが上昇した理由を説明する平易な一文
カードだけでなく、このインテリジェンスはアプリ全体で利用できる情報にもなっています。
- 検出事項一覧のExploit Maturity列 — ソートおよびフィルタが可能(例:「WeaponizedまたはActiveのみ」)
- Priority Layoutダッシュボード上の**「Urgent & Actively Exploited」**タイル — 実際に悪用が確認されているアクティブなUrgentリスクの検出事項数をカウントし、クリックすると該当のフィルタ済み検出事項一覧が開きます
- 既存の検出事項のCVEが、CISA KEVへの掲載やMetasploitモジュールの追加といった新たな悪用証跡を得たときに発生する通知イベント(
threat_intel_alert)。これはアップグレード時のみで、証跡が静かに古くなって失効しても通知は発生しません。
スコアリングへの影響
Priorityエンジンは、これまでも深刻度、ビジネスコンテキスト、そしてEPSS + KEVから構築される「外部スコア」を組み合わせて計算していました。脅威インテリジェンスはこの外部スコアを一般化し、各種の悪用証跡がEPSSスケール上のフロア(下限)として機能するようにします。
| 証跡 | Priorityフロア(EPSS換算) |
|---|---|
| 実際の悪用 + ランサムウェア/特定の攻撃者 | 45% |
| CISA KEVに掲載かつランサムウェアで使用 | 30% |
| KEVに掲載、または実際に悪用されている | 20% |
| 武器化された公開エクスプロイト(Metasploit / Exploit-DB) | 15% |
| Nuclei検出テンプレートが存在する | 12% |
| 公開PoCのみ | 8% |
| 悪用証跡なし | 変更なし |
検出事項の外部スコアは、EPSS由来の値と上記の証跡フロアの大きい方が採用されます。そのため、インテリジェンスはスコアを引き上げることはあっても、決して引き下げることはなく、すでにEPSSがフロアを超えている検出事項には影響しません。Prioritization Engineの設定にあるおなじみの製品タイプ別external-scoreスカラーは、EPSS/KEVに対して常にそうしてきたのと同じ方法で、この寄与分にも適用されます。
Actively-Exploited Risk Floor(実際に悪用されている場合のRiskフロア)
上記の表はPriorityを引き上げますが、それは検出事項の基本深刻度に比例した形です。ここには明言しておく価値のある帰結があります。実際に悪用されているCVEを含むLow深刻度の検出事項は、絶対値としてはわずかな上昇しか受けず、それでも低いRiskバンドに留まる可能性があるということです。多くのチームはこれを誤りだと考えます。「実際に悪用されている」ものがLowに分類されるべきではないからです。
そこで、2つ目のカテゴリカルなルールが存在します。脅威インテリジェンスが**実際の悪用(in the wild)を報告した場合、重み付け計算だけで算出された結果にかかわらず、その検出事項のPriorityは設定されたRiskバンドの水準以上に引き上げられます。デフォルトではNeeds Action(要対応)**に設定されており、各製品タイプはPrioritization Engineの設定内にあるActively-Exploited Risk Floorで、これをUrgentまで引き上げたり、引き下げたり、クリアしてフロアを無効にしたりできます。
このフロアは常に引き上げる方向にのみ作用します。検出事項を引き下げることは決してなく、すでに単独でより高いスコアを持つ検出事項には影響しません。これはPriorityに適用されるため、RiskバンドとRiskスコアも自動的にそれに追従し、すべての一覧、フィルタ、チャート、SLA計算が同じ一貫した数値を参照することになります。
CVEを持たない検出事項
脅威インテリジェンスはCVEによって照合されます。多くの検出事項 — ほとんどのSAST結果、シークレット、設定ミス、カスタムルール — にはCVEがなく、脆弱性インスタンス単位の脅威インテリジェンスもどこにも存在しません(これはDefectDojoに限らず、あらゆるベンダーに共通する事実です)。これらの検出事項は次のようになります。
- 現在のPriorityとRiskがそのまま維持されます — この機能がスコアを引き下げることはありません
- 他のすべてのエンジン入力(深刻度、ビジネス重要度、露出度など)によって引き続き優先順位が付けられます
- カード上に「No threat intelligence available — this finding has no CVE to match against(この検出事項には照合対象のCVEがないため、脅威インテリジェンスはありません)」と表示されます。これは、CVEはあるが単に既知の悪用がまだないだけの検出事項とは区別されます
正直に言うべき1つの帰結があります。混在するキューの中で、CVEを持つ検出事項が悪用証跡を獲得していくにつれ、CVEを持たない検出事項はスコア自体は変わらなくても相対的な順位が下がっていきます。
信頼性とスコアの安定性
- 署名付きインテリジェンス。 毎晩配信されるバンドルはすべてDefectDojoによって暗号署名されており、インスタンスは改ざんされたデータや未署名のデータを拒否します。エアギャップ環境のインスタンスも、オフライン検証手順を経て同じ署名付きバンドルをインポートします。
- スコアのばたつきなし。 証跡のアップグレードは、それが現れた夜に適用されます。ある情報源から証跡が失われた場合でも、スコアは安定期間(デフォルトで14日間)は変化せず維持されます。フィードの一時的な不具合でキューが揺れ動くことはなく、本物の格下げは期間終了後に静かに反映されます。
- エアギャップサポート。 日次バンドル(EPSSデータを含む)は転送してオフラインでインポートできるため、隔離されたインスタンスでも同じエンリッチメントを得られます。
セルフホスト環境での展開
DefectDojo Cloudインスタンスでは設定は不要です。セルフホストのインスタンスには3つの選択肢があります。
- 接続あり(デフォルト)。 インスタンスは毎晩、HTTPS経由で
intel.defectdojo.comから署名付きバンドルを取得します。これは他のDefectDojo機能が使用しない宛先であるため、通常は明示的に許可する必要があります。このホストへのアウトバウンド443番ポートを開放し、Kubernetesの場合はegressネットワークポリシーにも追加してください。この取得処理はwebポッドではなくCeleryワーカー上で実行される点に注意してください。そのため、プロキシ設定もそのワークロードに到達させる必要があります。 - 内部ミラー。
DD_THREAT_INTEL_BUNDLE_URL(および対応するダイジェストと署名のURL)を、自分で同期を行うネットワーク内の場所に向けて設定します。署名検証は引き続き適用されるため、ミラーがデータを改ざんすることはできません。 - エアギャップ。 バンドルとその署名を手動で転送し、
manage.py load_threat_intel_bundle --file <bundle>でインポートします。署名はインポート時に検証されます。
インスタンスがフィードに到達できない場合、この機能はフェイルクローズします。つまり実行は失敗として記録され、既存のスコアと証跡はそのままの状態で保持されます。劣化するのはインテリジェンスの鮮度のみです。
有効化する
この機能はデフォルトでは無効になっています。管理者はこれを直接有効化することも、まずシャドーモードで実行することもできます。シャドーモードでは、実際には何も変更せずに想定されるスコアを計算し、どの検出事項がどのように変動するかを示すドリフトレポートを生成します。大規模インスタンスでの推奨展開方法については、サポートにお問い合わせいただくか、運用ランブックをご参照ください。