検出範囲の評価にイベント シミュレーションを使用する

このガイドは、イベント シミュレーションを使用して、現実的な脅威シーケンスをライブ取り込みパイプラインにプログラムで配信したい検出エンジニアリング チームと SOC チームを対象としています。イベント シミュレーションは、Google Security Operations に直接組み込まれた脅威シミュレーションと検出範囲の評価フレームワークです。イベント シミュレーションは、検出エンジニアリング エージェント(DEA)アーキテクチャの基盤となる機能として、運用 SOC ワークフローを維持しながら、テレメトリーの取り込みと正規化からマルチイベントの関連付けとアラートまで、検出ライフサイクルを検証します。

Google SecOps MCP ツールを AI アシスタンス(Gemini や Claude Code など)に接続することで、イベント シミュレーションにより検出エンジニアリング ライフサイクルが自動化されます。具体的には、未加工の脅威レポートの取り込み、脅威戦術を実用的な脅威検出機会(TDO)に構造化、現実的な統合データモデル(UDM)テレメトリーの合成、単一イベント、マルチイベント、複合ルールにわたる既存の YARA-L 2.0 ルールのカバレッジの評価、特定されたセキュリティ ギャップを解消するための新しい検出ルールの作成などです。

主なユースケース:

イベント シミュレーションと検出エンジニアリング エージェント(DEA)は、次のコア ワークフローをサポートしています。

  • ライブ パイプラインの取り込みと正規化のテスト: 合成の Unified Data Model(UDM)テレメトリーをライブ取り込みパイプライン、コンテキスト エンリッチメント モジュール、エンティティ グラフを介して直接プログラムでストリーミングし、エンドツーエンドの検出準備を完了します。
  • 継続的な脅威カバレッジと回帰検証: 特定の攻撃者の戦術、手法、手順(TTP)に対してマネージド ルールとカスタム YARA-L 2.0 ルールを評価し、本番環境へのデプロイ前にルールセット全体で自動化された単体テストと継続的な回帰テストを確立します。
  • 合成テレメトリーの生成: 複雑な攻撃チェーン(ウェブ アプリケーションの悪用、認証情報のアクセス、ラテラル ムーブメントなど)をシミュレートするスキーマ有効な UDM イベントを生成し、実際の運用環境でルールをテストします。

主な特典と価値提案

  • プロアクティブなポスチャーと脅威の検証: 実際のインシデントが発生する前に、新しく公開された脆弱性と脅威アクターの行動に対して YARA-L 2.0 ルールをテストします。
  • 直接合成と取り込みの保証: ライブの Google SecOps 取り込みパイプライン(ImportEvents)を介して流れる脅威インテリジェンス テキストから、スキーマ有効な UDM イベントを直接合成し、完全な正規化、フィールドの調整、コンテキストの拡充を行います。
  • テレメトリーと本番環境の安全性の分離: イベント シミュレーションによって生成された合成イベントには、シミュレーション メタデータ(SIMULATION 取り込みラベル)がタグ付けされ、検出結果には INCLUDES_SIMULATION_DATA のタグが付けられます。シミュレートされたデータからの検出は、本番環境のケース、プレイブック、リスク分析(RBA)ストリーム、アラート トリアージ ダッシュボードから自動的に除外されます。

イベント シミュレーションのコンセプトとアーキテクチャを理解する

イベント シミュレーションと検出エンジニアリング エージェント(DEA)フレームワークの次のコア コンポーネントは、デプロイに不可欠です。

  • 脅威検出の機会(TDO): 脅威インテリジェンス レポートまたは自然言語の説明から抽出された特定の攻撃者の TTP を特定、優先順位付け、分類する単体テストとして機能する形式化されたデータモデル。TDO 識別子は、厳格な形式要件(t01t02 など、正規表現 ^[a-zA-Z]\d{2}$ と一致)に従います。
  • 合成 UDM イベント: Google SecOps 統合データモデル(UDM)スキーマに厳密に準拠してフォーマットされた、マシン生成のログイベント。これらのイベントは、ImportEvents を使用して検出ルールのロジックをテストするために必要な特定のアタッカー アクションをシミュレートします。
  • シミュレーションのラベル付けとアラートのタグ付け: 合成イベントには取り込みラベル(metadata.ingestion_labels["SIMULATION"])が含まれます。Collection proto では、シミュレートされたデータから生成された検出は、tags の下に INCLUDES_SIMULATION_DATA でマークされます。検出メタデータ proto フィールドには、simulated_event_count(検出に寄与するシミュレートされたイベントの総数)と simulated_event_names(寄与するイベントの SIMULATION ラベル値のセット)が含まれます。
  • データの可視性と検索の抑制: 標準の Google SecOps UDM 検索では、シミュレーション ラベルの付いたイベントはデフォルトで抑制されます。検索クエリと UI ビューでは、simulated_data_visibility 構成パラメータまたはユーザー設定の切り替えを使用して、シミュレートされたデータを明示的に含めることができます。
  • 長時間実行オペレーション(LRO): API HTTP タイムアウトが発生することなく、オンデマンド ルール実行バッチをオーケストレートする非同期バックエンド実行メカニズム(evaluate_rule_coverage_long_running)。

