高度な BigQuery エクスポートでデータをストリーミングする

以下でサポートされています。

このドキュメントでは、Advanced BigQuery Export機能を使用して、BigQuery で Google SecOps データにアクセスして使用する方法について説明します。Enterprise Plus をご利用のお客様は、この機能を使用して、フルマネージドのストリーミング データ パイプラインを介してセキュリティ データにほぼリアルタイムでアクセスできます。この機能は、セキュリティ オペレーションにおけるデータ レイテンシという重要な課題の解決に役立ち、脅威の検出と対応をより迅速かつ効果的に行うことができます。

始める前に

資格要件と必要な操作を定義する次の点を確認してください。

  • Enterprise Plus をご利用のお客様のみ: この機能は、Google SecOps Enterprise Plus をご利用のお客様のみが対象です。その他のすべてのお客様は、セルフマネージド BigQuery プロジェクトにエクスポートするをご覧ください。
  • 機能の有効化が必要: この機能はリクエストに応じて有効になります。組織の Google SecOps インスタンスで初期構成が必要になる場合があります。必要に応じて、Google SecOps の担当者に連絡して、機能が有効になっていることを確認します。
  • データ移行: この機能を有効にすると、Google マネージド BigQuery プロジェクトへのエクスポートで説明されているように、既存の Google マネージド BigQuery プロジェクトへのエクスポートに加えて、Google SecOps インスタンスの新しい BigQuery テナント プロジェクトへのデータのエクスポートが開始されます。この二重運用により、中断することなく新機能に移行できます。アカウントの古いエクスポート パイプラインが無効になる前に通知が届きます。
  • VPC Service Controls: 高度な BigQuery エクスポートは、VPC Service Controls の境界内で動作できます。詳細については、VPC Service Controls を構成するをご覧ください。
  • 顧客管理の暗号鍵(CMEK): Google SecOps インスタンスで CMEK を有効にしているお客様は、高度な BigQuery エクスポートを利用できます。詳細については、Google SecOps の CMEK をご覧ください。VPC Service Controls で CMEK を使用する場合は、Google SecOps 用に VPC Service Controls を構成するで推奨事項と手順をご覧ください。

機能の概要

Advanced BigQuery Export は、Unified Data Model(UDM)イベント、ルール検出、エンティティ グラフ、セキュリティ侵害インジケーター(IoC)一致など、重要な Google SecOps データセットを安全な Google 管理の BigQuery プロジェクトで自動的にプロビジョニングして管理します。このデータには、BigQuery のリンクされたデータセットを介して安全な読み取り専用アクセス権が付与されます。このデータセットは、独自の Google Cloud プロジェクトに直接表示されます。この機能を使用すると、セキュリティ データをローカルに保存されているかのようにクエリできますが、データ パイプラインやストレージの管理オーバーヘッドは発生しません。

Google SecOps は、次のカテゴリのセキュリティ データを BigQuery にエクスポートします。

  • UDM イベント レコード: お客様が取り込んだログデータから作成された UDM レコード。これらのレコードにはエイリアス情報が追加されます。
  • ルールの一致(検出): ルールが 1 つ以上のイベントと一致するインスタンス。
  • IoC の一致: IoC フィードに一致するイベントのアーティファクト(ドメイン、IP アドレスなど)。これには、グローバルなフィードとお客様固有のフィードからの一致が含まれます。
  • 取り込み指標: 取り込まれたログ行の数、ログから生成されたイベントの数、ログが解析できなかったことを示すログエラーの数などの統計情報。
  • エンティティ グラフとエンティティの関係: エンティティとその関係に関する説明。

主なメリット

