收集 RSA SecurID Access 日志

支持:

本文档介绍了如何使用 Bindplane 代理将 RSA SecurID Access 日志注入 Google Security Operations。

RSA SecurID Access 是一款多重身份验证和身份保证平台,用于企业访问权限管理。它会生成涵盖用户和系统活动、身份验证事件以及令牌管理的审核日志。解析器会从 RSA SecurID 日志条目中提取字段,并将其映射到统一数据模型 (UDM),从而捕获用户身份、身份验证结果、会话详细信息和安全元数据。

准备工作

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

  • Google SecOps 实例
  • Windows Server 2016 或更高版本,或者具有 systemd 的 Linux 主机
  • Bindplane 代理与 RSA SecurID Access Identity Router 或 Authentication Manager 设备之间的网络连接
  • 如果通过代理运行,请确保防火墙端口根据 Bindplane 代理要求处于开放状态
  • 对 RSA SecurID Access Cloud 管理控制台或安全控制台的特权访问权限(具有管理员权限)

获取 Bindplane 代理的 Google SecOps 凭证

如需向 Google SecOps 验证 Bindplane 代理的身份,请选择以下方法之一:

  • 新部署:使用 Chronicle API(选项 1)。
  • 旧版部署:继续使用数据注入身份验证文件(方法 2),直到 Ingestion API 于 2027 年 7 月 20 日停用。
  1. 登录 Google Cloud 控制台,然后选择与您的 Google SecOps 实例关联的 Google Cloud 项目。
  2. 前往 IAM 和管理 > 服务账号。
  3. 点击创建服务账号。
  4. 提供以下配置详细信息:
    • 服务账号名称:输入账号的名称(例如 bindplane-ingest)。
    • 服务账号说明:输入说明(例如 Bindplane agent log ingestion)。
  5. 点击创建并继续。
  6. 在向此服务账号授予对项目的访问权限部分,点击选择角色,然后选择 Chronicle Editor。
  7. 点击继续,然后点击完成。
  8. 点击您创建的服务账号,然后前往密钥标签页。
  9. 依次点击添加密钥> 创建新密钥。
  10. 选择 JSON,然后点击创建。密钥文件会下载到您的计算机上。
  11. 将密钥文件另存为 Bindplane 收集器目录(Linux 上的 /opt/observiq-otel-collector/ingestion-auth.json 或 Windows 上的 C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json)中的 ingestion-auth.json,或更新 config.yaml 中的 creds_file_path 以匹配您保存该文件的路径。
  12. 前往 IAM 和管理 > 设置,然后复制项目编号。您在配置导出器时需要用到该名称。

方法 2:下载数据注入身份验证文件(旧版)

  1. 登录 Google SecOps 控制台。
  2. 依次前往 SIEM 设置 > 收集代理。
  3. 下载数据注入身份验证文件。
  4. 将文件安全地保存在将安装 Bindplane 代理的系统上。

获取 Google SecOps 客户 ID

  1. 登录 Google SecOps 控制台。
  2. 依次前往 SIEM 设置 > 配置文件。
  3. 从组织详细信息部分复制并保存客户 ID。

安装 Bindplane 代理

根据以下说明,在 Windows 或 Linux 操作系统上安装 Bindplane 代理。

Windows 安装

  1. 以管理员身份打开命令提示符或 PowerShell。
  2. 运行以下命令:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    
  3. 等待安装完成。

  4. 运行以下命令,验证安装是否成功:

    sc query observiq-otel-collector
    

    该服务应显示为正在运行。

Linux 安装

  1. 打开具有 root 或 sudo 权限的终端。
  2. 运行以下命令:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    
  3. 等待安装完成。

  4. 运行以下命令,验证安装是否成功:

    sudo systemctl status observiq-otel-collector
    

    该服务应显示为 active (running)。

其他安装资源

如需了解其他安装选项和问题排查信息,请参阅 Bindplane 代理安装指南。

