エンゲージメント (Pro)
組織 → アセット → エンゲージメント → テスト → 検出事項
概要
DefectDojoのアセット階層において、エンゲージメントは、特定のアセット内で関連するテストのグループを表す、期間またはパイプラインに紐づくコンテナです。定期的であれ一度限りであれ、計画されたテスト作業がある場合、エンゲージメントはその関連結果すべてを保存する場所を提供します。
エンゲージメントの例には以下が含まれます。
- 単発のペネトレーションテスト
- 毎月または四半期ごとの定期スキャン
- バグバウンティのレビュー期間
- CI/CDパイプラインの実行(各パイプラインを個別のエンゲージメントとして扱うチームの場合)
- コードリリースサイクル(例:「v4.2リリースセキュリティレビュー」)
エンゲージメントタイプ
DefectDojoは、インタラクティブとCI/CDという2つのエンゲージメントタイプをサポートしています。これらのタイプは、テストが通常どのように作成され、スキャン結果がどのようにインポートされるかを決定します。
インタラクティブエンゲージメントは、通常エンジニアによって実行されます。インタラクティブエンゲージメントは、自動テスト、人間のテスター、またはアプリケーションの機能と「インタラクト」する何らかの活動を使用して、実行中のアプリケーションをテストすることに焦点を当てています。
CI/CDエンゲージメントは、CI/CDパイプラインとの自動連携のためのものです。CI/CDエンゲージメントは、リリースプロセスのステップによってトリガーされる自動アクションとしてデータをインポートすることを目的としています。
| カテゴリ | インタラクティブエンゲージメント | CI/CDエンゲージメント |
|---|---|---|
| 主な用途 | 手動またはアドホックなセキュリティテスト | パイプライン内での自動化された定期的なセキュリティテスト |
| 期間 | 期間限定で有限 | 潜在的に無期限 |
| 頻度 | 定期的または単発 | 継続的またはコミットごと |
| ワークフロー | 人間のテスターがツールを実行 → 結果を手動でインポート | パイプラインがツールを実行 → 結果を自動的にDefectDojoにプッシュ |
| 結果のインポート方法 | UIまたはCLI経由での手動アップロード | 自動化によるAPI駆動のインポート(例:CLI、コネクタ、cronジョブ、パイプラインスクリプト) |
| 典型的なテストタイプ | ペネトレーションテスト、レッドチーム演習、手動評価 | 静的解析、依存関係スキャン、コンテナスキャン |
エンゲージメントデータ
テスト活動を整理するコンテナとして、エンゲージメントはさまざまなデータを保存または追跡できます。
- 目標開始日と終了日
- 説明とスコープに関するメモ
- ステータス(進行中、計画済み、完了など)
- 担当者/リード
- 関連するテスト(例:スキャン、ペネトレーションテスト、手動テストなど)
- 検出事項と検出事項のタイプ(例:アクティブ、緩和済み、リスク受容済み、重複など)
- 脅威モデルまたはリスク受容情報
- タグ
- ファイルとメモ
- Jiraプロジェクト設定
- 環境の詳細(例:ステージング環境か本番環境か)
- ビルドID(CI/CDに連携している場合)
- エンゲージメント内の過去のテストの履歴データ
エンゲージメントへのアクセス
エンゲージメントにはサイドバーからアクセスできます。サブメニューから、アクティブなエンゲージメントとすべてのエンゲージメントにアクセスできるほか、新しいエンゲージメントを作成するオプションも利用できます。

別の方法として、アセット内のエンゲージメントには、アセットのビュー下部にあるウィンドウからアクセスすることもできます。

権限
エンゲージメントは、オブジェクト階層においてアセットの下、テストの上に位置します。そのため、アセットへのアクセス権があれば、そのアセット内のすべてのエンゲージメントへのアクセス権が自動的に付与されます。エンゲージメントは独自のアクセス制御リストを持ちません。
エンゲージメントの操作
エンゲージメントの作成
エンゲージメントを作成する前に、まずそれを格納するアセットを作成しておく必要があります。
エンゲージメントを作成する方法はいくつかあります。
- サイドバーのManageセクションにあるエンゲージメントのドロップダウンから
- New Engagementフォームに入力する際、エンゲージメントを紐づけるアセットを選択する必要があります

- アセットビューの右上隅にある歯車アイコンから

- アセット内のエンゲージメント一覧にある「+ New Engagement」ボタンから

- アセット内にまだエンゲージメントを作成していない場合は、スキャンのインポート中に作成することもできます。

すべてのエンゲージメントには、以下のフィールドを定義する必要があります。
- タイプ(インタラクティブまたはCI/CD)
- 一意の名前
- 目標開始日と終了日
- これにより、カレンダーセクションでのエンゲージメントの表示が決まります
- アセット
- ステータス
エンゲージメントのステータス
エンゲージメントには、作成時にさまざまなステータスを設定できます。ステータスは、エンゲージメントの設定から後で変更することもできます。
エンゲージメントには、以下のいずれかのステータスを設定できます。
- 未開始
- ブロック中
- キャンセル済み
- 完了
- 進行中
- 保留中
- 予定済み
- リソース待ち
エンゲージメントのステータスを「完了」に変更すると、テストの追加やスキャンのインポートなど、ほとんどの書き込み操作が利用できなくなるか、非表示になります。それ以外のステータスは、エンゲージメントの機能に実質的な影響を与えず、主にフィルタリングや情報提供の目的で使用されます。
エンゲージメントの編集
エンゲージメントは、歯車メニュー内のEdit Engagementをクリックすることで編集できます。同じメニューには、All Assetsビューでアセットの左側にある⋮ kebabメニューをクリックすることでもアクセスできます。
編集可能な以降のフィールドはすべて、エンゲージメントの作成時にも利用できます。