Advanced BigQuery Export の主なメリットは次のとおりです。

  • ほぼリアルタイムのデータの更新速度: ストリーミング アーキテクチャにより、取り込みから数分以内にセキュリティ データをクエリできるようになります。UDM イベント、ルール検出、IoC 一致は、5 ~ 10 分の遅延で利用できます。
  • シンプルで予測可能な費用モデル: Google SecOps は、マネージド BigQuery プロジェクト内のすべてのデータの取り込みとストレージの費用をカバーします。組織が負担するのは、クエリの実行時に発生する BigQuery 分析費用のみです。
  • メンテナンス不要のデータアクセス: 基盤となるインフラストラクチャは Google によってフルマネージドされるため、チームはデータ エンジニアリングではなくデータ分析に集中できます。
  • データの完全性と重複除去: セキュリティ データは、最初の取り込み後に頻繁に更新または再エンリッチされます。この機能では、きめ細かいデータ操作言語(DML)マージを使用して、レコードをその場で更新します。複雑な SQL 重複除去ルーチンを記述せずに、クリーンで重複除去されたデータを受け取ります。
  • シームレスな MSSP サポート(ハブアンドスポーク): マネージド セキュリティ サービス プロバイダ(MSSP)は、単一の集中型ハブ プロジェクトから顧客のリンクされたデータセットをプログラムでサブスクライブすることで、複数の顧客テナントにわたって分析を効率的に管理できます。
  • 組み込みのコンプライアンス: この機能は、VPC Service Controls顧客管理の暗号鍵(CMEK)、データ所在地(DRZ)をネイティブにサポートしています。顧客向けの監査ログ(アクセスの透明性)は、Federated Resource Identification Service(FRIS)を使用して Cloud Logging ワークスペースに直接配信されます。

一般的なユースケース

Advanced BigQuery Export は、セキュリティ アナリスト、脅威ハンター、データ サイエンティスト、セキュリティ エンジニア向けに設計されています。これらのユーザーは、アドホック調査、カスタム分析、ビジネス インテリジェンス ツールとの統合のために、最新のセキュリティ データに直接アクセスして高パフォーマンスを実現する必要があります。

Advanced BigQuery Export の一般的なユースケースは次のとおりです。

  • BigQuery でアドホック クエリを直接実行します。
  • Microsoft Power BI などのビジネス インテリジェンス ツールを使用して、ダッシュボード、レポート、分析を作成します。
  • Google SecOps データをサードパーティのデータセットと結合する。

アーキテクチャ

Advanced BigQuery Export アーキテクチャは、継続的なストリーミング パイプラインを使用します。Google SecOps インスタンスのデータは、高スループットの BigQuery Storage Write API を使用して、Google が管理する安全なテナント プロジェクトに push されます。

Google SecOps は、BigQuery Sharing を使用して安全なデータ リスティングを作成し、アクセス権を付与します。BigQuery の [エクスプローラ] ペインで、 Google Cloud プロジェクトがこのリスティングに自動的に登録され、secops_linked_datalake リンクされたデータセットとして表示されます。

このモデルは、強力なデータ分離をサポートしながら、シームレスな読み取り専用クエリ アクセスを提供します。

主な用語

高度な BigQuery エクスポートに関する主な用語と概念は次のとおりです。

  • テナント プロジェクト: Google SecOps が所有および管理する Google Cloud プロジェクト。このプロジェクトは、エクスポートされたセキュリティ データが物理的に保存および管理される場所です。このプロジェクトに直接アクセスする権限がありません。
  • BYOP(Bring Your Own Project): 組織が所有し、Google SecOps インスタンスにリンクする Google Cloud プロジェクト。これは、リンクされたデータセットが表示され、クエリを実行して分析費用が発生するプロジェクトです。
  • プロジェクト ID: Google SecOps インスタンスにリンクされている Google Cloud プロジェクトのグローバルに一意の ID。
  • リンク済みデータセット: 読み取り専用の BigQuery データセット。別のプロジェクトの共有データセットへのシンボリック リンクまたはポインタとして機能します。データをコピーせずにクエリを実行できるため、データ プロバイダが物理ストレージを管理しながら、安全なアクセスを提供できます。
  • きめ細かい DML(FGDML): 高度な BigQuery エクスポートがアップサート(更新と挿入)を実行するために使用する自動化されたバックエンド プロセス。イベントの到着が遅れた場合や、イベントが再エンリッチされた場合、システムは重複を作成するのではなく、一意の識別子(metadata.id など)に基づいて既存の行を更新します。
  • 統合データモデル(UDM): 数百ものベンダー製品から取得したセキュリティ テレメトリー データを一貫した形式に解析して正規化するための、Google の拡張可能な標準スキーマ。
  • マネージド セキュリティ サービス プロバイダ(MSSP): Google Cloud 認定 MSSP は、進化し続けるサイバーセキュリティの脅威に対する防御を強化するための包括的なツールと専門知識を提供します。

システムをセットアップする

高度な BigQuery Export を使用するには、まずシステムを設定する必要があります。環境と要件に応じて、次のいずれかのセクションの手順に沿って操作します。