配置 Bindplane 代理以注入 syslog 并发送到 Google SecOps

找到配置文件

  • Linux:

    sudo nano /opt/observiq-otel-collector/config.yaml
    
  • Windows:

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

修改配置文件

  • 将 config.yaml 的全部内容替换为以下配置:

    receivers:
      udplog:
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/rsa_securid:
        protocol: https
        # Region of your instance, for example us, europe, asia-southeast1
        location: <LOCATION>
        # Project number of the Google Cloud project linked to the instance
        project: '<PROJECT_NUMBER>'
        compression: gzip
        creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json'
        customer_id: '<customer_id>'
        endpoint: chronicle.googleapis.com
        log_type: RSA_SECURID
        raw_log_field: body
    
    service:
      pipelines:
        logs/rsa_securid:
          receivers:
            - udplog
          exporters:
            - chronicle/rsa_securid
    

配置参数

替换以下占位符:

  • 接收器配置:

    • udplog:基于协议的接收器类型:
      • udplog(适用于 UDP syslog)
      • tcplog(适用于 TCP syslog)
      • 针对 RFC 3164/5424 syslog 的 syslog
    • 0.0.0.0:要监听的 IP 地址:
      • 0.0.0.0,以监听所有接口(推荐)
      • 要在一个接口上监听的特定 IP 地址
    • 514:要监听的端口号(例如 514、1514、6514)
  • 导出器配置:

    • <customer_id>:上一步中的客户 ID
    • location:将 <LOCATION> 替换为 Google SecOps 实例所在的区域(例如 us、europe 或 asia-southeast1)。导出工具会在此值前面加上 chronicle.googleapis.com。如需查看完整列表,请参阅区域级端点。
    • project:将 <PROJECT_NUMBER> 替换为 IAM 和管理 > 设置中的项目编号。
    • endpoint:保持设置为 chronicle.googleapis.com。
    • 根据平台,将 creds_file_path 调整为服务账号 JSON 密钥文件的路径(选项 1):
      • Linux:/opt/observiq-otel-collector/ingestion-auth.json
      • Windows:C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json

旧版提取 API

  • 如果您使用选项 2 中的数据注入身份验证文件,请将 exporters 代码块替换为以下内容。将 creds_file_path 设置为数据注入身份验证文件的路径,如果您的实例位于美国境外,请将 malachiteingestion-pa.googleapis.com 替换为您的区域端点(例如 europe-malachiteingestion-pa.googleapis.com)。

    exporters:
      chronicle/rsa_securid:
        compression: gzip
        creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json'
        customer_id: '<customer_id>'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: RSA_SECURID
        raw_log_field: body
    

保存配置文件

  • 修改后,保存文件:
    • Linux:依次按 Ctrl+O、Enter 和 Ctrl+X
    • Windows:依次点击文件 > 保存

重启 Bindplane 代理以应用更改

  • 如需在 Linux 中重启 Bindplane 代理,请运行以下命令:

    sudo systemctl restart observiq-otel-collector
    
    1. 验证服务是否正在运行:

      sudo systemctl status observiq-otel-collector
      
    2. 检查日志中是否存在错误:

      sudo journalctl -u observiq-otel-collector -f
      
  • 如需在 Windows 中重启 Bindplane 代理,请选择以下选项之一:

    • 以管理员身份运行命令提示符或 PowerShell:

      net stop observiq-otel-collector && net start observiq-otel-collector
      
    • 服务控制台:

      1. 按 Win+R,输入 services.msc,然后按 Enter 键。
      2. 找到 observIQ OpenTelemetry 收集器。
      3. 右键点击并选择重启。
      4. 验证服务是否正在运行:

        sc query observiq-otel-collector
        
      5. 检查日志中是否存在错误:

        type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
        

配置 RSA SecurID Access syslog 转发

