收集 IONIX 攻击面管理 日志

支持范围:

本文档介绍了如何配置 IONIX 攻击面管理,以使用网络钩子将日志推送到 Google Security Operations。

IONIX 是一个外部攻击面管理 (EASM) 平台,可发现、评估和验证组织面向互联网的资产和数字供应链中的安全漏洞。IONIX 针对 DNS 发现结果、PKI 问题、云暴露和漏洞提供待办项,并提供优先修复工作流。

准备工作

确保您满足以下前提条件:

  • Google SecOps 实例
  • IONIX 攻击面管理支持通过 HTTP POST 推送来传送日志
  • 拥有对 Google Cloud Console 的访问权限(用于创建 API 密钥)
  • 一个有效的 IONIX 门户账号,对设置 > 集成具有管理员访问权限

在 Google SecOps 中创建 webhook Feed

创建 Feed

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

生成并保存密钥

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

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

获取 Feed 端点网址

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

    https://{region}-chronicle.googleapis.com/v1/{parent}/logs:import
    

    其中,{region} 是 Google SecOps 实例所在的区域(例如 us、europe 或 asia-southeast1),{parent} 是资源路径,格式为 projects/<PROJECT_ID>/locations/<LOCATION>/instances/<INSTANCE_ID>/logTypes/<LOG_TYPE>。

  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 攻击面管理 网络钩子

IONIX 原生支持使用其集成框架通过 HTTP POST 将安全性事件数据推送到外部端点。该集成在 IONIX 门户中配置,并使用与 Splunk HEC 集成相同的机制,经过调整后可将数据推送到 Google SecOps webhook 端点。

构建网络钩子网址

  • 将 Google SecOps 端点网址和 API 密钥合并为一个网址:

    <ENDPOINT_URL>?key=<API_KEY>&secret=<SECRET_KEY>
    
    • 示例:

      https://{region}-chronicle.googleapis.com/v1/{parent}/logs:import?key=AIzaSyD...&secret=abcd1234...
      

在 IONIX 门户中配置集成

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

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

      https://{region}-chronicle.googleapis.com/v1/{parent}/logs:import?key=<API_KEY>
      
  5. 配置推送间隔,以设置 IONIX 向端点发送数据的频率(例如,每 60 分钟发送一次)。

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

  7. 点击保存。

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

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

替代方案:将 IONIX REST API 与自定义脚本搭配使用

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

生成 IONIX API 密钥

  1. 登录 IONIX 门户。
  2. 点击 API Settings(API 设置)。
  3. 为令牌提供名称。
  4. 选择令牌类型:
    • 只读(建议用于数据收集)
    • 读写
  5. 为令牌设置到期日期。
  6. 点击创建令牌。
  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 网络钩子 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 密钥和 Secret 在网址中不可见
  • 更安全(标头不会记录在 Web 服务器访问日志中)
  • 供应商支持的首选方法

方法 2:查询参数

如果您的供应商不支持自定义标头,请将凭据附加到网址。

  • 网址格式:

    <ENDPOINT_URL>?key=<API_KEY>&secret=<SECRET_KEY>
    
    • 示例:
    https://{region}-chronicle.googleapis.com/v1/{parent}/logs:import?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 接受以下标头名称进行身份验证:

  • 对于 API 密钥:

    • x-goog-chronicle-auth(推荐)
    • X-Goog-Chronicle-Auth(不区分大小写)
  • 对于密钥:

    • x-chronicle-auth(推荐)
    • X-Chronicle-Auth(不区分大小写)

UDM 映射表

如需了解 IONIX 日志字段如何映射到 Google Security Operations 统一数据模型 (UDM) 字段,请在支持的默认解析器参考文档中搜索 IONIX 日志类型。

更新日志

查看此解析器的更新日志

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