收集 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

  1. 依次前往 SIEM 设置 > Feed
  2. 点击添加新 Feed
  3. 在下一页上,点击配置单个 Feed
  4. Feed 名称字段中,输入 Feed 的名称(例如 IONIX ASM Logs)。
  5. 选择 Webhook 作为来源类型
  6. 选择 IONIX 作为日志类型
  7. 点击下一步
  8. 为以下输入参数指定值:
    • 拆分定界符(可选):输入用于拆分多行事件的定界符。常见值:
      • \n - 换行符定界符(NDJSON 最常用的定界符)
      • 如果每个请求都包含单个活动,则留空
    • 资产命名空间资产命名空间
    • 注入标签:要应用于此 Feed 中事件的标签
  9. 点击下一步
  10. 最终确定界面中查看新的 Feed 配置,然后点击提交

生成并保存密钥

创建 Feed 后,您必须生成用于身份验证的密钥:

  1. 在 Feed 详情页面上,点击生成密钥
  2. 系统会显示一个对话框,其中包含密钥。
  3. 复制并妥善保存此密钥。

获取 Feed 端点网址

  1. 前往相应 Feed 的详细信息标签页。
  2. 端点信息部分,复制 Feed 端点网址
  3. 网址格式为:

    https://malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate
    

    https://<REGION>-malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate
    
  4. 保存此网址以供后续步骤使用。

  5. 点击完成

创建 Google Cloud API 密钥

Google SecOps 需要使用 API 密钥进行身份验证。请在 Google Cloud Console 中创建受限 API 密钥。

创建 API 密钥

  1. 前往 Google Cloud 控制台的“凭据”页面
  2. 选择您的项目(与您的 Google SecOps 实例关联的项目)。
  3. 依次点击创建凭据> API 密钥
  4. 系统会创建一个 API 密钥,并在对话框中显示该密钥。
  5. 点击修改 API 密钥以限制密钥。

限制 API 密钥

  1. API 密钥设置页面中:
    • 名称:输入一个描述性名称(例如 Google SecOps Webhook API Key
  2. API 限制下:
    1. 选择限制密钥
    2. 选择 API 下拉菜单中,搜索并选择 Google SecOps API(或 Chronicle API)。
  3. 点击保存
  4. 从页面顶部的 API 密钥字段复制 API 密钥值。
  5. 安全地保存 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 门户中配置集成

  1. 登录 IONIX 门户(例如 https://<your-portal-name>.ionix.com)。
  2. 前往设置 > 集成
  3. 依次点击 Splunk 集成 > 设置
  4. 提供以下配置详细信息:

    • HEC 令牌:输入从 Google SecOps 网络钩子 Feed 生成的密钥。
    • Splunk 服务器:输入完整的 Google SecOps Webhook 端点网址,并将 API 密钥作为查询参数附加到该网址。请使用以下格式:

      https://malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate?key=<API_KEY>
      
  5. 配置推送间隔,以设置 IONIX 向端点发送数据的频率(例如,每 60 分钟一次)。

  6. 填写与您的环境相关的任何其他数据字段。

  7. 点击保存

  8. 将集成开关切换为已启用,以开启集成。

  9. 数据将在一个推送间隔周期内开始显示在 Google SecOps 中。初始数据交付最多可能需要一个小时。

替代方案:使用 IONIX REST API 和自定义脚本

如果原生 Splunk HEC 集成不符合您的要求,您可以使用 IONIX REST API 拉取数据并将其转发到 Google SecOps。

生成 IONIX API 密钥

  1. 登录 IONIX 门户
  2. 点击 API 设置
  3. 为令牌提供名称
  4. 选择令牌类型:
    • 只读(建议用于数据收集)
    • 读写
  5. 为令牌设置失效日期
  6. 点击 Create Token
  7. 复制生成的令牌并妥善保存。

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 支持多种身份验证方法。选择供应商支持的方法。

如果您的供应商支持自定义 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 专业人士的解答。