收集 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 管理控制台或安全控制台的管理员权限

获取 Google SecOps 注入身份验证文件

  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
    

    该服务应显示为有效(正在运行)

其他安装资源

如需了解其他安装选项和问题排查信息,请参阅 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:
            compression: gzip
            creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
            customer_id: '<customer_id>'
            endpoint: malachiteingestion-pa.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)
      • syslog(适用于 RFC 3164/5424 syslog)
    • 0.0.0.0:要监听的 IP 地址:
      • 0.0.0.0 侦听所有接口(推荐)
      • 在某个接口上监听的特定 IP 地址
    • 514:要监听的端口号(例如 51415146514
  • 导出器配置

    • <customer_id>:上一步中的客户 ID
    • malachiteingestion-pa.googleapis.com:区域端点网址:
      • 美国malachiteingestion-pa.googleapis.com
      • 欧洲europe-malachiteingestion-pa.googleapis.com
      • 亚洲asia-southeast1-malachiteingestion-pa.googleapis.com
      • 如需查看完整列表,请参阅区域级端点
    • 根据平台调整 creds_file_path
      • Linux/etc/bindplane-agent/ingestion-auth.json
      • WindowsC:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json

保存配置文件

  • 修改后,保存文件:
    • Linux:依次按 Ctrl+OEnterCtrl+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 Administration Console
  2. 前往平台 > 审核日志记录
  3. 点击已启用
  4. 输出下,选择发送到 syslog
  5. Syslog 服务器字段中,输入 Bindplane 代理主机(例如 192.168.1.100)的 IP 地址。
  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 设置为“机器”
说明 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,则设置为 USER_LOGIN;如果具有 has_principal 和 has_target,则设置为 NETWORK_CONNECTION;如果具有 has_principal,则设置为 STATUS_UPDATE
audit_section、column4、application metadata.product_event_type 如果位于 tokenmgt 或 authn 中,则为 audit_section 中的值;否则,如果为 CSV,则为 column4 中的值;否则,为应用中的值
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 中的值;否则为主机名
column4、column5、column8 principal.asset.ip 如果位于 tokenmgt 中,则为 column4 中的值;如果位于 authn 中,则为 column5 中的值;否则为 column8 中的值
column20、column24、hostname principal.hostname 如果位于 tokenmgt 中,则为 column20 中的值;如果位于其他 CSV 中,则为 column24 中的值;否则为主机名
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 与列 20 中的检测字段合并
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 专业人士的解答。