監査ログ

DefectDojoはデータへの変更の監査証跡を記録します。追跡対象のオブジェクトはそれぞれ自動的に create(作成)、update(更新)、delete(削除)のイベントを記録し、リレーションシップ(多対多)テーブルは add(追加)と remove(削除)のイベントを記録します。

仕組み

監査トラッキングは、モデルごとに登録されたデータベーストリガーによって駆動されます。追跡対象の各オブジェクトについて、次の3種類のイベントが発生し得ます。

イベント種別発生タイミングアクション
InsertEvent新しいレコードが作成されたときCreate(作成)
UpdateEventレコードが変更されたとき——実際にフィールドの値が変わった場合のみUpdate(更新)
DeleteEventレコードが削除されたときDelete(削除)

多対多のリレーションシップテーブル(タグ、レビュアー、ファイアウォールIP範囲)は、addInsertEvent)と removeDeleteEvent)のみを追跡します。リレーションシップの行に「update」は存在しません。

すべてのイベントで記録される内容

  • Who(実行者) — リクエストコンテキストから取得した操作ユーザー。
  • When(日時) — タイムスタンプ。
  • Source IP(送信元IP) — X-Forwarded-For プロキシチェーンを考慮したリモートアドレス。
  • Before/after snapshot(変更前後のスナップショット) — レコードの全フィールド値。
  • Context / label(コンテキスト / ラベル) — 同一リクエストに由来するイベントをグループ化します。ラベル initial_backfill は、トラッキングが最初に有効化されたときにインポートされた過去のレコードを示します。

バックグラウンドジョブによって生成されたイベントは、発生元のリクエストのコンテキストへ結び付けられるため、非同期に完了した操作であっても、それを引き起こしたユーザーに正しく帰属します。

コア(オープンソース)— 追跡対象のアクション

オブジェクト作成更新削除備考
ユーザーpassword はスナップショットから除外されます
製品タイプ
製品
エンゲージメント
テスト
検出事項
検出事項グループ
検出事項テンプレート
リスク受容
エンドポイント
ロケーション
URL
通知Webhookheader_name / header_value は除外されます(機密情報のため)

コア — リレーションシップ(追加 / 削除)イベント

リレーションシップ追加削除
検出事項 → レビュアー
検出事項 → タグ
検出事項 → 継承タグ
製品 → タグ
エンゲージメント → タグ
エンゲージメント → 継承タグ
テスト → タグ
テスト → 継承タグ
エンドポイント → タグ
エンドポイント → 継承タグ
検出事項テンプレート → タグ
アプリ分析(Technology) → タグ
Objects/Product → タグ

Pro — 追跡対象のアクション

オブジェクト作成更新削除備考
拡張検出事項検出事項に対応するPro版
ルールルールエンジン
ルールアクション
ルールアクション条件
ルールフィルターエントリ
ルールエンジン操作
ルールエンジン操作メッセージ
スケジュールタスク
スケジュールタスク実行
緩和ポリシー
調整可能な設定システム設定の変更
フィーチャーフラグの状態フラグの切り替え + システムピン留め
フィーチャーフラグ定義メタデータ / レジストリ同期
クラウドファイアウォールlocked フィールドは除外されます
ファイアウォールIPマスク

Pro — RBAC / 権限

オブジェクト作成更新削除
グループ
ロール
グループメンバーシップ
グローバルロール
製品グループ割り当て
製品タイプグループ割り当て
製品メンバー
製品タイプメンバー

Pro — リレーションシップ(追加 / 削除)イベント

リレーションシップ追加削除
クラウドファイアウォール → IP範囲

設定と保持期間(オンプレミス制御)

設定環境変数デフォルト効果
監査ログを有効化DD_ENABLE_AUDITLOGTrueFalse の場合、すべての履歴トリガーが無効化され、イベントは記録されません
保持期間DD_AUDITLOG_FLUSH_RETENTION_PERIOD-1(フラッシュしない)保持する履歴の月数。それより古いイベントはフラッシュジョブによってバッチ単位で削除されます
フラッシュのバッチサイズDD_AUDITLOG_FLUSH_BATCH_SIZE1000クリーンアップ時にバッチごとに削除される行数
フラッシュの最大バッチ数DD_AUDITLOG_FLUSH_MAX_BATCHES1001回のフラッシュ実行あたりのバッチ数の上限

補足と制限事項

  • 機密情報は決して記録されません。 ユーザーのパスワードと通知Webhookのヘッダー値は、イベントのスナップショットから明示的に除外されます。
  • 更新は実際に変更があった場合のみ記録されます。 フィールドの値を変更しない保存では更新イベントは発生しません。last_updated のような自動管理フィールドのみの変化ではイベントは発生しません。
  • 認証イベントはここには記録されません。 対象はデータの変更のみです。ログイン、ログアウト、ログイン失敗の活動は別途扱われ、この監査ログには含まれません。