BigQuery を Google SecOps と統合する

このドキュメントでは、BigQuery を Google Security Operations(Google SecOps)と統合する方法について説明します。

統合バージョン: 15.0

この統合では、1 つ以上のオープンソース コンポーネントを使用します。この統合のソースコードの zip 形式のコピーは、Cloud Storage バケットからダウンロードできます。

ユースケース

Google SecOps プラットフォームでは、BigQuery の統合により、次のユースケースを解決できます。

  • 脅威インテリジェンスの拡充: BigQuery に保存されている脅威インテリジェンス データを使用してセキュリティ アラートを自動的に拡充し、潜在的な脅威の重大度と信頼性を評価します。

    たとえば、不審な IP アドレスによってアラートがトリガーされるたびに、既知の悪意のある IP アドレスを含む BigQuery テーブルをクエリするように Google SecOps を構成できます。Google SecOps は、BigQuery テーブルで一致するものを確認し、関連するマルウェア ファミリーなどの追加のコンテキストを取得します。

  • ユーザー行動分析: BigQuery に保存された過去のユーザー アクティビティ ログを分析して、異常なユーザー アクティビティを特定し、内部関係者による脅威と不正使用されたアカウントを検出します。

    たとえば、Google SecOps を構成して、ユーザーの通常の地理位置情報以外のログイン試行について BigQuery をクエリし、検出された不審なアクティビティに対して自動インシデント対応をトリガーできます。

  • セキュリティ データレイクの分析: BigQuery のクエリ機能を使用して、データレイクに集約されたさまざまなソースからの大量のセキュリティ データを分析し、脅威ハンティングとインシデント調査を改善します。

    たとえば、データレイクに保存されている複数のセキュリティ ツールのログから、特定のファイル ハッシュに関連するすべてのイベントを BigQuery にクエリするように Google SecOps を構成できます。

  • 長期的なセキュリティ データの保持: BigQuery ストレージを使用して、大量のセキュリティ ログを長期間保持し、履歴分析、コンプライアンス レポート、フォレンジック調査をサポートします。

    たとえば、解決済みのインシデント データを BigQuery に自動的にアーカイブして長期保存し、将来の監査や調査でデータを利用できるように Google SecOps を構成できます。

始める前に

この統合を使用するには、 Google Cloud サービス アカウントが必要です。

サービス アカウントを作成して構成する

BigQuery を Google SecOps と統合するには、既存のサービス アカウントを使用するか、新しいサービス アカウントを作成します。サービス アカウントの作成については、サービス アカウントを作成するをご覧ください。

Workload Identity のメールアドレスを使用して統合を構成しない場合は、サービス アカウントの作成後にJSON でサービス アカウント キーを作成します。統合パラメータを構成するときに、ダウンロードした JSON キーファイルの内容をすべて指定する必要があります。

セキュリティ上の理由から、サービス アカウントの JSON キーではなく、ワークロード ID のメールアドレスを使用することをおすすめします。ワークロード ID の詳細については、ワークロードの ID をご覧ください。

統合のパラメータ

BigQuery インテグレーションには、次のパラメータが必要です。

パラメータ 説明
Account Type

省略可。

BigQuery アカウントのタイプ。

サービス アカウント キーの JSON ファイルの type パラメータに設定されている値を指定します。

デフォルト値は service_account です。

Project ID

省略可。

BigQuery アカウントのプロジェクト ID。

認証 JSON ファイルの project_id パラメータで設定されている値を指定します。

Private Key ID

省略可。

BigQuery アカウントの秘密鍵 ID。

認証 JSON ファイルの private_key_id パラメータで設定されている値を指定します。

Private Key

省略可。

BigQuery アカウントの秘密鍵。

認証 JSON ファイルの private_key パラメータで設定されている値を指定します。

Client Email

省略可。

BigQuery アカウントのクライアント メールアドレス。

認証 JSON ファイルの client_email パラメータで設定されている値を指定します。

Client ID

省略可。

BigQuery アカウントのクライアント ID。

認証 JSON ファイルの client_id パラメータで設定されている値を指定します。

Auth URI

省略可。

BigQuery アカウントの認証 URI。

認証 JSON ファイルの auth_uri パラメータで設定されている値を指定します。

デフォルト値は https://accounts.google.com/o/oauth2/auth です。

Token URI

省略可。

BigQuery アカウントのトークン URI。

認証 JSON ファイルの token_uri パラメータで設定されている値を指定します。

デフォルト値は https://oauth2.googleapis.com/token です。

Auth Provider X509 URL

省略可。