エンゲージメントのコピー
エンゲージメントの設定内で「Copy Engagement」を選択することで、エンゲージメントを簡単に複製できます。これにより、メタデータ、テスト、およびその中の検出事項を含む、元のエンゲージメントの完全なコピーが親アセット内に作成されます。
エンゲージメントのクローズ
エンゲージメントは、エンゲージメントの設定内でClose Engagementを選択することでクローズされます。クローズすると、エンゲージメントのステータスは「完了」に変更されます。ただし、テストの追加やスキャンのインポートなど、ほとんどの書き込み操作は引き続き利用可能です。
エンゲージメントをクローズしても、そのエンゲージメント内のテストにおける検出事項のステータスは変更されません。検出事項は、それぞれのライフサイクルに従ってオープン、緩和済み、またはリスク受容済みのままとなり、閲覧やレポート作成のためにアクセス可能な状態を維持します。
エンゲージメントがJira Epicにリンクされている場合(**Jira連携:エンゲージメントEpicマッピングの有効化**を参照)、エンゲージメントをクローズすると、連携先のJiraスペース内の関連するJira Epicをクローズする非同期タスクがトリガーされます。
エンゲージメントの再オープン
エンゲージメントがクローズされている場合、その設定内でReopen Engagementを選択することで再オープンできます。これにより、エンゲージメントは再びアクティブになり、ステータスは「進行中」に戻ります。
期限切れのエンゲージメント
エンゲージメントは、目標終了日を過ぎると期限切れになります。
エンゲージメントのクローズや削除と比較して、エンゲージメントの期限切れはその機能に直接的な影響を与えず、主に監視/通知の仕組みとして機能します。
期限切れになると、エンゲージメントの横に「Overdue」タグが表示されますが、エンゲージメントの機能が制限されることはありません。エンゲージメントのステータスは引き続き「進行中」として表示されます。
デフォルトでは有効になっていませんが、システム設定内には、エンゲージメントが一定日数期限切れになった時点で自動的にクローズするオプションがあります。

エンゲージメントの削除
エンゲージメントの削除は、エンゲージメントの設定からDelete Engagementを選択することで実行できます。この操作は取り消せません。
エンゲージメントを削除すると、以下も削除されます。 エンゲージメントに関連付けられたすべてのテスト それらのテスト内のすべての検出事項 リンクされているJira Epicマッピング(Epic自体はJira上に残りますが、DefectDojoとJiraの間のリンクは削除されます) エンゲージメントに関連付けられたすべてのメモとファイルアップロード
監査目的のため、完了したエンゲージメントは削除するのではなく、クローズすることを推奨します。
| 操作 | 結果 | 元に戻せるか |
|---|---|---|
| クローズ | 非アクティブとしてマークされる。データは残る。再オープン可能 | はい(再オープン) |
| 期限切れ | 視覚的な警告のみ。オプションで自動クローズ。通知あり | 該当なし |
| 削除 | エンゲージメント、テスト、検出事項、メモ、ファイル、およびJira Epicマッピングを完全に削除(EpicはJiraに残る) | いいえ |
Jira連携
エンゲージメントは連携先のJiraスペースにリンクでき、エンゲージメント内の検出事項をJiraにIssueとしてプッシュできるようになります。Jiraの設定に関する完全なガイドについては、**DefectDojoとJiraの連携**を参照してください。
エンゲージメントEpicマッピング
製品のJira設定でEnable Engagement Epic Mappingがチェックされている場合、エンゲージメントはJiraにEpicとしてプッシュされます。エンゲージメント内の検出事項は、そのEpicの下に子Issueとしてプッシュされ、DefectDojoのエンゲージメント → 検出事項の階層構造が、JiraのEpic → Issue構造として再現されます。
この設定の詳細については、**エンゲージメントEpicマッピングの有効化**を参照してください。
エンゲージメントレベルのJira設定
デフォルトでは、エンゲージメントは親アセット(製品)からJira設定を継承します。ただし、個々のエンゲージメントでこれらの設定を上書きし、別のJira設定を使用することもできます。以下の設定はエンゲージメントごとにカスタマイズできます。
- Project Key — 検出事項を別のJiraスペースにルーティングします
- Issue Template — このエンゲージメントから作成されるIssueに別のテンプレートを使用します
- Custom Fields — 別のカスタムフィールドマッピングを適用します
- Jira Labels — エンゲージメント固有のラベルでIssueにタグ付けします
- Default Assignee — Issueを別のチームメンバーに割り当てます
これらの設定には、Edit Engagementページからアクセスできます。詳細については、**エンゲージメントレベルのJira設定**を参照してください。