リスク受容 (Pro)
リスク受容(Risk Acceptance) は、Full Risk Acceptance オブジェクトまたは Simple Risk Acceptance ワークフローのいずれかを使用して検出事項に適用できる特別なステータスです。リスク受容は、脆弱性のある検出事項を直ちに修復せずに容認するという判断を正式に文書化し、運用できるようにするために使用します。
DefectDojo Pro には、リスクマネジメントの意思決定を拡張するための強化されたリスク受容機能が含まれています。主な機能は次のとおりです。
- クロスプロダクト リスク受容(Cross-Product Risk Acceptances): 単一のリスク受容を複数の製品にまたがって適用できるため、資産ポートフォリオ全体における同一または類似の検出事項のすべてのインスタンスを、1つのリスク受容オブジェクトにまとめることができます。
- 一括リスク受容管理(Bulk Risk Acceptance Management): 特定の脆弱性IDの検出事項をフィルタリング・検索し、それらがどの資産に属しているかに関わらず、すべての結果に一括でリスク受容を適用できます。
リスク受容済みの検出事項へのアクセス
サイドバーにはリスク受容用のセクションがあり、そのドロップダウンメニューには次の3つのサブセクションが含まれています。
- リスク受容済みの検出事項
- このセクションには、Full Risk Acceptance オブジェクトの一部として、または Simple Risk Acceptance ワークフローによってリスク受容済みとなった、すべての検出事項の一覧が表示されます。
- すべてのリスク受容
- このセクションには、すべての Full Risk Acceptance オブジェクトが時系列順に一覧表示されます。
- 新規リスク受容
- サイドバーでこのオプションをクリックすると、Full Risk Acceptance オブジェクトを作成するワークフローが開始されます。

リスク受容の作成
検出事項がリスク受容済みになると、以下が発生します。
- 検出事項のステータスは「アクティブ」ではなくなります。
- 検出事項のステータスが「リスク受容済み」に変更されます。
- 検出事項はメトリクスの集計対象外となりますが、元となったテスト内には引き続き表示されます。
検出事項をリスク受容済みにするには、2通りの方法があります。Full Risk Acceptance オブジェクトに追加する方法と、Simple Risk Acceptance ワークフローを使用する方法です。
Full Risk Acceptance
Full Risk Acceptance を使用すると、ユーザーは、資産・エンゲージメント・テストのいずれに由来するかに関わらず、複数の検出事項のリスクを1つのオブジェクトにまとめて受容できます。
組織のポリシーで正式な文書化されたリスク受容が求められている場合や、一定の日付が経過したらリスク受容を自動的に失効させたい場合は、Full Risk Acceptance が最適です。社内の意思決定プロセスを記録し、信頼できる情報源として機能させることができます。
Full Risk Acceptance ごとに、リスク受容へ以下のような追加のコンテキストが付与されます。
- リスク受容オブジェクトの名前
- リスク受容オブジェクトの所有者
- 検出事項の扱いに関するセキュリティ上の推奨事項および決定事項
- 推奨事項または決定事項に関連する証跡
- 推奨事項または決定事項に関する詳細
- 決定に伴うリスクを受容するユーザー
- 有効期限
- 期限が切れた際に検出事項のステータスを「アクティブ」に戻すかどうか
- 期限が切れた際にSLAを再開するかどうか
有効期限は Full Risk Acceptance オブジェクトに特有の機能で、リスク受容済みとなった検出事項を適切なタイミングで再検討できるようにします。リスク受容の期限が切れると、対象の検出事項はすべて再びアクティブに設定されます。
日付を指定しない場合は、システム設定ページの「デフォルトリスク受容 / デフォルトリスク受容有効期限日数」が使用されます。
Full Risk Acceptance の完了方法
Full Risk Acceptance オブジェクトは、次の3通りの方法で作成できます。
- サイドバーの 新規リスク受容 ボタンを使用する。
- 個別の検出事項にある リスク受容を追加 ボタンを使用する。
- テーブル内で検出事項(1件または複数)を選択した後に表示される リスク受容アクション ボタンをクリックする。
新規リスク受容(サイドバー)
サイドバーから新規リスク受容をクリックすると、新しい Full Risk Acceptance オブジェクトに関連するデータと詳細を設定できるページが開きます。次のページでは、そのオブジェクトに追加する検出事項をフィルタリングして選択できます。
リスク受容を追加(個別)
個別の検出事項を開いた状態で、右上のギアアイコンをクリックし、リスク受容を追加 を選択します。そこから、既存の Full Risk Acceptance オブジェクトに検出事項を追加するか、新しいオブジェクトを作成するかを選べます。