在 Cloud 管理控制台中配置审核日志记录

  1. 登录 RSA SecurID Access Cloud 管理控制台。
  2. 依次前往平台 > 审核日志记录。
  3. 点击已启用。
  4. 在输出下,选择发送到 syslog。
  5. 在 Syslog 服务器字段中,输入 Bindplane 代理主机的 IP 地址(例如 192.168.1.100)。
  6. 在端口字段中,输入 514(必须与 Bindplane 接收器端口一致)。
  7. 从协议下拉列表中,选择 UDP(必须与 Bindplane 接收器类型一致)。
  8. 在事件类型下,选择要记录的事件:
    • 用户活动:登录尝试、个人资料更改和其他用户活动。
    • 包含授权请求:受保护应用的授权事件。
    • 系统事件:备份、防火墙规则更改和其他系统活动。
    • 包含系统错误事件:错误级系统事件。
  9. 点击保存。

在 RSA Authentication Manager 安全控制台中配置日志记录

如果您还运行 RSA Authentication Manager(本地),请配置日志记录,以便将身份验证和审核事件发送到 syslog:

  1. 登录 RSA Authentication Manager 安全控制台。
  2. 依次前往设置 > 系统设置 > 日志记录。
  3. 选择一个实例(例如,Primary),然后点击下一步。
  4. 为以下日志设置日志级别:
    • 管理审核日志:管理操作,例如用户创建、令牌分配和政策更改。
    • 运行时审核日志:身份验证事件,例如成功和失败的身份验证尝试。
    • 系统日志:系统级事件,例如服务启动/停止和复制状态。
  5. 对于日志数据目的地,请为每种日志类型选择保存到内部数据库和本地操作系统 SysLog。
  6. 点击保存。

配置从 Authentication Manager 进行远程 Syslog 转发

对于 RSA Authentication Manager 8.4 或更高版本(使用 rsyslog):

  1. 通过 SSH 连接到 RSA Authentication Manager 设备。
  2. 修改远程 syslog 配置文件:

    sudo vi /etc/rsyslog.d/remote.conf
    
  3. 添加一行,将 Bindplane 代理指定为远程 syslog 服务器:

    *.* @BINDPLANE_AGENT_IP:514
    
  4. 重启 rsyslog 服务:

    sudo systemctl restart rsyslog
    

对于 RSA Authentication Manager 8.1-8.3(使用 syslog-ng):

  1. 通过 SSH 连接到 RSA Authentication Manager 设备。
  2. 修改 syslog-ng 配置文件:

    sudo vi /etc/syslog-ng/syslog-ng.conf
    
  3. 找到有关启用 IP 以将日志消息发送到日志服务器的注释,并将 IP 地址更改为 Bindplane 代理主机 IP 地址。

  4. 重启 syslog-ng 服务:

    sudo /etc/init.d/syslog restart
    

UDM 映射表

