SIEM Webhook を設定する
始める前に
- Google SecOps のGoogle Cloud プロジェクトが構成され、そのプロジェクトで Chronicle API が有効になっていることを確認します。
コマンドラインの例を使用する
このドキュメントには、Webhook フィードの設定とテストに役立つ curl コマンドの例が記載されています。これらの例では、編集可能なプレースホルダ変数を使用します。これらを効果的に使用するには:
変数を編集する: 設定手順に沿って、Webhook エンドポイント、API キー、シークレットの値を取得します。サンプルコードのプレースホルダ変数をクリックし、実際の値に置き換えます。
ENDPOINT_URL: HTTPS Webhook フィードを作成する際に取得したフィード エンドポイント URL。API_KEY: Google SecOps に対する認証用にWebhook フィード用に作成した API キー。SECRET: HTTPS Webhook フィードを作成する際に生成されたシークレット キー。
1 つのコードサンプルで変数を編集すると、このページのすべての例で変数が更新されます。
コマンドをコピーする: コードブロックの [コードサンプルをコピー] アイコンをクリックします。
コマンドを実行する: コピーしたコマンドをターミナル環境に貼り付けて実行します。
curlコマンドに--fail(または-f)フラグが含まれていることを確認します。これにより、HTTP リクエストが失敗した場合はcurlがゼロ以外の終了コードを返し、成功した場合は0の終了コードを返すようになります。これは次のステップで必要になります。成功を確認する:
curlコマンドが成功すると、出力は返されません。成功を確認するには、次の操作を行います。curlコマンドに--fail(または-f)フラグが含まれている場合は、次のコマンドをすぐに実行して終了コードを確認します。echo $?終了コード
0は成功を示します。
HTTPS Webhook フィードを設定する
HTTPS webhook フィードを設定する手順は次のとおりです。
- HTTPS Webhook フィードを作成し、エンドポイント URL と秘密鍵をコピーします。
- エンドポイント URL で使用する API キーを作成します。既存の API キーを再利用して Google SecOps に対する認証を行うこともできます。
- アプリケーション内でエンドポイント URL を指定します。
1 つの Webhook リクエストで複数のイベントを送信する
次のコードサンプルは、複数の改行区切りの JSON オブジェクトを含む単一のリクエスト本文をフォーマットする方法を示しています。
curl --location 'ENDPOINT_URL' \
--header 'Content-Type: application/json' \
--header 'X-goog-api-key: API_KEY' \
--header 'X-Webhook-Access-Key: SECRET' \
--data $'{"principal": {"asset_id": "asset 123"}, "metadata": {"event_type": "GENERIC_EVENT", "product_name": "Product Acme"}}\n{"principal": {"asset_id": "asset 123"}, "metadata": {"event_type": "GENERIC_EVENT", "product_name": "Product Acme"}}' \
--fail
HTTPS Webhook フィードを作成する
- Google SecOps メニューで、[設定] を選択し、[フィード] をクリックします。
- [新しく追加] をクリックします。
- [フィード名] フィールドに、フィードの名前を入力します。
- [ソースタイプ] リストで、[Webhook] を選択します。
- [ログタイプ] を選択します。たとえば、Open Cybersecurity Schema Framework のフィードを作成するには、[ログタイプ] として [Open Cybersecurity Schema Framework(OCSF)] を選択します。
- [次へ] をクリックします。
- 省略可: 次の入力パラメータの値を指定します。
- Split delimiter: ログ行を区切るために使用される区切り文字(
\nなど)。 - Asset namespace: アセットの名前空間。
- Ingestion labels: このフィードのイベントに適用されるラベル。
- Split delimiter: ログ行を区切るために使用される区切り文字(
- [次へ] をクリックします。
- [Finalize] 画面で新しいフィードの設定を確認し、[送信] をクリックします。
- [秘密鍵を生成する] をクリックして、このフィードを認証するためのシークレット キーを生成します。
- このシークレットは再び表示できないため、秘密鍵をコピーして保存します。新しいシークレット キーを生成できますが、その場合、以前のシークレット キーは無効になります。
- [詳細] タブで、[エンドポイント情報] フィールドから、フィードのエンドポイント URL をコピーします。このエンドポイント URL をクライアント アプリケーション内で指定する必要があります。
- 省略可: [フィードを有効にする] の切り替えボタンをクリックして、フィードを無効にします。フィードはデフォルトで有効になっています。
- [完了] をクリックします。
Webhook フィード用の API キーを作成する
- Google Cloud コンソールの [認証情報] ページに移動します。
- [認証情報を作成] をクリックして [API キー] を選択します。
- API キーへのアクセスを Chronicle API に限定します。
エンドポイント URL を指定する
- クライアント アプリケーション内で、Webhook フィードで提供される HTTPS エンドポイントを指定します。
次の形式でカスタム ヘッダーとして API キーと秘密鍵を指定して、認証を有効にします。
X-goog-api-key: API_KEY X-Webhook-Access-Key: SECRETAPI キーは URL 内で指定するのではなく、ヘッダーとして指定することをおすすめします。
curl --location 'ENDPOINT_URL' \ --header 'Content-Type: application/json' \ --header 'X-goog-api-key: API_KEY' \ --header 'X-Webhook-Access-Key: SECRET' \ --data '{"principal": {"asset_id": "asset 123"}, "metadata": {"event_type": "GENERIC_EVENT", "product_name": "Product Acme"}}' \ --failWebhook クライアントがカスタム ヘッダーをサポートしていない場合は、次の形式のクエリ パラメータを使用して API キーと秘密鍵を指定できます。
ENDPOINT_URL?key=API_KEY&secret=SECRET
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。