设置 SIEM 网络钩子
准备工作
- 确保已配置 Google SecOps 的Google Cloud 项目,并且已为该项目启用 Chronicle API。
使用命令行示例
本文档包含 curl 命令示例,可帮助您设置和测试 Webhook Feed。这些示例使用可修改的占位变量。如需有效使用这些功能,请执行以下操作:
修改变量:在按照设置步骤操作的过程中,您将获得 webhook 端点、API 密钥和密钥的值。点击示例代码中的占位变量,然后将其替换为实际值:
ENDPOINT_URL:在创建 HTTPS 网络钩子 Feed 时获得的 Feed 端点网址。API_KEY:您为 Webhook Feed 创建的 API 密钥,用于向 Google SecOps 进行身份验证。SECRET:您在创建 HTTPS Webhook Feed 时生成的密钥。
在一个代码示例中修改变量,系统会更新此页面上的所有示例。
复制命令:点击代码块中的复制代码示例图标。
运行命令:将复制的命令粘贴到终端环境中并执行。
确保
curl命令包含--fail(或-f)标志。这样可确保curl在 HTTP 请求失败时返回非零退出代码,并在成功时返回退出代码0。下一步需要用到此信息。验证是否成功:成功的
curl命令不会返回任何输出。如需确认是否成功,请执行以下操作:如果
curl命令包含--fail(或-f)标志,请立即运行以下命令来检查退出代码:echo $?退出代码
0表示成功。
设置 HTTPS 网络钩子 Feed
如需设置 HTTPS 网络钩子 Feed,请执行以下操作:
- 创建 HTTPS Webhook Feed,然后复制端点网址和密钥。
- 创建 API 密钥以用于端点网址。您还可以重复使用现有的 API 密钥向 Google SecOps 进行身份验证。
- 在应用中指定端点网址。
在单个网络钩子请求中发送多个事件
以下代码示例展示了如何设置单个请求正文的格式,使其包含多个以换行符分隔的 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
- 在 Google SecOps 菜单中,选择设置,然后点击 Feed。
- 点击新增。
- 在Feed 名称字段中,输入 Feed 的名称。
- 在来源类型列表中,选择 Webhook。
- 选择日志类型。例如,如需为开放网络安全架构框架创建 Feed,请选择开放网络安全架构框架 (OCSF) 作为日志类型。
- 点击下一步。
- 可选:为以下输入参数指定值:
- 拆分定界符:用于分隔日志行的定界符,例如
\n。 - 资源命名空间:资源命名空间。
- 注入标签:要应用于此 Feed 中事件的标签。
- 拆分定界符:用于分隔日志行的定界符,例如
- 点击下一步。
- 在最终确定界面中查看新的 Feed 配置,然后点击提交。
- 点击生成密钥,生成用于对此 Feed 进行身份验证的密钥。
- 复制并存储密钥,因为您无法再次查看此密钥。您可以生成新的密钥,但这样做会使之前的密钥失效。
- 在详细信息标签页中,从端点信息字段复制 Feed 端点网址。 您需要在客户端应用中指定此端点网址。
- 可选:点击已启用 Feed 切换开关以停用 Feed。该 Feed 默认处于启用状态。
- 点击完成。
为 webhook Feed 创建 API 密钥
- 前往 Google Cloud 控制台的凭据页面。
- 点击创建凭据,然后选择 API 密钥。
- 限制 API 密钥对 Chronicle API 的访问权限。
指定端点网址
- 在客户端应用中,指定 webhook Feed 中提供的 HTTPS 端点。
通过以以下格式将 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 专业人士的解答。