デフォルト設定

Advanced BigQuery Export を使用するようにシステムを設定し、データのクエリを開始するには、次の手順を行います。

  1. ライセンスを確認する: 組織に Google SecOps Enterprise Plus ライセンスがあることを確認します。
  2. プロジェクトを特定する: Google Cloud コンソールにログインし、Google SecOps インスタンスにリンクされている Google Cloud プロジェクトを選択します。
  3. リンクされたデータセットを見つける: BigQuery コンソールで、[エクスプローラ] ペインを使用してプロジェクトのリソースに移動します。secops_linked_datalake という名前のリンクされたデータセットが表示されます。このデータセットは、Google SecOps によって管理されるライブ セキュリティ データへの読み取り専用ポインタです。
  4. Identity and Access Management(IAM)権限を確認する: データをクエリするには、ユーザーまたはサービス アカウントに、プロジェクトに対する次の IAM ロールが付与されている必要があります。

    • roles/bigquery.dataViewer: 組織のエンドユーザーまたは BI ツールが、リンクされたデータセット ビューに対して SQL クエリを実行するために必要です。
    • roles/bigquery.jobUser: 組織のエンドユーザーまたは BI ツールが、リンクされたデータセット ビューに対して SQL クエリを実行するために必要です。
    • Chronicle API Admin: MSSP サブスクリプションを管理するために Dataplane API(ProvisionPartnerSubscription など)を実行するには、Google SecOps 内で必要です。

    これらのロールにより、ユーザー(セキュリティ アナリストやデータ コンシューマーなど)は、リンクされたデータセット内のデータをクエリし、プロジェクト内で BigQuery ジョブを実行できます。

  5. テストクエリを実行する: BigQuery SQL ワークスペースを開き、基本的なクエリを実行して、アクセスが正しく構成されていることを確認します。次のコード スニペットを使用できます。

    SELECT *
    FROM `PROJECT_ID.secops_linked_datalake.events`
    LIMIT 10;
    

    PROJECT_ID は、実際の Google Cloud プロジェクト ID に置き換えます。

VPC Service Controls の境界内で高度な BigQuery エクスポートを設定する

VPC Service Controls 境界内で高度な BigQuery エクスポートを設定するには、特定の上り(内向き)ルールを構成する必要があります。このルールにより、必要な Google SecOps サービス アカウントが、境界で保護されたプロジェクトの BigQuery と関連サービスを操作できるようになります。詳細な手順と詳細については、Google Security Operations 用に VPC Service Controls を構成するをご覧ください。

  • VPC Service Controls 境界内に Advanced BigQuery Export を設定するには、次の上り(内向き)ルールを構成します。

    - ingressFrom:
        identities:
        - serviceAccount:malachite-advanced-bq-exporter@system.gserviceaccount.com
        - serviceAccount:malachite-data-export-service@system.gserviceaccount.com
        sources:
        - accessLevel: "*"
      ingressTo:
        operations:
        - serviceName: analyticshub.googleapis.com
          methodSelectors:
          - method: "*"
        - serviceName: bigquery.googleapis.com
          methodSelectors:
          - method: "*"
        resources:
        - projects/PROJECT_NUMBER
    

    PROJECT_NUMBER は、Google SecOps にリンクされた Google Cloud プロジェクト番号に置き換えます。

MSSP 向け - サブテナントの BigQuery データへの一元的なアクセスを設定する

MSSP としてプロビジョニングされている場合は、Google SecOps データプレーン API を利用して、中央の「ハブ」プロジェクトに BigQuery リンク済みデータセットをプログラムで作成できます。これらのリンクされたデータセットは、顧客(スポーク)の BigQuery データを指し、単一の画面から複数のテナントに対してクエリを実行できます。このプロセスでは、顧客が MSSP インスタンスにアクセス権を付与する必要があります。

主な特典は次のとおりです。

  • 一元的な可視性: すべての顧客のセキュリティ データを 1 か所で分析します。
  • 効率的なワークフロー: クライアント ベース全体で脅威ハンティングとレポート作成を効率化します。
  • プログラムによる管理: データアクセスの設定と削除を自動化します。