BigQuery アカウントの認証プロバイダ X.509 URL。

認証 JSON ファイルの auth_provider_x509_cert_url パラメータで設定されている値を指定します。

デフォルト値は https://www.googleapis.com/oauth2/v1/certs です。

Client X509 URL

省略可。

BigQuery アカウントのクライアント X.509 URL。

認証 JSON ファイルの client_x509_cert_url パラメータで設定されている値を指定します。

デフォルト値は https://www.googleapis.com/oauth2/v1/certs です。

Service Account Json File Content

省略可。

サービス アカウント キーの JSON ファイルの内容。

このパラメータまたは Workload Identity Email パラメータを構成するか、上記のすべての統合パラメータを設定できます。

このパラメータを構成するには、サービス アカウントの作成時にダウンロードしたサービス アカウント キーの JSON ファイルの内容全体を指定します。

このパラメータを構成すると、統合では他の接続パラメータが無視されます。

Workload Identity Email

省略可。

サービス アカウントのクライアント メールアドレス。

このパラメータまたは Service Account Json File Content パラメータを構成できます。

このパラメータを設定する場合は、Quota Project ID パラメータを構成します。

Workload Identity 連携を使用してサービス アカウントの権限を借用するには、サービス アカウントに Service Account Token Creator ロールを付与します。ワークロード ID とその操作方法の詳細については、ワークロードの ID をご覧ください。

Quota Project ID

省略可。

Google Cloud API と課金に使用する Google Cloud プロジェクト ID。このパラメータを使用するには、サービス アカウントに Service Usage Consumer ロールを付与する必要があります。

このパラメータの値を設定しない場合、統合は Google Cloud サービス アカウントからプロジェクト ID を取得します。

Verify SSL

省略可。

選択すると、統合は Google Cloudに接続するときに SSL 証明書を検証します。

デフォルトで選択されています。

Google SecOps で統合を構成する手順については、統合を構成するをご覧ください。

必要に応じて、後の段階で変更できます。統合インスタンスを構成すると、ハンドブックで使用できるようになります。複数のインスタンスを構成してサポートする方法の詳細については、複数のインスタンスのサポートをご覧ください。

操作

アクションの詳細については、Your Workdesk から保留中のアクションに対応する手動アクションを実行するをご覧ください。

Ping

Ping アクションを使用して、BigQuery への接続をテストします。

このアクションは Google SecOps エンティティに対しては実行されません。

アクション入力

なし

アクションの出力

[Ping] アクションでは、次の出力が提供されます。

アクションの出力タイプ 対象
ケースウォールのアタッチメント 利用不可
ケースウォールのリンク 利用不可
ケースウォール テーブル 利用不可
拡充テーブル 利用不可
JSON の結果 利用不可
出力メッセージ 利用可能
スクリプトの結果 利用可能
出力メッセージ

Ping アクションは、次の出力メッセージを返すことができます。

出力メッセージ メッセージの説明
Successfully connected to the Google BigQuery server with the provided connection parameters! アクションが成功しました。
Failed to connect to the Google BigQuery server! Error is ERROR_REASON

操作を実行できませんでした。

サーバーへの接続、入力パラメータ、または認証情報を確認してください。

スクリプトの結果

次の表に、Ping アクションを使用した場合のスクリプト結果出力の値を示します。

スクリプトの結果名
is_success True または False

カスタムクエリを実行する

カスタムクエリを実行アクションを使用して、BigQuery でカスタムクエリを実行します。

このアクションは Google SecOps エンティティに対しては実行されません。

アクション入力

[カスタムクエリを実行] アクションには、次のパラメータが必要です。

パラメータ 説明
Query

必須。

実行する SQL クエリ。

Max Results To Return

省略可。

レスポンスごとに返す結果の数。

デフォルト値は 50 です。

アクションの出力

[カスタムクエリを実行] アクションは、次の出力を提供します。

アクションの出力タイプ 対象
ケースウォールのアタッチメント 利用不可
ケースウォールのリンク 利用不可
ケースウォール テーブル 利用不可
拡充テーブル 利用不可
JSON の結果 利用可能
出力メッセージ 利用可能
スクリプトの結果 利用可能
JSON の結果

次の例は、[カスタムクエリを実行] アクションを使用したときに受信した JSON 結果の出力を示しています。