始める前に

イベント シミュレーションは、基盤となる環境の前提条件、IAM 権限、サーバー設定を Detection Engineering Agent ツールキットと共有します。開始する前に、次の前提条件を満たしていることを確認してください。

合成テレメトリーの挿入方法

合成テレメトリーは、MCP エージェント ツールキットまたは Chronicle API の直接呼び出しを使用して Google SecOps に挿入されます。

  1. MCP サブエージェントの呼び出し: ターゲットの脅威検出機会(TDO)ID と動作仕様を使用して generate_synthetic_events ツールを呼び出します。
  2. Chronicle API エンドポイント: ImportEvents REST API エンドポイント(POST /v1alpha/projects/{project}/locations/{location}/instances/{instance}/events:import)を使用して、合成 UDM イベントをプログラムでストリーミングします。
  3. シミュレーション ラベル付け: ImportEvents API を直接呼び出す場合、呼び出し元は、キー "SIMULATION" と一意のシミュレーションまたはテスト実行識別子を含む metadata.ingestion_labels を、リクエスト ペイロードの値として手動で含める必要があります(例: "key": "SIMULATION", "value": "TEST123""t01")。API はシミュレーション ラベルを自動的に入力しません。

UDM 取り込み呼び出しの例

HTTP リクエスト:

POST https://chronicle.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/events:import

リクエスト本文:

{
  "events": [
    {
      "metadata": {
        "event_type": "PROCESS_LAUNCH",
        "event_timestamp": "2026-08-05T20:00:00Z",
        "ingestion_labels": [
          {
            "key": "SIMULATION",
            "value": "TEST123"
          }
        ]
      },
      "principal": {
        "user": {
          "userid": "victim_user"
        }
      },
      "target": {
        "process": {
          "command_line": "powershell.exe -ExecutionPolicy Bypass -File dump.ps1"
        }
      }
    }
  ]
}

イベント シミュレーションでは、ImportEvents を使用して合成 UDM イベントを直接挿入し、UDM の正規化、コンテキストの拡充、ルール検出を評価します。未加工のログ解析は、Detection Engineering Agent(DEA)ツール内の合成イベント生成中にテストされます。

合成テストデータのユーザー設定を構成する

UI、API、MCP ツールで Google SecOps の合成テストイベントとシミュレートされたアラートを表示するには、インターフェースに応じて可視性を構成します。

Google SecOps コンソール

SIEM 検索ページまたは UI コンソールで合成イベントを表示するには:

  1. Google SecOps コンソールで、ナビゲーション バーのプロフィール アバターをクリックし、[ユーザー設定] を選択します。
  2. [Data Visibility] に移動します。
  3. [合成テストデータを表示する] を [オン] に設定します。
  4. [保存] をクリックします。

Chronicle API

プログラムによる API クエリの場合は、Chronicle API を使用して UDM 検索、ルール、検出エンドポイントをクエリするときに simulated_data_visibility = "SIMULATED_DATA_INCLUDED" を指定します。

{
  "query": "metadata.event_type = \"USER_LOGIN\"",
  "simulated_data_visibility": "SIMULATED_DATA_INCLUDED"
}

サポートされている simulated_data_visibility パラメータの列挙型の値:

  • SIMULATED_DATA_EXCLUDED(デフォルト): シミュレーション ラベルの付いたイベントとアラートを抑制します。
  • SIMULATED_DATA_INCLUDED: クエリ結果で本番環境データと合成テストデータの両方を返します。

Google SecOps MCP サーバー

MCP クライアント(Gemini CLI や AntiGravity など)を使用して Google SecOps とやり取りする場合は、ワークスペース コンテキスト ファイル(Gemini.md または settings.json)でテナント全体のシミュレーションの可視性を構成します。

GoogleSecOps MCP サーバーを使用する場合は、すべての UDM 検索、ルール評価、検出クエリツールに simulated_data_visibility = "SIMULATED_DATA_INCLUDED" を設定します。

ダウンストリーム システムの分離について

Google SecOps 全体でテストデータが適切に処理されるように、イベント シミュレーションでは、ダウンストリーム コンポーネントに対して明確な分離境界が適用されます。

