CatoデータとGoogle SecOpsの統合

Prev Next

Important: This integration is a preview and subject to change. The certification process is underway.

概観

Google SecOps統合を使用して、Catoのネットワークやセキュリティデータを、Googleのセキュリティオペレーション(旧Chronicle)の他のセキュリティテレメトリと一緒に分析します。ネイティブ統合は、データをGoogle SecOpsのHTTPS Webhookフィードに直接送信し、監視と調査を行います。

Cato管理アプリケーション(CMA)で統合を設定します。 CatoはNewlineで区切られたJSONを一行ごとに送信し、Google Cloud APIキーとフィードのWebhook秘密鍵で認証します。

この統合は、CatoのeventsFeed APIを通じてデータを取得するGoogle Chronicle統合とは別物です。

Google SecOpsのデータソース

イベントやフロー、またはその両方を選択できます。

  • イベント: ネットワークとセキュリティ活動の記録であり、ポリシーの一致、脅威、接続の変更、監査活動などが含まれる。

  • フロー: アプリケーションとユーザーのコンテキストと集計されたセッションの詳細、例えばバイト数、パケット、および期間を追加するネットワークフローレコード。

各レコードには、data_sourceフィールドが含まれ、その値はeventsまたはflowsです。フローデータは、トラフィックによってイベントデータよりもかなり多くの量を生成する可能性があります。

必須条件

  • CMAのリソースセクション内での統合のエディター権限。詳細については、RBACを使用して管理者の役割を管理するを参照してください。

  • Chronicle APIが有効化された、Google CloudプロジェクトにリンクされたGoogle SecOpsのインスタンス。

  • Google SecOpsでWebhookフィードとリンクされたGoogle CloudプロジェクトでのAPIキーを作成する権限。

  • イベント統合の開始に記載されている事前条件を確認する(必要なIP許可リストの登録を含む)。

ユースケース

これらの例は、関連するデータソースが取り込まれ、レコードを相関させるために使用されるフィールドが一貫して解析されることを前提としています。

イベント

UDMマッピングを確認した後に、YARA-Lルールを作成し、同じユーザーに対するCato脅威イベントと、定義された時間枠内での疑わしいサインインを関連付けます。

フロー

統計検索を使って異常に大きなアウトバウンド転送を特定し、ポリシーや脅威の文脈で関連するCatoイベントを確認します。

Google SecOps統合の作成

Webhookフィードを作成し、Google Cloud APIキーを取得、curlでエンドポイントをテストしてから、CMAにフィードURLと資格情報を入力します。

ステップ1: Google SecOpsでHTTPS Webhookフィードを作成する

Webhookフィードを作成するためには:

  1. Google SecOpsにログインし、設定 > フィード に進んでください。

  2. 新しいフィードを追加 をクリックし、フィード名 を入力します。例:Cato Networks。

  3. ソースタイプ として Webhook を選択します。

  4. Catoのログレコードのログタイプを選択します。

  5. 次へをクリックします。

  6. 分割デリミタ を \n に設定します。これにより、Google SecOpsは各改行区切りのJSONレコードを別々のログエントリとして取り込みます。

  7. (オプション) アセットネームスペース および インジェストラベル を設定します。

  8. 次へ をクリックし、フィード設定を確認してから、送信 をクリックします。

  9. 秘密キーを生成 をクリックします。キーをコピーし、画面を離れる前に安全に保存してください。 Googleは再度表示しません。

  10. 詳細 タブで、エンドポイント情報 からフィードエンドポイントURLをコピーします。 :importPushLogs サフィックスを含む完全なURLを使用してください。

  11. フィードが有効であることを確認します。

別の秘密キーを生成すると、以前のキーが無効になります。 Catoの設定後に秘密キーを回転する場合、配送の隙間を避けるためにCMAでWebhookアクセスキーを直ちに更新してください。

ステップ2: Google Cloud APIキーを作成する

APIキーを作成するには:

  1. Google Cloudコンソールで、Google SecOpsインスタンスにリンクされたプロジェクトを選択します。

  2. APIとサービス & 資格情報 に進んでください。

  3. 資格情報の作成 > APIキー をクリックします。

  4. キーを Chronicle API に制限して、制限を保存します。

  5. APIキーをコピーし、安全に保管してください。