前提条件

  • MSSP

    • 中央の「ハブ」として機能する Google Cloud プロジェクト。
    • Google SecOps インスタンス。
    • ハブ プロジェクトで BigQuery データセットを管理するための適切な IAM 権限。
  • お客様(サブテナント)

    • Google SecOps Enterprise Plus ライセンス。
    • Google SecOps インスタンスにリンクされている Google Cloud プロジェクト(BYOP)。
    • Google SecOps API アクセスを管理するための適切な IAM 権限。
    • gcloud CLI がインストールされ、認証されている。

ステップ 1: お客様が MSSP にアクセス権を付与する

お客様は ProvisionPartnerSubscription API を呼び出して、MSSP の Google SecOps インスタンスに権限を付与できます。Google SecOps は、MSSP の Google Cloud プロジェクト(MSSP の Google SecOps インスタンスにリンクされている)内に、secops_linked_datalake_<customer_id> 形式の名前の BigQuery リンク データセットを自動的にプロビジョニングします。このデータセットは、お客様の Google SecOps データにリンクされています。

API エンドポイント:
POST
https://chronicle.googleapis.com/v1alpha/projects/CUSTOMER_PROJECT/locations/REGION/instances/CUSTOMER_INSTANCE_ID/bigQueryExport:provisionPartnerSubscription
メソッド

POST

リクエストの本文

空の JSON オブジェクト。

{}

CURL コマンドの例(お客様が実行します):

curl -X POST \
  -H "Authorization: Bearer ${OAUTH_TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{}' \
  "https://chronicle.googleapis.com/v1alpha/projects/CUSTOMER_PROJECT/locations/REGION/instances/CUSTOMER_INSTANCE_ID/bigQueryExport:provisionPartnerSubscription"

各プレースホルダを次のように置き換えます。

  • CUSTOMER_PROJECT: お客様の Google Cloud プロジェクト ID またはプロジェクト番号。プロジェクトの作成と管理をご覧ください。
  • REGION: お客様の Google SecOps インスタンスが存在する Google Cloud リージョン(us、europe-west2 など)。リージョンの一覧をご覧ください。
  • CUSTOMER_INSTANCE_ID: お客様の Google SecOps インスタンス ID。
レスポンスの本文

定期購入の詳細を含む ProvisionPartnerSubscriptionResponse を返します。

{
  "subscriptionDetails": {
    "subscription": "projects/SUBSCRIBER_PROJECT_ID/locations/SUBSCRIBER_REGION/subscriptions/SUBSCRIPTION_ID",
    "linkedDataset": "string"
  }
}
  • SUBSCRIBER_PROJECT_ID: サブスクライバー MSSP の Google Cloud プロジェクト ID。
  • SUBSCRIBER_REGION: サブスクライバーの Google Cloud プロジェクトが配置されているリージョン。
  • SUBSCRIPTION_ID: 既存のサブスクリプションの固有識別子。

ステップ 2: MSSP がテナント間でデータをクエリする

複数の顧客のリンクされたデータセットが MSSP の Google Cloud プロジェクトにプロビジョニングされると、標準の BigQuery SQL クエリを使用してデータを分析できます。複数の顧客にまたがってクエリを実行するには、UNION ALL 演算子を使用します。

クエリの例(MSSP がハブ プロジェクトで実行します):

SELECT event_type, timestamp
FROM `PARTNER_PROJECT_ID.secops_linked_datalake_CUSTOMER_ID_1.events`
WHERE <your_conditions>

UNION ALL

SELECT event_type, timestamp
FROM `PARTNER_PROJECT_ID.secops_linked_datalake_CUSTOMER_ID_2.events`
WHERE <your_conditions>

-- Add more UNION ALL clauses for other customers

ステップ 3: お客様がアクセス権を監査する

お客様は fetchSubscriptions API を呼び出して、データにアクセスしているすべてのアクティブなサブスクリプションと MSSP インスタンスを確認できます。

API エンドポイント
GET https://chronicle.googleapis.com/v1alpha/projects/CUSTOMER_PROJECT/locations/REGION/instances/CUSTOMER_INSTANCE_ID/bigQueryExport:fetchSubscriptions
メソッド

GET

CURL コマンドの例(お客様が実行します):

curl -X GET \
  -H "Authorization: Bearer ${OAUTH_TOKEN}" \
  "https://chronicle.googleapis.com/v1alpha/projects/CUSTOMER_PROJECT/locations/REGION/instances/CUSTOMER_INSTANCE_ID/bigQueryExport:fetchSubscriptions"

