收集 IONIX Attack Surface Management 日志
本文档介绍了如何配置 IONIX Attack Surface Management,以使用 Webhook 将日志推送到 Google Security Operations。
IONIX 是一个外部攻击面管理 (EASM) 平台,可发现、评估和验证组织面向互联网的资产和数字供应链中的安全风险。IONIX 可针对 DNS 发现、PKI 问题、云风险和漏洞提供行动项,并提供优先处理的补救工作流。
准备工作
确保您满足以下前提条件:
- Google SecOps 实例
- IONIX Attack Surface Management 支持通过 HTTP POST 推送方式传送日志
- 对 Google Cloud Console 的访问权限(用于创建 API 密钥)
- 具有管理员访问权限的有效 IONIX 门户账号,可访问设置 > 集成
在 Google SecOps 中创建 Webhook Feed
创建 Feed
- 依次前往 SIEM 设置 > Feed。
- 点击添加新 Feed。
- 在下一页上,点击配置单个 Feed。
- 在 Feed 名称字段中,输入 Feed 的名称(例如
IONIX ASM Logs)。 - 选择 Webhook 作为来源类型。
- 选择 IONIX 作为日志类型。
- 点击下一步。
- 为以下输入参数指定值:
- 拆分定界符(可选):输入用于拆分多行事件的定界符。常见值:
\n- 换行符定界符(NDJSON 最常用的定界符)- 如果每个请求都包含单个活动,则留空
- 资产命名空间:资产命名空间
- 注入标签:要应用于此 Feed 中事件的标签
- 拆分定界符(可选):输入用于拆分多行事件的定界符。常见值:
- 点击下一步。
- 在最终确定界面中查看新的 Feed 配置,然后点击提交。
生成并保存密钥
创建 Feed 后,您必须生成用于身份验证的密钥:
- 在 Feed 详情页面上,点击生成密钥。
- 系统会显示一个对话框,其中包含密钥。
- 复制并妥善保存此密钥。
获取 Feed 端点网址
- 前往相应 Feed 的详细信息标签页。
- 在端点信息部分,复制 Feed 端点网址。
网址格式为:
https://malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate或
https://<REGION>-malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate保存此网址以供后续步骤使用。
点击完成。
创建 Google Cloud API 密钥
Google SecOps 需要使用 API 密钥进行身份验证。请在 Google Cloud Console 中创建受限 API 密钥。
创建 API 密钥
- 前往 Google Cloud 控制台的“凭据”页面。
- 选择您的项目(与您的 Google SecOps 实例关联的项目)。
- 依次点击创建凭据> API 密钥。
- 系统会创建一个 API 密钥,并在对话框中显示该密钥。
- 点击修改 API 密钥以限制密钥。
限制 API 密钥
- 在 API 密钥设置页面中:
- 名称:输入一个描述性名称(例如
Google SecOps Webhook API Key)
- 名称:输入一个描述性名称(例如
- 在 API 限制下:
- 选择限制密钥。
- 在选择 API 下拉菜单中,搜索并选择 Google SecOps API(或 Chronicle API)。
- 点击保存。
- 从页面顶部的 API 密钥字段复制 API 密钥值。
- 安全地保存 API 密钥。
配置 IONIX 攻击面管理 Webhook
IONIX 通过其集成框架,原生支持使用 HTTP POST 将安全事件数据推送到外部端点。集成在 IONIX 门户中配置,并使用与 Splunk HEC 集成相同的机制,但经过调整,可将数据推送到 Google SecOps webhook 端点。
构建网络钩子网址
将 Google SecOps 端点网址和 API 密钥合并为一个网址:
<ENDPOINT_URL>?key=<API_KEY>&secret=<SECRET_KEY>示例:
https://malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate?key=AIzaSyD...&secret=abcd1234...
在 IONIX 门户中配置集成
- 登录 IONIX 门户(例如
https://<your-portal-name>.ionix.com)。 - 前往设置 > 集成。
- 依次点击 Splunk 集成 > 设置。
提供以下配置详细信息:
- HEC 令牌:输入从 Google SecOps 网络钩子 Feed 生成的密钥。
Splunk 服务器:输入完整的 Google SecOps Webhook 端点网址,并将 API 密钥作为查询参数附加到该网址。请使用以下格式:
https://malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate?key=<API_KEY>
配置推送间隔,以设置 IONIX 向端点发送数据的频率(例如,每 60 分钟一次)。
填写与您的环境相关的任何其他数据字段。
点击保存。
将集成开关切换为已启用,以开启集成。
数据将在一个推送间隔周期内开始显示在 Google SecOps 中。初始数据交付最多可能需要一个小时。
替代方案:使用 IONIX REST API 和自定义脚本
如果原生 Splunk HEC 集成不符合您的要求,您可以使用 IONIX REST API 拉取数据并将其转发到 Google SecOps。
生成 IONIX API 密钥
- 登录 IONIX 门户。
- 点击 API 设置。
- 为令牌提供名称。
- 选择令牌类型:
- 只读(建议用于数据收集)
- 读写
- 为令牌设置失效日期。
- 点击 Create Token。
- 复制生成的令牌并妥善保存。
IONIX API 端点
使用以下 API 端点从 IONIX 检索安全数据:
| 端点 | 说明 |
|---|---|
/api/v1/remediation/action-items/open/ |
打开操作项(网域、根端点) |
/api/v1/remediation/action-items/all/detailed |
包含详细信息的所有操作项 |
/api/v1/discovery/org-assets/export-discovery-evidence |
资产风险和发现证据 |
/api/v1/discovery/org-assets |
组织资产(包括 first_seen 日期) |
/api/v1/tests |
安全测试结果 |
API 请求示例
curl -X GET "https://api.portal.ionix.io/api/v1/remediation/action-items/all/detailed" \ -H "Authorization: Token <IONIX_API_KEY>" \ -H "Content-Type: application/json"
将数据转发到 Google SecOps
从 IONIX API 检索数据后,将其转发到 Google SecOps Webhook 端点:
curl -X POST "<ENDPOINT_URL>?key=<API_KEY>&secret=<SECRET_KEY>" \ -H "Content-Type: application/json" \ -d @ionix_events.json
身份验证方法参考
Google SecOps Webhook Feed 支持多种身份验证方法。选择供应商支持的方法。
方法 1:自定义标头(推荐)
如果您的供应商支持自定义 HTTP 标头,请使用此方法以提高安全性。
请求格式:
POST <ENDPOINT_URL> HTTP/1.1 Content-Type: application/json x-goog-chronicle-auth: <API_KEY> x-chronicle-auth: <SECRET_KEY> { "event": "data", "timestamp": "2025-01-15T10:30:00Z" }
优点:
- API 密钥和密文在网址中不可见
- 更安全(标头不会记录在 Web 服务器访问日志中)
- 供应商支持时的首选方法
方法 2:查询参数
如果您的供应商不支持自定义标头,请将凭据附加到网址。
网址格式:
<ENDPOINT_URL>?key=<API_KEY>&secret=<SECRET_KEY>- 示例:
https://malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate?key=AIzaSyD...&secret=abcd1234...请求格式:
POST <ENDPOINT_URL>?key=<API_KEY>&secret=<SECRET_KEY> HTTP/1.1 Content-Type: application/json { "event": "data", "timestamp": "2025-01-15T10:30:00Z" }
缺点:
- 网址中显示的凭据
- 可能会记录在 Web 服务器访问日志中
- 安全性不如标头
方法 3:混合(网址 + 标头)
某些配置在网址中使用 API 密钥,在标头中使用密钥。
请求格式:
POST <ENDPOINT_URL>?key=<API_KEY> HTTP/1.1 Content-Type: application/json x-chronicle-auth: <SECRET_KEY> { "event": "data", "timestamp": "2025-01-15T10:30:00Z" }
身份验证标头名称
Google SecOps 接受以下用于身份验证的 HTTP 标头名称:
对于 API 密钥:
x-goog-chronicle-auth(推荐)X-Goog-Chronicle-Auth(不区分大小写)
对于密钥:
x-chronicle-auth(推荐)X-Chronicle-Auth(不区分大小写)
UDM 映射表
如需了解 IONIX 日志字段如何映射到 Google Security Operations Unified Data Model (UDM) 字段,请在支持的默认解析器参考文档中搜索 IONIX 日志类型。
更新日志
需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。