既存のChronicle APIに制限されたAPIキーをリンクされたプロジェクトで使用することもできます。

ステップ3: curlでエンドポイントをテストする

CMAで統合を設定する前に、Google SecOpsに直接テストリクエストを送信してください。これにより、Cato統合からエンドポイントと認証の問題を特定するのに役立ちます。

エンドポイントをテストするには:

  1. ENDPOINT_URLをステップ1からの完全なフィードエンドポイントURLに置き換えます。プロンプトが表示されたら、ステップ2からGoogle Cloud APIキーを、ステップ1からフィードのシークレットキーを入力します。

  2. サンプルタイムスタンプを現在のUTC時間に更新し、次のコマンドを実行します。各JSONオブジェクトを独立した行に保ち、コマンドは両方の記録を1つのリクエストで送信します。

    インタラクティブなBashシェルで全文実行します(必要であれば最初にbashを実行)。隠れたプロンプトで資格情報を入力します。コマンドに挿入しないでください。この例では、シェルトレースを無効にし、認証ヘッダーを標準入力を通じて--header @-を使用して渡すことで、資格情報をシェル履歴やcurlコマンドライン引数から除外します。この例が終了すると、仮の資格情報変数は破棄されます。

    (
     set +axv
     set -euo pipefail
     unset CATO_TEST_API_KEY CATO_TEST_WEBHOOK_SECRET
     IFS= read -r -s -p 'Google Cloud API key: ' CATO_TEST_API_KEY
     builtin printf '\n' >&2
     case "$CATO_TEST_API_KEY" in
     ''|*$'\r'*) builtin printf 'Enter a nonempty credential without carriage returns.\n' >&2; exit 1 ;;
     esac
     IFS= read -r -s -p 'Webhook secret key: ' CATO_TEST_WEBHOOK_SECRET
     builtin printf '\n' >&2
     case "$CATO_TEST_WEBHOOK_SECRET" in
     ''|*$'\r'*) builtin printf 'Enter a nonempty credential without carriage returns.\n' >&2; exit 1 ;;
     esac
    
     builtin printf '%s\n' "X-goog-api-key: ${CATO_TEST_API_KEY}" "X-Webhook-Access-Key: ${CATO_TEST_WEBHOOK_SECRET}" | \
     curl -q --fail --show-error --include --max-time 30 -X POST "ENDPOINT_URL" \
     --header @- \
     -H "Content-Type: application/json" \
     --data-binary '{"message":"test event from Cato 1","timestamp":"2026-07-14T12:00:00Z"}
    {"message":"test event from Cato 2","timestamp":"2026-07-14T12:00:01Z"}'
    )
  3. HTTPレスポンスにエラーがないか確認します。成功したリクエストはHTTP 2xxステータスを返します。

  4. Google SecOpsで、直近の生ログからtest event from Cato 1とtest event from Cato 2を検索します。取り込みに数分かかる場合がありますが、その後、2つの別々のログエントリとして表示されることを確認します。もし両方の記録が1つのログエントリに表示される場合、フィードのSplit delimiterが\nに設定されているか確認してください。このサンプルは接続性と記録の分割をチェックしますが、Catoイベントとフローの全てのパーサーマッピングを検証しません。

このテストは、宛先がサンプルリクエストを受け入れ、個々のログエントリに分割するかどうかを確認します。以下の統合の設定後、Catoデータと解析を検証してください。

ステップ4:CMAで統合を作成

Google SecOpsの統合を作成するには:

  1. CMAナビゲーションメニューから、Resources > Integrationsに進みます。

  2. 設定済みの統合タブを開き、新規をクリックします。

  3. Google SecOpsとデータエクスポートの機能を選択します。

  4. 名前とオプションで説明を入力します。

  5. Webhook URLには、ステップ1からの完全なフィードエンドポイントURLを貼り付けます。

  6. Google Cloud APIキー には Chronicle API にアクセス制限付きのAPIキーを貼り付けます。

  7. Webhook アクセスキー にはフィードの秘密キーを貼り付けます。

  8. データソースで、イベント、フローまたはその両方を選択します。

  9. (オプション) イベントフィルターとフローフィルターを設定して、送信するレコードを制御します。フィルターをご覧ください。

  10. 「保存」をクリックします。