{
    "Airport_Code": "CODE",
    "Airport_Name": "NAME",
    "Time_Label": "2015/05",
    "Time_Month": 5,
    "Time_Month_Name": "May",
    "Time_Year": 2015,
    "Statistics___of_Delays_Carrier": 351,
    "Statistics___of_Delays_Late_Aircraft": 546,
    "Statistics___of_Delays_National_Aviation_System": 292,
    "Statistics___of_Delays_Security": 2,
    "Statistics___of_Delays_Weather": 100,
    "Statistics_Carriers_Names": "Example Air Lines Inc., Example Airlines Co.",
    "Statistics_Carriers_Total": 3,
    "Statistics_Flights_Cancelled": 88,
    "Statistics_Flights_Delayed": 1289,
    "Statistics_Flights_Diverted": 32,
    "Statistics_Flights_On_Time": 6182,
    "Statistics_Flights_Total": 7591,
    "Statistics_Minutes_Delayed_Carrier": 19332,
    "Statistics_Minutes_Delayed_Late_Aircraft": 34376,
    "Statistics_Minutes_Delayed_National_Aviation_System": 12346,
    "Statistics_Minutes_Delayed_Security": 48,
    "Statistics_Minutes_Delayed_Total": 76163,
    "Statistics_Minutes_Delayed_Weather": 100061
}
出力メッセージ

[カスタムクエリを実行] アクションは、次の出力メッセージを返すことができます。

出力メッセージ メッセージの説明
Successfully executed query in Google BigQuery! アクションが成功しました。
Error executing action "Run Custom Query". Reason: ERROR_REASON

操作を実行できませんでした。

サーバーへの接続、入力パラメータ、または認証情報を確認してください。

スクリプトの結果

次の表に、[カスタムクエリを実行] アクションを使用した場合のスクリプト結果出力の値を示します。

スクリプトの結果名
is_success True または False

SQL クエリを実行する

BigQuery でクエリを実行するには、[SQL クエリを実行] アクションを使用します。

このアクションは Google SecOps エンティティに対しては実行されません。

アクション入力

[SQL クエリを実行] アクションには、次のパラメータが必要です。

パラメータ 説明
Dataset Name

必須。

クエリの実行時に使用するデータセットの名前。

Query

必須。

実行する SQL クエリ。

Max Results To Return

省略可。

レスポンスごとに返す結果の数。

デフォルト値は 50 です。

アクションの出力

[SQL クエリを実行する] アクションは、次の出力を提供します。

アクションの出力タイプ 対象
ケースウォールのアタッチメント 利用不可
ケースウォールのリンク 利用不可
ケースウォール テーブル 利用不可
拡充テーブル 利用不可
JSON の結果 利用不可
出力メッセージ 利用可能
スクリプトの結果 利用可能
JSON の結果

次の例は、SQL クエリを実行アクションを使用した場合に受信する JSON 結果の出力を示しています。

{
    "Airport_Code": "CODE",
    "Airport_Name": "NAME",
    "Time_Label": "2015/05",
    "Time_Month": 5,
    "Time_Month_Name": "May",
    "Time_Year": 2015,
    "Statistics___of_Delays_Carrier": 351,
    "Statistics___of_Delays_Late_Aircraft": 546,
    "Statistics___of_Delays_National_Aviation_System": 292,
    "Statistics___of_Delays_Security": 2,
    "Statistics___of_Delays_Weather": 100,
    "Statistics_Carriers_Names": "Example Airlines Inc.,Example Airlines Co.",
    "Statistics_Carriers_Total": 3,
    "Statistics_Flights_Cancelled": 88,
    "Statistics_Flights_Delayed": 1289,
    "Statistics_Flights_Diverted": 32,
    "Statistics_Flights_On_Time": 6182,
    "Statistics_Flights_Total": 7591,
    "Statistics_Minutes_Delayed_Carrier": 19332,
    "Statistics_Minutes_Delayed_Late_Aircraft": 34376,
    "Statistics_Minutes_Delayed_National_Aviation_System": 12346,
    "Statistics_Minutes_Delayed_Security": 48,
    "Statistics_Minutes_Delayed_Total": 76163,
    "Statistics_Minutes_Delayed_Weather": 100061
}
出力メッセージ

[SQL クエリを実行] アクションは、次の出力メッセージを返すことがあります。

出力メッセージ メッセージの説明
Successfully executed query in the BigQuery dataset DATASET_NAME. アクションが成功しました。
Error executing action "Run SQL Query". Reason: ERROR_REASON

操作を実行できませんでした。

サーバーへの接続、入力パラメータ、または認証情報を確認してください。

スクリプトの結果

次の表に、[SQL クエリを実行] アクションを使用した場合のスクリプト結果出力の値を示します。

スクリプトの結果名
is_success True または False

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