各プレースホルダを次のように置き換えます。

  • CUSTOMER_PROJECT: お客様の Google Cloud プロジェクト ID またはプロジェクト番号。プロジェクトの作成と管理をご覧ください。
  • REGION: お客様の Google SecOps インスタンスが存在する Google Cloud リージョン(us、europe-west2 など)。リージョンの一覧をご覧ください。
  • CUSTOMER_INSTANCE_ID: お客様の Google SecOps インスタンス ID。
レスポンスの本文

有効な定期購入のリストを含む FetchSubscriptionsResponse を返します。

{
  "subscriptions": [
    {
      "subscription": "projects/SUBSCRIBER_PROJECT_ID/locations/SUBSCRIBER_REGION/subscriptions/SUBSCRIPTION_ID",
      "linkedDataset": "string"
    }
  ]
}
  • SUBSCRIBER_PROJECT_ID: サブスクライバーの Google Cloud プロジェクト ID。サブスクライバーは、お客様または MSSP を指します。
  • SUBSCRIBER_REGION: サブスクライバーの Google Cloud プロジェクトが配置されているリージョン。
  • SUBSCRIPTION_ID: 既存のサブスクリプションの固有識別子。

ステップ 4: お客様がアクセス権を取り消す(必要な場合)

お客様が MSSP のアクセス権を取り消す必要がある場合は、revokePartnerSubscription API を使用できます。このアクションにより、MSSP のハブ プロジェクトを使用してリンクされたデータセットにクエリを実行する権限が直ちに取り消されます。取り消されたサブスクリプションの ID は無効になります。

API エンドポイント
POST https://chronicle.googleapis.com/v1alpha/projects/CUSTOMER_PROJECT/locations/REGION/instances/CUSTOMER_INSTANCE_ID/bigQueryExport:revokePartnerSubscription
メソッド

POST

リクエストの本文

取り消すサブスクリプションの URI が必要です。これは fetchSubscriptions API 呼び出しから取得されます。

{
  "subscriptionUri": "projects/SUBSCRIBER_PROJECT_ID/locations/SUBSCRIBER_REGION/subscriptions/SUBSCRIPTION_ID"
}

CURL コマンドの例(お客様が実行します):

# Set subscription details obtained from Fetch Subscriptions
export SUBSCRIBER_PROJECT_ID="partner-byop-project-id"
export SUBSCRIBER_REGION="subscription-location"
export SUBSCRIPTION_ID="subscription-id"

curl -X POST \
  -H "Authorization: Bearer ${OAUTH_TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
    "subscriptionUri": "projects/SUBSCRIBER_PROJECT_ID/locations/SUBSCRIBER_REGION/subscriptions/SUBSCRIPTION_ID"
  }' \
  "https://chronicle.googleapis.com/v1alpha/projects/CUSTOMER_PROJECT/locations/REGION/instances/CUSTOMER_INSTANCE_ID/bigQueryExport:revokePartnerSubscription"

各プレースホルダを次のように置き換えます。

  • SUBSCRIBER_PROJECT_ID: サブスクライバーの Google Cloud プロジェクト ID。
  • SUBSCRIBER_REGION: サブスクライバーの Google Cloud プロジェクトが配置されているリージョン。
  • SUBSCRIPTION_ID: 既存のサブスクリプションの固有識別子。
  • CUSTOMER_PROJECT: お客様の Google Cloud プロジェクト ID またはプロジェクト番号。
  • REGION: お客様の Google SecOps インスタンスが配置されている Google Cloud リージョン。
  • CUSTOMER_INSTANCE_ID: お客様の Google SecOps インスタンス ID。
レスポンスの本文

空の JSON オブジェクト。

{}

BigQuery データをクエリする

クエリは BigQuery で直接実行することも、Microsoft Power BI などのビジネス インテリジェンス ツールを BigQuery に接続することもできます。

クエリの詳細については、以下をご覧ください。

BigQuery テナント プロジェクトのデータ保持期間

BigQuery のデータの保持期間は、Google SecOps テナント用に構成されたデータ保持期間と同じです。BigQuery のデータの保持ポリシーをカスタマイズするための個別の構成可能な設定はありません。データは、テナントの保持期間を過ぎると、BigQuery テーブルから自動的に削除されます。

リンク済みデータセット

リンクされたデータセットには、さまざまなタイプのセキュリティ データに対応するテーブルが含まれています。