Cato は両キーを暗号化して保存し、再表示されません。統合を編集する際、キーを変更せずに保存値を保持するか、置き換えを入力します。

Cato はX-goog-api-key、X-Webhook-Access-Key、および Content-Type: application/json ヘッダーを自動設定します。ヘッダーを設定する必要はありません。

ステップ5: 取り込みと解析の確認

Cato のデータが Google SecOps に到達したことを確認します。

  1. CMA で統合ステータスを確認します。必要に応じてページを更新し、認証または宛先のエラーを確認します。

  2. Google SecOps では、設定 > フィード に進み、Cato フィードを開き、ステータスと最後の取り込み時間を確認します。

  3. 選択したデータソースごとに、最新のCatoイベントまたはネットワークトラフィックを生成します。

  4. フィードまたは独自の Cato レコード値に設定された取り込みラベルを使用して、最近の生ログを検索します。 data_source フィールドを events または flows の値で検索することもできます。取り込みには数分かかります。

  5. 個々のレコードが解析され、Cato アクティビティに対応するタイムスタンプとマッピングされたフィールドが一致しているか確認します。

フィルター

イベントフィルターとフローフィルターを使用して、Google SecOps にエクスポートする Cato データを制限します。これにより、取り込み量が調整され、関連するアクティビティに調査の焦点が当たります。

グループ内のフィルター条件は AND ロジックを使用します。別々のグループは OR ロジックを使用します。

  • イベントフィルター – 条件を定義するためにフィルターを追加をクリック、または別のフィルターグループを追加するためにグループを追加をクリックします。

  • フローフィルター – フローが選択されている時に利用可能。イベントフィルターと同じグループ分けロジックを使用します。

フィルターが制限が厳しすぎると、エラー報告なしで全てのレコードを除外する可能性があります。データが到着しない場合、選択されたデータソースとフィルター条件を確認してください。

確認された制限事項

  • Google SecOpsは、最大Webフックリクエストサイズとして4 MB、インスタンスごとに毎秒15,000クエリの最大スループットをサポートしています。

  • CatoのレコードがUDMに統合される方法は、フィードのログタイプおよびパーサー設定に依存します。

  • フィードのシークレットを再生成すると、以前のキーが無効になります。シークレットをローテーションする際には、CMAでWebhookアクセスキーを更新してください。

  • Cato統合のリクエスト本文形式、コンテンツタイプ、またはヘッダー名はカスタマイズできません。

トラブル解決

問題点

解決

HTTP 401または403で認証が失敗しました

Google Cloud APIキーが関連付けられたプロジェクトに属しており、Chronicle APIを許可していることを確認してください。フィードのシークレットが置き換えられていないことを確認し、必要に応じてCMAで資格情報を更新してください。

宛先に到達できません

詳細 > エンドポイント情報からフィードエンドポイントの完全なURLをコピーし、:importPushLogsを含めて、フィードが有効であることを確認してください。

統合は正常と思われますが、データが到着しません

データソースの選択とフィルターを確認し、Catoのアクティビティを一致させ、フィードの取り込み状況とパーサーエラーを確認してください。

イベントまたはフローのみが到着します

要求されるソースが選択され、それらのフィルターが一致するレコードを許可していることを確認してください。各ソースがそれに設定されたフィードに送信されているかどうかを確認してください。

生のレコードは到着しますが、フィールドが解析されません

フィードのログタイプとパーサー設定を手順1で設定された内容に対して確認してください。

リクエストが拒否されるか、または大量での取り込みが遅延します

リクエストのサイズやスループット制限に関する宛先エラーを確認し、影響を受けた時間範囲とエラーの詳細をCatoサポートに連絡し、APIキーやWebhookシークレットは除外してください。

追加リソース