高度な BigQuery エクスポートによるストリームデータ

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

このドキュメントでは、高度な BigQuery エクスポート 機能を使用して、BigQuery 内の Google SecOps データにアクセスして使用する方法について説明します。Enterprise Plus をご利用のお客様は、この機能を利用して、完全に管理されたストリーミングデータパイプラインを通じて、セキュリティデータにほぼリアルタイムでアクセスできます。この機能は、セキュリティ運用におけるデータ遅延という重大な課題への対処に役立ち、より迅速かつ効果的な脅威の検出と対応につながる。

始める前に

資格要件と必要な手続きを定めた以下の項目を確認してください。

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

機能の概要

Advanced BigQuery Export は、統合データモデル(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 データをサードパーティのデータセットと結合する。

アーキテクチャ

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

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):Advanced BigQuery Export がアップサート(更新と挿入)を実行するために使用する自動化されたバックエンドプロセス。イベントが遅れて到着した場合、またはイベントが再追加された場合、システムは重複を作成するのではなく、その一意の識別子(たとえば、metadata.id)に基づいて既存の行をその場で更新します。
  • 統合データモデル(UDM): 数百ものベンダー製品から取得したセキュリティ テレメトリー データを一貫した形式に解析して正規化するための、Google の拡張可能な標準スキーマ。
  • マネージドセキュリティサービスプロバイダー(MSSP): Google Cloud 認定 MSSP は、進化し続けるサイバーセキュリティの脅威に対する防御を強化するための包括的なツールと専門知識を提供します。

システムの設定

高度な BigQuery エクスポート機能を使用するには、まずシステムをセットアップする必要があります。環境や要件に応じて、以下のいずれかのセクションの手順に従ってください。

デフォルト設定

以下の手順に従って、システムを設定して高度な BigQuery エクスポート機能を使用し、データのクエリを開始してください。

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

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

    これらの役割により、ユーザー(セキュリティアナリストやデータ利用者など)は、リンクされたデータセット内のデータを照会したり、プロジェクト内で BigQuery ジョブを実行したりすることができます。

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

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

    PROJECT_ID を実際の Google Cloud プロジェクト ID に置き換えてください。

VPC サービスコントロールの範囲内で高度な 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 Cloud 顧客の Google SecOps インスタンスが存在するリージョン(例: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)を活用して、スキャンするデータ量を減らし、クエリコストを大幅に削減するようにしてください。
  • パーティションフィルタを使用する: events テーブルは hour_time_bucket 列によってパーティション分割されます。この列には必ず WHERE 句フィルターを含めて、クエリを可能な限り短い時間枠に制限してください。これにより、パフォーマンスが大幅に向上し、コストも削減されます。

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

  • クエリの検証: クエリを実行する前に、BigQuery UI のクエリバリデーターを使用してください。クエリ検証ツールは、処理されるデータ量の概算値を提供し、予期せず大規模でコストのかかるクエリを回避するのに役立ちます。

  • 列挙型マッピングテーブルを使用します: 高度な BigQuery エクスポートには、entity_enum_value_to_name_mapping および udm_enum_value_to_name_mapping テーブルが含まれます。これらを使用してイベントと結合することで、クエリに手動で変換ロジックを記述することなく、数値列挙値を人間が読みやすい文字列に変換できます。

  • 監査ログ統合: 高度な BigQuery エクスポートは、フェデレーテッド リソース識別サービス (FRIS) と統合されています。Google の担当者がマネージド テナント プロジェクトにアクセスした場合、Google アクセスの透明性機能を使用する顧客向けの監査ログは、BYOP Cloud Logging ワークスペース内にネイティブに配信されます。

既知の制限事項

BigQuery の高度なエクスポート機能には、以下の既知の制限事項があります。

  • エンティティグラフのレイテンシ: エンティティグラフデータセットはバッチ処理を使用してエクスポートされ、データの更新速度は約 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 インスタンスで高度な BigQuery エクスポートが有効になっていません。
1. Google Cloud コンソールで、Google SecOps インスタンスにリンクされているプロジェクトが選択されていることを確認します。
2. Google の担当者に連絡して、Google SecOps ライセンスの階層を確認します。
3. Google SecOps の担当者に連絡して、Google SecOps インスタンスで高度な BigQuery エクスポートを有効にするよう依頼します。
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 のプロフェッショナルから回答を得ることができます。