收集 IBM OpenPages 日志

支持的平台:

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

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

准备工作

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

  • 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 配置,然后点击提交

生成并保存密钥

创建 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 密钥。

配置 IBM OpenPages webhook

构建网络钩子网址

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

    <ENDPOINT_URL>?key=<API_KEY>
    

    示例

    https://malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate?key=AIzaSyD...
    

在 IBM OpenPages 中创建 webhook

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

    • 端点网址:粘贴包含 API 密钥的完整端点网址(例如 https://malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate?key=AIzaSyD...)。

    • 身份验证方法:选择不记名令牌

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

  5. 事件订阅部分,选择要监控的对象类型和事件:

    • 对象类型:选择要监控的 GRC 对象类型(例如 SOXRiskSOXIssueSOXBusEntitySOXControlSOXProcessSOXTask)。
    • 事件类型:选择要发送到 Google SecOps 的事件:
      • create - 在创建订阅类型的对象时发布
      • update - 在订阅类型的对象更新时发布(包括哪些字段发生了变化)
      • delete - 在订阅类型的对象被删除时发布
      • associate - 当对象与父对象关联时发布
      • disassociate - 当对象从父对象中移除时发布

测试并启用网络钩子

对于 SaaS 部署

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

对于本地部署

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

网络钩子载荷格式

  • IBM OpenPages 通过 HTTP POST 将 webhook 事件作为 JSON 载荷发送。以下是风险对象更新的 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 数量上限 50(默认值),可通过 /Platform/Messaging/Webhooks Limit 注册表设置配置为最多 100
唯一端点网址 每个 Webhook 都必须使用唯一的端点网址
队列中的事件 TTL 1 天(未在此期限内调度的事件会被移除)
经纪人取件延迟 启用网络钩子 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 密钥和密文在网址中不可见
  • 更安全(标头不会记录在 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 映射表

日志字段 UDM 映射 逻辑
column5 metadata.description 事件的说明
has_principal_user metadata.event_type 事件类型(例如 USER_LOGIN、NETWORK_CONNECTION)
第 1 列 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 安全结果的说明
第 2 列 security_result.summary 安全性结果摘要
column4 target.user.attribute.roles 与目标用户相关联的角色
column4 target.user.userid 目标的相应用户 ID
target_user target.user.userid 从变更日志映射
IBM_OPENPAGES metadata.vendor_name 从变更日志映射
IBM_OPENPAGES metadata.product_name 从变更日志映射
OpenPages metadata.product_name 从变更日志映射

更新日志

查看相应解析器的更改日志

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