リスク受容アクション(テーブル)
テーブル内で検出事項(1件または複数)を選択した状態で、上部に表示される リスク受容アクション ボタンをクリックし、新規リスク受容オブジェクトに追加 または 既存のリスク受容オブジェクトに追加 のいずれかを選択して、必要な項目を入力します。
検出事項を一度に追加できるリスク受容は1つだけです。リスク受容アクションボタンがクリックできない場合、選択した検出事項のいずれかがすでに Full Risk Acceptance オブジェクトに追加されている可能性があります。

Full Risk Acceptance の編集
Full Risk Acceptance オブジェクトを作成した後は、オブジェクトの詳細を編集したり、リスク受容の証跡となるファイルをアップロードしたり、オブジェクトの右上にあるギアアイコンをクリックしてオブジェクト自体を削除したりできます。
同じメニューから、検出事項をオブジェクトに追加・削除することもできます。あるいは、個別の検出事項の横にある ⋮ ケバブメニューをクリックし、一括更新アクション をクリックして、Simple Risk Acceptance Status のドロップダウンメニューから リスク受容を取り消す を選択することでも、検出事項をオブジェクトから削除できます。
最後に、検出事項を Full Risk Acceptance オブジェクトに追加した後、そのオブジェクト自体を削除すると、含まれていた検出事項のステータスは自動的に「アクティブ」に戻ります。
Simple Risk Acceptance
Simple Risk Acceptance には、関連するメタデータや有効期限はありません。コンプライアンス上リスク受容済みの検出事項を追跡する必要はあるものの、対象の検出事項のステータスを追跡・変更するためのオブジェクトが特に必要ない場合に、最も適しています。
Simple Risk Acceptance はデフォルトでは有効になっていませんが、資産ビューの右上にあるギアアイコンをクリックした後、資産の設定内の「オプションフィールド」部分で切り替えることができます。

有効にすると、テストビュー内の検出事項テーブルから Simple Risk Acceptance を実行できるようになります。
Simple Risk Acceptance の完了方法
Simple Risk Acceptance のワークフローは、(サイドバーからアクセスできる)すべての検出事項テーブルからでも、特定のテスト内の検出事項テーブルからでも実行できます。両者の間でワークフローに違いはありません。
リスク受容したい検出事項を選択し、テーブル上部に表示される 一括更新アクション ボタンをクリックします。そこから、Simple Risk Acceptance Status のドロップダウンで リスクを受容 を選択します。検出事項は Simple Risk Acceptance によってリスク受容済みとなっているため、関連する Full Risk Acceptance オブジェクトは存在しません。リスク受容済みとなった検出事項は、サイドバーの リスク受容済みの検出事項 メニューからアクセスできます。