次の表に、使用可能なデータセット、目標とするデータの更新速度、データの完全性を確保するために使用される固有識別子の概要を示します。

データセット名 説明 予想される最適な鮮度 重複除去の一意の識別子
events UDM スキーマの正規化されたセキュリティ イベント。スキーマについては、Google SecOps イベント スキーマをご覧ください。 5 分未満 id(文字列表現)
rule_detections Google SecOps 検出エンジンのルールによって生成された検出。 5 分未満 detection.id
ioc_matches UDM イベントに対して検出されたセキュリティ侵害インジケーター(IOC)の一致。 5 分未満 day_bucket_seconds、feed_log_type、ioc_type、ioc_value の複合キー
entity_graph エンティティ(ユーザー、アセット)とその関係に関するコンテキスト データ。 約 4 時間(バッチ) partition_day、metadata.product_entity_id、metadata.event_metadata.id の複合キー
ingestion_metrics ログ取り込み量とデータソースに関する統計情報。 約 5 分 なし(追加専用の時系列)
entity_enum_value_to_name_mapping エンティティ グラフの列挙型について、数値を文字列値にマッピングします。 なし なし
udm_enum_value_to_name_mapping UDM イベントの列挙型について、数値を文字列値にマッピングします。 なし なし

サンプルクエリ

次の例は、一般的なセキュリティのユースケースでデータセットをクエリする方法を示しています。

例 - 過去 24 時間に特定の IP アドレスから行われたすべてのネットワーク接続を検索する

このクエリは、イベント テーブルで不審な IP アドレスからの最近のネットワーク アクティビティを検索します。

SELECT
  metadata.product_event_type,
  principal.ip,
  target.ip,
  network.application_protocol
FROM
  `PROJECT_ID.secops_linked_datalake.events`
WHERE
  principal.ip = '192.0.2.1'
  AND metadata.event_timestamp > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 24 HOUR);
  • PROJECT_ID は、実際の Google Cloud プロジェクト ID に置き換えます。

例 - 最も頻繁に検出された上位 10 個のルールをカウントする

rule_detections テーブルに対するこのクエリは、環境内で検出された最も一般的な脅威またはポリシー違反を特定するのに役立ちます。

SELECT
  rule_name,
  COUNT(*) AS detection_count
FROM
  `PROJECT_ID.secops_linked_datalake.rule_detections`
WHERE
  detection.id IS NOT NULL
GROUP BY
  1
ORDER BY
  2 DESC
LIMIT
  10;
  • PROJECT_ID は、実際の Google Cloud プロジェクト ID に置き換えます。

ベスト プラクティス

Advanced BigQuery Export でクエリを実行する際のベスト プラクティスを次に示します。

  • クエリ費用を最適化する: ストレージは無料ですが、コンピューティング費用はプロジェクトに請求されるため、次の操作を行います。

    • SELECT * は避けてください。クエリで必要な列のみを指定して、スキャンされるデータ量を減らし、クエリ費用を削減します。
    • クエリで BigQuery のパーティショニング(hour_time_bucket パーティション時間列を使用)とクラスタリング(hour_time_bucket、log_type、event_type、id)を活用して、スキャンするデータを減らし、クエリの費用を大幅に削減してください。
  • パーティション フィルタを使用する: イベント テーブルは hour_time_bucket 列でパーティション分割されます。この列には常に WHERE 句フィルタを含めて、クエリを可能な限り最小の時間枠に制限します。これにより、パフォーマンスが大幅に向上し、コストが削減されます。

  • 効率的なクエリを作成する: UDM スキーマは幅広く、スパースです。特定のイベントタイプを効率的にフィルタするには、WHERE... を使用します。関連するフィールドに IS NOT NULL を使用します。たとえば、DNS クエリのみを検索するには、WHERE network.dns.questions.name IS NOT NULL をフィルタします。

  • クエリを検証する: クエリを実行する前に、BigQuery UI のクエリ バリデータを使用します。クエリ検証ツールは、処理されるデータを見積もることで、予期せず大規模でコストのかかるクエリを回避するのに役立ちます。

  • 列挙型マッピング テーブルを使用する: Advanced BigQuery Export には、entity_enum_value_to_name_mapping テーブルと udm_enum_value_to_name_mapping テーブルが含まれています。これらを使用してイベントと結合し、クエリに手動の変換ロジックを記述することなく、数値の列挙型値を人が読める文字列に変換します。

  • 監査ロギングの統合: Advanced BigQuery Export は、Federated Resource Identification Service(FRIS)と統合されています。Google の担当者がマネージド テナント プロジェクトにアクセスした場合、Google アクセスの透明性機能を使用する顧客向けの監査ログは、BYOP Cloud Logging ワークスペース内にネイティブに配信されます。