システムまたは機能 合成データの処理 隔離メカニズム
検出とアラートのストア 分離され、タグ付けされている Collection proto では、シミュレートされたテレメトリーから得られた検出結果は tags の下に INCLUDES_SIMULATION_DATA でマークされ、検出メタデータ proto フィールド simulated_event_countsimulated_event_names が含まれます。simulated_data_visibility = "SIMULATED_DATA_INCLUDED" がリクエストされない限り、標準検出の読み取り API とリスト API から抑制されます。
UDM 検索とダッシュボード デフォルトでは非表示 simulated_data_visibility = "SIMULATED_DATA_INCLUDED" が指定されていない限り、フィルタされます。
ケースとインシデントのトリアージ 含まない シミュレーション タグを含む検出は、自動ケース作成からバイパスされます。
ハンドブックと SOAR 自動化 含まない 自動化された SOAR プレイブックは、シミュレートされたアラートではトリガーされません。
リスク分析(RBA) 含まない ストリーミング リスクスコア集計パイプラインは、シミュレーション ラベル付きのイベントをドロップします。
脅威ハンティング エージェント(THA) 含まない 脅威ハンティング データセットのクエリは、シミュレーション ラベルの付いたテレメトリーを自動的に抑制します。

エージェント型スイートとツールの機能

イベント シミュレーションでは、Google SecOps MCP サーバーによって公開されたサブエージェント ツールの機能を利用します。使用可能なサブエージェント ツール(generate_threat_detection_opportunitygenerate_synthetic_eventsevaluate_rule_coverage_long_runningget_operationgenerate_rulescreate_rule など)、キー入力、出力スキーマの詳細については、Detection Engineering エージェントを使用して脅威のカバレッジを評価するをご覧ください。

検出エンジニアリングのライフサイクルとワークフローを理解する

エンドツーエンドのイベント シミュレーション検出エンジニアリング ワークフローは、構造化されたマルチステージ ライフサイクルに従います。

  1. Intel 処理とテレメトリーの取り込み: 未加工の脅威インテリジェンス テキストを generate_threat_detection_opportunity に渡し、構造化された TDO(t01t02 など)を抽出し、プリフライト タイムスタンプ シフトを適用し、generate_synthetic_events を呼び出して、ライブの Google SecOps 取り込みパイプライン(ImportEvents)を介して SIMULATION ラベル付きの UDM ログをストリーミングします。
  2. 非同期カバレッジ評価: evaluate_rule_coverage_long_running を実行して、合成テレメトリー全体で YARA-L 2.0 ルールのカバレッジを評価し、完了するまで get_operation をポーリングしてルール一致マトリックスを取得します。
  3. ギャップの修正とルールのライフサイクル管理: 未検出の TDO がある場合は generate_rules を呼び出して、検証済みの YARA-L 2.0 ルールの下書きを作成し、create_rule を使用してレビュー済みのルールを本番環境にデプロイします。

検出ライフサイクルの各ステージにおける詳細なツール呼び出しペイロードと完全なコード例については、Detection Engineering エージェントを使用して脅威のカバレッジを評価するをご覧ください。

トラブルシューティング

このセクションでは、トラブルシューティングに関するよくある質問とその回答を紹介します。

標準の Google SecOps UDM 検索では、SOC の運用上の衛生状態を維持するために、SIMULATION 取り込みラベルを含むイベントが抑制されるように設計されています。UDM 検索または UI コンソールで合成イベントを表示するには、[ユーザー設定] で [合成テストデータを表示する] が有効になっているか、クエリ リクエストで simulated_data_visibility = "SIMULATED_DATA_INCLUDED" が設定されていることを確認します。

Q: シミュレートされたデータからの検出が SOC アナリストにアラートを送信しないようにするにはどうすればよいですか?

ルールが合成イベントでトリガーされると、バックエンド コンパイラは結果の検出に INCLUDES_SIMULATION_DATA のタグを付けます。このタグが付いた検出結果は、デフォルトで本番環境のケース、プレイブック、リスク分析(RBA)、アラート トリアージ ダッシュボードから除外されます。

Q: evaluate_rule_coverage_long_running が合成イベントに対して 0 件の一致を返したのはなぜですか?

合成イベントのタイムスタンプが 1 時間のローリング実行ウィンドウ([StartTime - 1 hour, StartTime])内にあることを確認します。TDO ID が必要な正規表現(^[a-zA-Z]\d{2}$、例: t01)に準拠していることを確認します。

Q: アトミック インジケーター(IP アドレス、ドメイン名、ファイルハッシュ)と動作ルールはどのように処理する必要がありますか?

静的 IP アドレスやハッシュ値を YARA-L 2.0 検出ルールに直接ハードコードするのではなく、Google SecOps IOC マッチングまたはデータテーブルを使用してアトミック指標を管理します。YARA-L 2.0 は、動作パターンと TTP の関連付けに使用します。

Q: TDO カバレッジ評価呼び出しの最大バッチサイズはいくつですか?

パフォーマンスを最適化し、API Gateway パラメータに準拠するため、バッチ カバレッジ評価リクエストは、evaluate_rule_coverage_long_running 呼び出しあたり最大 3 つの TDO または 40 個の合成イベントに制限されます。

さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。