设置 SIEM 网络钩子

支持的平台:

准备工作

使用命令行示例

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

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

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

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

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

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

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

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

    echo $?
    

    退出代码 0 表示成功。

设置 HTTPS 网络钩子 Feed

如需设置 HTTPS 网络钩子 Feed,请执行以下操作:

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

在单个网络钩子请求中发送多个事件

以下代码示例展示了如何设置单个请求正文的格式,使其包含多个以换行符分隔的 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 网络钩子 Feed

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

为 webhook Feed 创建 API 密钥

  1. 前往 Google Cloud 控制台的凭据页面。
  2. 点击创建凭据,然后选择 API 密钥。
  3. 限制 API 密钥对 Chronicle 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 专业人士的解答。