逆に、以前にリスク受容済みとした検出事項のリスクを取り消したい場合は、リスク受容を取り消す を選択します。検出事項が Simple Risk Acceptance によってリスク受容済みとなっている場合、それを Full Risk Acceptance オブジェクトに追加する前に、まずリスクを取り消す必要があります。
リスク受容の権限と可視性
リスク受容の可視性は、検出事項の可視性とは異なる最小権限によって制御されます。検出事項を閲覧できるユーザーが、その検出事項を含むリスク受容を自動的に閲覧できるわけではありません。
リスク受容アクションに必要な最小ロール
| アクション | 親資産(製品)における最小ロール |
|---|---|
| リスク受容の閲覧 | Writer |
| リスク受容の追加・編集 | Writer |
その他の資産レベルのアクションと合わせてリスク受容の権限を一覧化した、完全なロール別権限チャートについては、アクション権限チャート を参照してください。
リスク受容の失効と復元
失効したリスク受容は、リスク受容テーブル内の有効期限の横に 失効(Expired) と表示されるため、どのリスク受容が検出事項をもはや抑制していないかを一目で確認できます。
リスク受容のギアメニュー(テーブル内、または詳細ページ上)には、状況に応じて次のいずれかが表示されます。
- リスク受容を失効させる:現在有効なリスク受容に対して表示されます。有効期限を待たずに即座に失効し、対象の検出事項は 失効した検出事項を再アクティブ化 および 失効時にSLAを再開 の設定に従って再アクティブ化されます。
- リスク受容を復元する:すでに失効しているリスク受容に対して表示されます。対象の検出事項は再びリスク受容済みとなり、リスク受容フォームのデフォルト日数 設定の日数が経過すると失効します。
いずれの操作も、リスク受容の編集と同じ権限が必要であり、実行前に確認が求められます。デフォルトの期間ではなく特定の期間で復元したい場合は、復元アクションを使用するのではなく、有効期限を編集してください(詳細は以下を参照)。
リスク受容の有効期限を変更した場合
リスク受容の有効期限は、作成後いつでも編集できます。DefectDojo の挙動は、そのリスク受容が現在有効であるか、すでに失効しているかによって異なります。
有効なリスク受容の日付を編集する場合
リスク受容がまだ失効していない場合(有効期限が未来である、または期限を過ぎたばかりで定期的な失効処理ジョブがまだ処理していない場合)、日付の編集は単純です。
- 新しい日付がそのまま保存されます。ユーザーが
2027-01-15を選択した場合、リスク受容には2027-01-15が保存されます。 - 関連付けられた検出事項は、引き続きリスク受容済みのままです。
- リスク受容オブジェクトは有効なままです。
すでに失効したリスク受容の日付を先の日付に変更する場合
リスク受容がすでに失効している場合、すなわち定期的な失効処理ジョブがその失効処理を実行済みで、関連する検出事項がリスク受容の失効設定に従ってアクティブに戻され、リスク受容自体が失効状態にある場合、有効期限を未来の日付に編集すると、復元(reinstate) ワークフローがトリガーされます。
- リスク受容が復元され、失効状態ではなくなります。
- そのリスク受容に紐づいており、現在アクティブになっているすべての検出事項が再度受容されます(リスク受容済み/非アクティブに戻ります)。
- それらの検出事項のエンドポイントステータスは、再受容を反映するように更新されます。
- 紐づいているJiraの課題があれば、復元を記録したコメントが投稿されます。
保存される日付は、実際に入力した日付です。システム設定の リスク受容フォームのデフォルト日数(デフォルト:180)は、特定の日付を指定しなかった場合にのみ使用されます。たとえば 復元 アクションを使用した場合です。このアクションは有効期限を編集せずにリスク受容を復元するため、日付は本日+N日に設定されます。
日付を過去方向、または過去の日付に変更する場合
有効期限を、より早いものの依然として未来の日付に変更しても、特別な挙動はありません。リスク受容は有効なままとなり、新しい日付が保存されます。
有効期限を過去の日付に変更しても、編集フォームからただちにリスク受容が失効するわけではありません。次回の定期的な失効処理ジョブがこれを検知し、標準の失効処理(失効した検出事項を再アクティブ化 の設定に従って検出事項が再アクティブ化され、失効時にSLAを再開 が設定されていればSLAの再開が適用されます)を実行します。
APIで公開される情報
APIの利用者は、リスク受容オブジェクトの expiration_date、expiration_date_handled、expiration_date_warned フィールドを通じて、失効状態を確認できます。
expiration_dateは設定されている日付です。expiration_date_handledは、リスク受容が有効な間はnullであり、定期的な失効処理ジョブがその失効を処理するとタイムスタンプが設定されます。リスク受容が「失効」しているのは、まさにexpiration_date_handledが null 以外の値を持つ場合です。expiration_date_warnedは、システムが失効警告の通知を送信した際に設定されます。
復元が行われると、expiration_date_handled と expiration_date_warned はどちらも null に戻され、expiration_date には送信した日付、または新しい日付を指定せずに復元がトリガーされた場合は本日+N日の日付が保持されます。リスク受容の状態変化を監視するツールでは、expiration_date_handled フィールドを、「このリスク受容が現在失効しているかどうか」を示す標準的なフラグとして利用できます。
失効と復元は、expiration_date の編集を経由しなくても、直接実行できます。
POST /api/v2/risk_acceptance/{id}/expire/は、対象を即座に失効させます。すでに失効している場合は400が返されます。POST /api/v2/risk_acceptance/{id}/reinstate/は、失効したリスク受容を復元し、対象となる検出事項を再受容します。まだ失効していない場合は400が返されます。期間を指定するにはexpiration_dateを送信してください。指定しない場合は本日+N日が使用されます。
どちらのAPIも任意の reason パラメータを受け付けます。指定した場合、実行者とともにリスク受容へのメモとして記録されます。どちらも、リスク受容の編集と同じ権限が必要です。
リスク受容のベストプラクティス
Simple Risk Acceptance ワークフローを使って Full Risk Acceptance オブジェクト内の検出事項に影響を与えたり、その逆を行ったりすることは可能ですが、両方を同時に有効にするのではなく、どちらか一方の方式のみをデフォルトとして使うことが一般的に推奨されます。
たとえば、Full Risk Acceptance オブジェクトを標準の方式として使っている場合に、ある検出事項が Simple Risk Acceptance によってリスク受容済みになると、その検出事項を含むオブジェクトが存在しないために混乱が生じる可能性があります。同様に、通常は検出事項を Simple Risk Acceptance でリスク受容している場合に、一部の検出事項だけを Full Risk Acceptance オブジェクトに追加すると、他のほとんどの検出事項にはそのようなオブジェクトが存在しないため、同様の混乱を招く可能性があります。