既知の制限事項

高度な BigQuery Export 機能の既知の制限事項は次のとおりです。

  • エンティティ グラフのレイテンシ: entity_graph データセットはバッチ処理を使用してエクスポートされ、データの更新速度は約 4 時間です。
  • UDM スキーマ列の上限: BigQuery では、テーブルあたりの列数の上限は 10,000 です。UDM スキーマには 27,000 を超えるフィールドが含まれており、データがまばらに配置されています。エクスポート パイプラインでは、特定のイベントで入力された列のみがインテリジェントに含められるため、ほとんどのお客様は上限を大幅に下回ります。Google SecOps は列の使用状況をモニタリングし、このしきい値に近づくと、テナント プロジェクトの上限引き上げを事前にリクエストします。
  • 保持期間は構成できません: BigQuery にエクスポートされたすべてのセキュリティ データの保持期間は、Google SecOps プロジェクトのデータ保持期間と自動的に同期され、個別に構成することはできません。
  • SOAR データはサポートされていません: Google Security Operations SOAR(search_everything_db)のデータは、高度な BigQuery Export ではサポートされていません。
  • クロスリージョン フェデレーションはサポートされていません: ハブアンドスポーク MSSP サブスクリプションは、同じリージョン内でサポートされています。クロスリージョン連携(米国からヨーロッパなど)はサポートされていません。
  • 重複するイベントが発生する可能性がある(1% 未満の確率): システムでは DML マージを使用して重複除去が自動的に処理されますが、分散ストリーミングの性質上、バックグラウンド マージが完了する前に、エッジケースの取り込みウィンドウで重複するイベントが発生する可能性がわずかにあります(1% 未満)。
  • 過去のデータにはアクセスできますが、特定の方法が必要です。データのエクスポートは、Advanced BigQuery Export が有効になった時点から開始され、古いデータは既存のプロジェクトで引き続きアクセスできます。高度な BigQuery エクスポートを有効にする前にエクスポートされたデータをクエリするには、両方のプロジェクトのデータを結合する単一のクエリを使用するか、それぞれのプロジェクトで 2 つの別々のクエリ(古いデータセット用と新しいデータセット用)を実行する必要があります。

トラブルシューティングとサポート

次の表に、発生する可能性のある一般的な問題の解決策を示します。

観察された症状 考えられる原因 推奨される対処方法
クエリが Access Denied: User does not have permission. で失敗する ユーザー アカウントまたはサービス アカウントに、Google SecOps インスタンスにリンクされている Google Cloud プロジェクトに対する必要な BigQuery IAM ロールがありません。 プリンシパルに BigQuery データ閲覧者BigQuery ジョブユーザーのロールを付与します。gcloud projects get-iam-policy YOUR_PROJECT_ID --flatten="bindings.members" --format='table(bindings.role)' --filter="bindings.members:user:your-user@example.com" を使用してこれを確認します
secops_linked_datalake データセットが BigQuery プロジェクトに表示されません。 1. 正しい Google Cloud プロジェクトが選択されていません。
2. 組織が Enterprise Plus 階層に属していない。
3. お客様の組織は Enterprise Plus 階層ですが、Google SecOps インスタンスで Advanced BigQuery Export が有効になっていません。
1. Google Cloud コンソールで、Google SecOps インスタンスにリンクされているプロジェクトが選択されていることを確認します。
2. Google の担当者に連絡して、Google SecOps ライセンスの階層を確認します。
3. Google SecOps の担当者に連絡して、Google SecOps インスタンスで Advanced BigQuery Export を有効にするよう依頼します。
ProvisionPartnerSubscription または FetchSubscriptions の権限エラーで API 呼び出しが失敗する 呼び出し元の ID に必要な権限がない。 呼び出しを行うサービス アカウントまたはユーザーに、ハブ インスタンス リソースに対する権限を含む Chronicle API 管理者 IAM ロールが付与されていることを確認します。
カスタム列がないか、スキーマが一致していない 新しいログタイプまたは深くネストされた UDM フィールドが取り込まれました。 高度な BigQuery エクスポートでは、動的スキーマ更新が使用されます。新しい UDM フィールドが入力されると、システムはスキーマの不一致を自動的に検出し、一時停止して BigQuery スキーマを更新し、挿入を再試行します。なんらかのご対応を行っていただく必要はありません。

