收集 IBM OpenPages 日志

支持:

本文档介绍了如何配置 IBM OpenPages 以使用 Webhook 将日志推送到 Google Security Operations。

IBM OpenPages 是一个由 AI 驱动的治理、风险和合规性 (GRC) 平台,可提供集中式解决方案来管理风险、法规遵从、内部审核、IT 治理和政策管理。OpenPages 支持 Webhook(9.1.2 及更高版本),当 GRC 对象被创建、更新、删除、关联或取消关联时,Webhook 会发送实时事件通知。

准备工作

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

  • Google SecOps 实例
  • IBM OpenPages 支持使用 Webhook 或 HTTP POST 传送日志
  • 有权访问 Google Cloud Console(用于创建 API 密钥)
  • IBM OpenPages 9.1.2 或更高版本,且具有管理员访问权限
  • 对于本地部署和 Cloud Pak for Data 部署,RabbitMQ 已安装并配置,且已设置 OpenPages 与 RabbitMQ 的连接
  • 对于 SaaS 部署,Google SecOps Webhook 端点网域必须位于批准的许可名单中

在 Google SecOps 中创建 Webhook Feed

创建 Feed

  1. 前往 SIEM 设置 > Feed。
  2. 点击添加新 Feed 。
  3. 在下一页上,点击配置单个 Feed 。
  4. 在 Feed 名称 字段中,输入 Feed 的名称(例如 IBM OpenPages Events)。
  5. 选择 Webhook 作为来源类型 。
  6. 选择 IBM OpenPages 作为日志类型 。
  7. 点击下一步 。
  8. 为以下输入参数指定值:
    • 拆分分隔符 (可选):输入 \n 以拆分多行事件
    • 资产命名空间:资产命名空间
    • 注入标签:要应用于此 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 密钥。

配置 IBM OpenPages Webhook

构建网络钩子网址

  • 将 Chronicle 端点网址和 API 密钥组合在一起:

    <ENDPOINT_URL>?key=<API_KEY>
    

    示例:

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

在 IBM OpenPages 中创建 Webhook

  1. 以管理员身份登录 IBM OpenPages 管理控制台。
  2. 依次前往管理 > 集成 > Webhook。
  3. 点击创建 Webhook 。
  4. 提供以下配置详细信息:

    • 端点网址:粘贴包含 API 密钥的完整端点网址(例如 https://{region}-chronicle.googleapis.com/v1/{parent}/logs:import?key=AIzaSyD...)。

    • 身份验证方法:选择 Bearer 令牌。

    • 不记名令牌:粘贴在 Google SecOps Feed 创建步骤中生成的密钥。

  5. 在 Event Subscriptions 部分中,选择要监控的对象类型和事件:

    • 对象类型:选择要监控的 GRC 对象类型(例如 SOXRisk、SOXIssue、SOXBusEntity、SOXControl、SOXProcess、SOXTask)。
    • 事件类型:选择要发送到 Google SecOps 的事件:
      • create :在创建订阅类型的对象时发布
      • update :在更新订阅类型的对象时发布(包括更改的字段)
      • delete :在删除订阅类型的对象时发布
      • associate :在对象与父对象关联时发布
      • disassociate :在对象从父对象中移除时发布

测试并启用 Webhook

对于 SaaS 部署:

  1. 首先启用 Webhook,方法是将已启用 开关切换为开启 。
  2. 等待大约 1-2 分钟,以打开出站连接。
  3. 点击测试连接 以验证端点是否可访问。
  4. 验证测试是否返回成功响应。

对于本地部署:

  1. 点击测试连接 以验证端点是否可访问。
  2. 验证测试是否返回成功响应。
  3. 启用 Webhook,方法是将已启用 开关切换为开启 。
  4. 等待大约 5 分钟,让事件代理提取配置。

Webhook 载荷格式

  • IBM OpenPages 通过 HTTP POST 以 JSON 载荷的形式发送 Webhook 事件。以下是风险对象更新的 Webhook 载荷示例:

    {
        "action": "update",
        "type": "GRC_OBJECT",
        "objectType": "SOXRisk",
        "message": {
            "event": "update",
            "publishedDate": "2025-09-25 02:14:26.797Z",
            "details": {
                "object_id": "9032",
                "object_name": "RB-01-Risk00190",
                "object_path": "/_op_sox/Project/Default/ICDocumentation/Risks/Global Financial Services/North America/Retail Banking/RB-01-Risk00190.txt",
                "updated_fields": [
                    "OPSS-Risk-Qual:Inherent Likelihood",
                    "OPSS-Risk-Qual:Inherent Risk Rating",
                    "OPSS-Risk-Quant:Inherent Frequency",
                    "OPSS-Risk-Quant:Inherent Risk Exposure"
                ],
                "last_modification": "2025-08-30 08:58:48.000Z"
            },
            "actor": {
                "iam_id": "user1@ibm.com",
                "user_id": "2087",
                "user_name": "user1"
            }
        },
        "version": "9.1.2"
    }
    

Webhook 系统限制

限制条件 值
已启用的 Webhook 数上限 50(默认值),可通过 /Platform/Messaging/Webhooks Limit 注册表设置配置为最多 100
唯一端点网址 每个 Webhook 都必须使用唯一的端点网址
队列中的事件 TTL 1 天(在此期间未分派的事件将被移除)
代理提取延迟 启用 Webhook 后 5 分钟

身份验证方法参考

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 密钥和 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 映射表

日志字段 UDM 映射 逻辑
column5 metadata.description 事件的说明
has_principal_user metadata.event_type 事件类型(例如 USER_LOGIN、NETWORK_CONNECTION)
column1 metadata.product_event_type 特定于产品的事件类型
metadata.product_name metadata.product_name 商品名称
metadata.vendor_name metadata.vendor_name 供应商/公司名称
column6 principal.user.userid 主体的用户 ID
is_successful security_result.action 执行的操作
is_successful security_result.action_details 操作详情
column4 security_result.detection_fields 其他检测字段
column5 security_result.detection_fields
计数器 security_result.detection_fields
column4 security_result.description 安全结果的说明
column2 security_result.summary 安全结果的摘要
column4 target.user.attribute.roles 与目标用户关联的角色
column4 target.user.userid 目标的 User ID
target_user target.user.userid 从变更日志映射
IBM_OPENPAGES metadata.vendor_name 从变更日志映射
IBM_OPENPAGES metadata.product_name 从变更日志映射
OpenPages metadata.product_name 从变更日志映射

更新日志

查看此解析器的更新日志

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