エンゲージメント (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に連携している場合)
  • エンゲージメント内の過去のテストの履歴データ

エンゲージメントへのアクセス

エンゲージメントにはサイドバーからアクセスできます。サブメニューから、アクティブなエンゲージメントとすべてのエンゲージメントにアクセスできるほか、新しいエンゲージメントを作成するオプションも利用できます。

image

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

image

権限

エンゲージメントは、オブジェクト階層においてアセットの下、テストの上に位置します。そのため、アセットへのアクセス権があれば、そのアセット内のすべてのエンゲージメントへのアクセス権が自動的に付与されます。エンゲージメントは独自のアクセス制御リストを持ちません。

エンゲージメントの操作

エンゲージメントの作成

エンゲージメントを作成する前に、まずそれを格納するアセットを作成しておく必要があります。

エンゲージメントを作成する方法はいくつかあります。

  • サイドバーのManageセクションにあるエンゲージメントのドロップダウンから
    • New Engagementフォームに入力する際、エンゲージメントを紐づけるアセットを選択する必要があります

image

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

image

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

image

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

image

すべてのエンゲージメントには、以下のフィールドを定義する必要があります。

  • タイプ(インタラクティブまたはCI/CD)
  • 一意の名前
  • 目標開始日と終了日
    • これにより、カレンダーセクションでのエンゲージメントの表示が決まります
  • アセット
  • ステータス

エンゲージメントのステータス

エンゲージメントには、作成時にさまざまなステータスを設定できます。ステータスは、エンゲージメントの設定から後で変更することもできます。

エンゲージメントには、以下のいずれかのステータスを設定できます。

  • 未開始
  • ブロック中
  • キャンセル済み
  • 完了
  • 進行中
  • 保留中
  • 予定済み
  • リソース待ち

エンゲージメントのステータスを「完了」に変更すると、テストの追加やスキャンのインポートなど、ほとんどの書き込み操作が利用できなくなるか、非表示になります。それ以外のステータスは、エンゲージメントの機能に実質的な影響を与えず、主にフィルタリングや情報提供の目的で使用されます。

エンゲージメントの編集

エンゲージメントは、歯車メニュー内のEdit Engagementをクリックすることで編集できます。同じメニューには、All Assetsビューでアセットの左側にある⋮ kebabメニューをクリックすることでもアクセスできます。

編集可能な以降のフィールドはすべて、エンゲージメントの作成時にも利用できます。

image

エンゲージメントのコピー

エンゲージメントの設定内で「Copy Engagement」を選択することで、エンゲージメントを簡単に複製できます。これにより、メタデータ、テスト、およびその中の検出事項を含む、元のエンゲージメントの完全なコピーが親アセット内に作成されます。

エンゲージメントのクローズ

エンゲージメントは、エンゲージメントの設定内でClose Engagementを選択することでクローズされます。クローズすると、エンゲージメントのステータスは「完了」に変更されます。ただし、テストの追加やスキャンのインポートなど、ほとんどの書き込み操作は引き続き利用可能です。

エンゲージメントをクローズしても、そのエンゲージメント内のテストにおける検出事項のステータスは変更されません。検出事項は、それぞれのライフサイクルに従ってオープン、緩和済み、またはリスク受容済みのままとなり、閲覧やレポート作成のためにアクセス可能な状態を維持します。

エンゲージメントがJira Epicにリンクされている場合(**Jira連携:エンゲージメントEpicマッピングの有効化**を参照)、エンゲージメントをクローズすると、連携先のJiraスペース内の関連するJira Epicをクローズする非同期タスクがトリガーされます。

エンゲージメントの再オープン

エンゲージメントがクローズされている場合、その設定内でReopen Engagementを選択することで再オープンできます。これにより、エンゲージメントは再びアクティブになり、ステータスは「進行中」に戻ります。

期限切れのエンゲージメント

エンゲージメントは、目標終了日を過ぎると期限切れになります。

エンゲージメントのクローズや削除と比較して、エンゲージメントの期限切れはその機能に直接的な影響を与えず、主に監視/通知の仕組みとして機能します。

期限切れになると、エンゲージメントの横に「Overdue」タグが表示されますが、エンゲージメントの機能が制限されることはありません。エンゲージメントのステータスは引き続き「進行中」として表示されます。

デフォルトでは有効になっていませんが、システム設定内には、エンゲージメントが一定日数期限切れになった時点で自動的にクローズするオプションがあります。

image

エンゲージメントの削除

エンゲージメントの削除は、エンゲージメントの設定から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設定**を参照してください。