设置 SIEM 网络钩子

支持范围:

准备工作

使用命令行示例

本文档包含 curl 命令示例,可帮助您设置和测试网络钩子 Feed。这些示例使用可修改的占位符变量。如需有效使用这些工具,请执行以下操作:

  1. 修改变量:在按照设置步骤操作时,您将获得 Webhook 端点、API 密钥和密钥的值。点击示例代码中的占位符变量,并将其替换为实际值:

    在一个代码示例中修改变量后,此页面上的所有示例都会更新。

  2. 复制命令:点击代码块上的复制代码示例图标。

  3. 运行命令:将复制的命令粘贴到终端环境中并执行。

    确保 curl 命令包含 --fail(或 -f)标志。 这样可以确保在 HTTP 请求失败时,curl 会返回非零退出代码,并返回退出代码 0 以指示成功。 下一步需要用到此信息。

  4. 验证是否成功:如果 curl 命令成功,则不会返回任何输出。如需确认是否成功,请执行以下操作:

    如果 curl 命令包含 --fail(或 -f)标志,请在运行该命令后立即运行以下命令来检查退出代码:

    echo $?
    

    退出代码 0 表示成功。

设置 HTTPS 网络钩子 Feed

如需设置 HTTPS webhook Feed,请执行以下操作:

  1. 创建 HTTPS 网络钩子 Feed,然后复制端点网址和密钥。
  2. 创建 API 密钥,以便与端点网址搭配使用。您还可以重复使用现有 API 密钥向 Google SecOps 进行身份验证。
  3. 在应用中指定端点网址。

在单个 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 Feed

  1. 在 Google SecOps 菜单中,依次选择设置 > 数据管理 > Feed。如果您使用的是仅 SIEM 平台,请依次前往设置 > Feed。
  2. 点击添加新 Feed。
  3. 在 Feed 名称字段中,输入 Feed 的名称。
  4. 在来源类型列表中,选择 Webhook。
  5. 选择日志类型。例如,如需为 Open Cybersecurity Schema Framework 创建 Feed,请选择 Open Cybersecurity Schema Framework (OCSF) 作为日志类型。
  6. 点击下一步。
  7. 可选:为以下输入参数指定值:
    • 拆分定界符:用于分隔日志行的定界符,例如 \n。
    • 资产命名空间:资产命名空间。
    • 注入标签:要应用于此 Feed 中的事件的标签。
  8. 点击下一步。
  9. 在最终确定界面中查看新的新闻信息流配置,然后点击提交。
  10. 点击生成密钥,生成用于对此 Feed 进行身份验证的密钥。
  11. 复制并存储密钥,因为您无法再次查看此密钥。您可以生成新的密钥,但这样做会使之前的密钥失效。
  12. 在详细信息标签页中,从端点信息字段复制 Feed 端点网址。 您需要在客户端应用中指定此端点网址。
  13. 可选:点击 Feed Enabled(已启用 Feed)切换开关,以停用 Feed。该 Feed 默认处于启用状态。
  14. 点击完成。

为 webhook Feed 创建 API 密钥

  1. 前往 Google Cloud 控制台凭证页面。
  2. 点击创建凭据,然后选择 API 密钥。
  3. 限制对 Chronicle API 的 API 密钥访问权限。

指定端点网址

  1. 在客户端应用中,指定 Webhook Feed 中提供的 HTTPS 端点。
  2. 通过以下格式将 API 密钥和密钥指定为自定义标头,从而启用身份验证:

    X-goog-api-key: API_KEY
    X-Webhook-Access-Key: SECRET
    
    • 我们建议您将 API 密钥指定为标头,而不是在网址中指定。

      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"}}' \
          --fail
      
    • 如果您的 webhook 客户端不支持自定义标头,您可以使用以下格式的查询参数指定 API 密钥和密钥:

      ENDPOINT_URL?key=API_KEY&secret=>SECRET
      

需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。