よくある質問

以降のセクションでは、よくある質問について説明します。

Advanced Google SecOps Export を使用するために、既存のレガシー BigQuery SQL クエリを変更する必要がありますか?

いいえ。100% の下位互換性を維持するため、Google SecOps は、以前の Google SecOps エクスポート機能のテーブルのスキーマと完全に一致するビュー(events、ioc_matches など)をリンクされたデータセットに公開します。

Advanced BigQuery Export のデータ保持期間を調整できますか?

いいえ。Advanced BigQuery Export のデータ保持期間は、Google SecOps のデータ保持ポリシーを直接反映します。Google SecOps でデータが期限切れになると、自動的に期限切れになり、BigQuery テナント プロジェクトから削除されます。

バックエンドの DML 更新と重複除去に対して課金されますか?

いいえ。バックエンド ストレージ、ストリーミング挿入オペレーション、きめ細かい DML コンピューティングの費用はすべて Google SecOps で吸収されます。BYOP で明示的に実行したクエリに対してのみ料金が発生します。

この機能は Google SecOps Standard ティアまたは Enterprise ティアで利用できますか?

いいえ。高度な BigQuery エクスポート(マネージド ストレージとストリーミング)は、Google SecOps Enterprise Plus 階層専用のプレミアム機能です。Standard と Enterprise のお客様は、Bring Your Own BigQuery(BYOBQ)モデルを使用できます。このモデルでは、BigQuery プロジェクトを提供し、ストレージとコンピューティングの両方の費用を負担します。

BigQuery の高度なエクスポートのデータと Google Security Operations UI に表示される統計情報で、一時的にカウントに違いが生じるのはなぜですか?

Advanced BigQuery Export パイプラインは準リアルタイムのストリーミングであるため、一時的な不一致が発生することがあります。主な理由は次のとおりです。

  • 遅延データ: エクスポート パイプラインは高スループット向けに設計されています。ほとんどのデータは 5 ~ 10 分以内に BigQuery に表示されます。ただし、ネットワークの遅延やソースシステムの障害により、イベントが処理パイプラインに遅れて到着することがあります。システムはこれらの遅延イベントを統合しようとしますが、最新の状態を反映するライブ UI 統計情報と、継続的に更新されている BigQuery データが一時的に異なる場合があります。

  • データの再拡充: Google SecOps は、最新の脅威インテリジェンスとコンテキスト情報を使用して、イベントデータを継続的に拡充します。高度な BigQuery エクスポートでは、初回エンリッチメント時の状態に基づいてイベントがエクスポートされます。BigQuery にストリーミングされたイベントが新しい情報で再拡充された場合、この更新されたバージョンが BigQuery にすぐに反映されないことがあります。これにより、常に完全に再エンリッチされたデータを表示する UI 要素と比較すると、差異が生じる可能性があります。

  • DML マージ レイテンシ: BigQuery のデータを最新の状態に保ち、遅延したデータや重複の可能性などの処理を行うため、パイプラインはバックグラウンドでデータ操作言語(DML)の MERGE オペレーションを使用します。これらのオペレーションは効率的ですが、瞬時に実行されるわけではありません。これらのマージは処理に固有のレイテンシがあります。特に、きめ細かい更新の場合に顕著です。この統合間隔中、BigQuery に対するクエリでは、Google Security Operations UI にすでに表示されている最新のマイクロ更新がキャプチャされないことがあります。

前述の要因(遅延データ、再エンリッチメント処理、マージ レイテンシ)により、BigQuery とライブ UI の統計情報が完全に一致するとは限りません。高度な BigQuery エクスポートは、ほぼリアルタイムのデータを提供します。このデータは、数分以内のデータの鮮度が重要な脅威ハンティング、カスタム分析、ダッシュボードなどのユースケース向けに最適化されています。監査目的で特定の時点での完全な整合性が必要な場合は、一時的なわずかな差異が生じる可能性があることを考慮してください。

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