日志字段 UDM 映射 逻辑
column23、column24、column22、column26、column27、column28 additional.fields 已与指定列中的键值对合并
extensions.auth.mechanism 设置为“USERNAME_PASSWORD”
extensions.auth.type 设为“MACHINE”
说明 metadata.description 直接复制值
action、username1、srcUser、has_principal、has_target、has_user metadata.event_type 如果操作已关闭,则设置为 USER_LOGOUT;如果操作已打开或密码已过期,则设置为 USER_LOGIN;否则设置为 USER_UNCATEGORIZED。然后,如果 has_principal、has_target 和 has_user 均为 true,则设置为 USER_LOGIN;如果 has_principal 和 has_target 均为 true,则设置为 NETWORK_CONNECTION;如果 has_principal 为 true,则设置为 STATUS_UPDATE
audit_section, column4, application metadata.product_event_type 如果位于 tokenmgt 或 authn 中,则为 audit_section 中的值;如果为 csv,则为 column4 中的值;否则为 application 中的值
column2、column6 metadata.product_log_id 如果位于 tokenmgt/authn 中,则为 column2 中的值,否则为 column6 中的值
说明 metadata.product_version 使用 grok 模式从说明中提取
column10, column14 network.session_id 如果位于 tokenmgt 或 authn 中,则为 column10 中的值,否则为 column14 中的值
column20、column24、hostname principal.asset.hostname 如果位于 tokenmgt 中,则取 column20 的值;如果位于其他 CSV 中,则取 column24 的值;否则取 hostname 的值
column4, column5, column8 principal.asset.ip 如果位于 tokenmgt 中,则为 column4 中的值;如果位于 authn 中,则为 column5 中的值;否则为 column8 中的值
column20、column24、hostname principal.hostname 如果位于 tokenmgt 中,则为 column20 中的值;如果位于其他 CSV 中,则为 column24 中的值;否则为 hostname 中的值
column4, column5, column8 principal.ip 如果位于 tokenmgt 中,则为 column4 中的值;如果位于 authn 中,则为 column5 中的值;否则为 column8 中的值
principal.platform 设置为“LINUX”
process_id principal.process.pid 直接复制的值
column12, column13, column11, column15, column16, column17 principal.resource.attribute.labels 与指定列中的标签合并
column16、column15、column19 principal.user.first_name 如果位于 tokenmgt 中,则为 column16 中的值;如果位于 authn 中,则为 column15 中的值;否则为 column19 中的值
column17, column16, column20 principal.user.last_name 如果位于 tokenmgt 中,则为 column17 中的值;如果位于 authn 中,则为 column16 中的值;否则为 column20 中的值
column16, column17, column15, column19, column20 principal.user.user_display_name 由名字和姓氏字段串联而成
column15, column14, column18, srcUser, username principal.user.userid 如果位于 tokenmgt 中,则为 column15 中的值;如果位于 authn 中,则为 column14 中的值;如果位于其他 CSV 中,则为 column18 中的值;如果为 sudo,则为 srcUser 中的值;否则为 username 中的值
column8、column12 security_result.action 如果 column8 或 column12 为 SUCCESS,则设置为 ALLOW,否则设置为 BLOCK
column8、column12 security_result.category_details 如果位于 tokenmgt/authn 中,则为 column8 中的值,否则为 column12 中的值
column20 security_result.detection_fields 已与 column20 中的检测字段合并
column6, column10 security_result.rule_name 如果位于 tokenmgt/authn 中,则为 column6 中的值,否则为 column10 中的值
column1、column5 security_result.severity 如果为 error/warning/ERROR,则设置为 HIGH;如果为 critical,则设置为 CRITICAL;如果为 notice,则设置为 MEDIUM;如果为 information/info/INFO,则设置为 LOW
column1、column5 security_result.severity_details 直接复制的值
column18, column9, column13 security_result.summary 如果位于 tokenmgt 中,则为 column18 中的值;如果位于 authn 中,则为 column9 中的值;否则为 column13 中的值
应用 target.application 直接复制的值
主机名 target.asset.hostname 直接复制值
column5、column4、column9 target.asset.ip 如果位于 tokenmgt 中,则为 column5 中的值;如果位于 authn 中,则为 column4 中的值;否则为 column9 中的值
主机名 target.hostname 直接复制值
column5、column4、column9 target.ip 如果位于 tokenmgt 中,则为 column5 中的值;如果位于 authn 中,则为 column4 中的值;否则为 column9 中的值
命令 target.process.command_line 直接复制值
PWD target.process.file.full_path 直接复制值
pid target.process.pid 直接复制值
column11 target.resource.product_object_id 直接复制值
说明 target.url 使用 grok 模式从说明中提取
column27、username1、username target.user.userid 如果位于 tokenmgt 中,则为 column27 中的值;如果为 sudo,则为 username1 中的值;否则为 username 中的值
metadata.product_name 设置为“RSA SECURID”
metadata.vendor_name 设置为“RSA”
time" and "column1 metadata.event_timestamp 从更新日志映射

更新日志

查看此解析器的更新日志

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