收集 CyberArk 日志

支持的平台:

本文档介绍了如何使用 Bindplane 代理将 CyberArk 日志注入到 Google Security Operations 中。

CyberArk Privileged Access Manager (PAM) 是一款企业级特权访问安全解决方案,可保护、管理和监控本地环境和云环境中的特权账号和凭据。它提供凭据保险库、会话隔离和监控、通过 Privileged Threat Analytics (PTA) 进行威胁检测,以及对所有特权活动的全面审核日志记录。

准备工作

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

  • Google SecOps 实例
  • Windows Server 2016 或更高版本,或者具有 systemd 的 Linux 主机
  • Bindplane 代理与 CyberArk Vault 服务器之间的网络连接
  • 如果通过代理运行,请确保防火墙端口已根据 Bindplane 代理要求打开
  • 对 CyberArk Vault 服务器拥有管理员访问权限(对 Server\Conf 安装文件夹拥有访问权限)
  • CyberArk Vault 10.0 版或更高版本

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

  1. 登录 Google SecOps 控制台。
  2. 依次前往 SIEM 设置 > 收集代理
  3. 下载注入身份验证文件。将文件安全地保存在将安装 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
    

    服务状态应为 RUNNING

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 /etc/bindplane-agent/config.yaml
    
  • Windows:

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

修改配置文件

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

    receivers:
        udplog:
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/cyberark:
            compression: gzip
            creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
            customer_id: 'your-customer-id'
            endpoint: malachiteingestion-pa.googleapis.com
            log_type: CYBERARK
            raw_log_field: body
    
    service:
        pipelines:
            logs/cyberark_to_chronicle:
                receivers:
                    - udplog
                exporters:
                    - chronicle/cyberark
    
  2. 替换以下占位符:

    • 接收器配置:

      • listen_address:要监听的 IP 地址和端口:

        • 0.0.0.0:514 在端口 514 上监听所有接口(在 Linux 上需要 root 权限)
        • 0.0.0.0:1514 监听非特权端口(建议用于 Linux 非 root 用户)
      • 接收器类型选项:

        • udplog(适用于 UDP Syslog,CyberArk Vault 的默认值)
        • tcplog(适用于 TCP syslog)
        • 如果 CyberArk Vault 配置了 SyslogServerProtocol=TCP,请使用 tcplog
    • 导出器配置:

      • creds_file_path:Google SecOps 注入身份验证文件的完整路径:

        • Linux/etc/bindplane-agent/ingestion-auth.json
        • WindowsC:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
      • customer_id:Google SecOps 客户 ID

      • endpoint:区域端点网址:

        • 美国malachiteingestion-pa.googleapis.com
        • 欧洲europe-malachiteingestion-pa.googleapis.com
        • 亚洲asia-southeast1-malachiteingestion-pa.googleapis.com
        • 如需查看完整列表,请参阅区域级端点

保存配置文件

修改后,保存文件:

  • Linux:依次按 Ctrl+OEnterCtrl+X
  • Windows:依次点击文件 > 保存

重启 Bindplane 代理以应用更改

  • 如需在 Linux 中重启 Bindplane 代理,请执行以下操作:

    1. 运行以下命令:

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

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

      sudo journalctl -u observiq-otel-collector -f
      
  • 如需在 Windows 中重启 Bindplane 代理,请执行以下操作:

    1. 请从下列选项中选择一项:

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

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

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

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

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

配置 CyberArk syslog 转发

CyberArk Vault 通过 syslog 以 CEF(通用事件格式)发送审核事件。Vault 服务器使用 XSL 转换器文件将 XML 审核记录转换为 CEF 消息,然后将其转发给 Bindplane 代理。

配置 Vault 服务器以发送 syslog

  1. 以管理员权限登录 CyberArk Vault 服务器宿主机。
  2. 前往 CyberArk Vault 服务器安装文件夹(例如 `C:\Program Files (x86)\PrivateArk\Server\Conf`)。
  3. 通过文本编辑器打开 DBParm.ini 文件。
  4. DBParm.sample.ini 文件(位于同一文件夹中)复制 [SYSLOG] 部分,并将其粘贴到 DBParm.ini 的底部。
  5. [SYSLOG] 部分中,配置以下 syslog 参数:

    [SYSLOG]
    SyslogServerIP=<BINDPLANE_AGENT_IP>
    SyslogServerPort=514
    SyslogServerProtocol=UDP
    UseLegacySyslogFormat=No
    SyslogTranslatorFile=Syslog\Arcsight.sample.xsl
    SyslogMessageCodeFilter=0-999
    
  6. 替换以下值:

    • SyslogServerIP:输入 Bindplane 代理主机(例如 192.168.1.100)的 IP 地址。
    • SyslogServerPort:输入与 Bindplane 代理 listen_address 匹配的端口(例如 514)。
    • SyslogServerProtocol:选择协议:

      • UDP(默认)用于 UDP syslog
      • TCP(适用于 TCP syslog)
    • SyslogTranslatorFile:输入 CEF 格式的 XSL 转换器文件:

      • Syslog\Arcsight.sample.xsl,用于标准 CEF 输出(推荐)
    • SyslogMessageCodeFilter:输入要转发的消息代码:

      • 0-999 转发所有活动
      • 指定单个代码或范围(例如 1,2,3,5-10,30)以过滤特定事件
    • UseLegacySyslogFormat:设置为 No 表示采用 RFC 5424 格式。

  7. 保存 DBParm.ini 文件。

  8. 重启 PrivateArk Server 服务:

    1. 打开 Windows 服务 (services.msc)。
    2. 找到 CyberArk Vault 灾难恢复服务并停止它(如果正在运行)。
    3. 找到 PrivateArk Server 服务。
    4. 右键点击并选择重新启动
    5. 再次启动 CyberArk Vault 灾难恢复服务(如果适用)。

将 syslog 转发到多个目标位置

  • 如需将 Vault syslog 事件转发到 Bindplane 代理和其他目标位置(例如 PTA),请指定多个以英文逗号分隔的 IP 地址和转换器文件:

    SyslogServerIP=<BINDPLANE_AGENT_IP>,<PTA_SERVER_IP>
    SyslogTranslatorFile=Syslog\Arcsight.sample.xsl,Syslog\PTA.xsl
    

配置 Privileged Threat Analytics (PTA) syslog 转发(可选)

如果您还想将 PTA 安全提醒转发到 Google SecOps,请配置 PTA SIEM 集成:

  1. 登录 PVWA(密码保险库 Web 访问)控制台。
  2. 依次前往管理 > 配置选项 > 特权威胁分析
  3. SIEM 部分中,配置以下内容:
    • Syslog 服务器 IP:输入 Bindplane 代理主机 IP 地址。
    • Syslog 服务器端口:输入与 Bindplane 代理配置相匹配的端口(例如 514)。
    • 协议:选择 UDPTCP 以与 Bindplane 代理接收器匹配。
    • 格式:选择 CEF
  4. 点击保存

可用的 XSL 转换器文件

  • CyberArk 服务器安装文件夹中的 Syslog 子文件夹包含示例 XSL 转换器文件:

    翻译文件 格式 说明
    Arcsight.sample.xsl CEF 标准 CEF 格式(建议用于 Google SecOps)
    SplunkCIM.xsl CIM Splunk 通用信息模型格式
    PTA.xsl 自定义 转发到 CyberArk PTA 的格式
    XSIAM.xsl CEF Palo Alto Cortex XSIAM 格式

验证 Syslog 转发

  1. 重启 PrivateArk Server 服务后,在保险库中执行测试操作(例如,检索密码或登录 PVWA)。
  2. 检查 Bindplane 代理日志中是否有传入的 syslog 消息:
    • Linuxsudo journalctl -u observiq-otel-collector -f
    • Windowstype "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
  3. 验证日志中是否显示 CEF 格式的消息,例如:

    CEF:0|Cyber-Ark|Vault|10.0|22|CPM password retrieved|5|suser=Administrator src=10.0.0.1 fname=Root\operating system-server1-admin
    

UDM 映射表

日志字段 UDM 映射 逻辑
RequestId_label additional.fields 以键值对的形式映射
Category_label additional.fields 以键值对的形式映射
ExtraDetails_label additional.fields 以键值对的形式映射
CAPolicy_label additional.fields 以键值对的形式映射
line_number_label additional.fields 以键值对的形式映射
pasvc_action_label additional.fields 以键值对的形式映射
control_socket_label additional.fields 以键值对的形式映射
data_socket_label additional.fields 以键值对的形式映射
timeout_label additional.fields 以键值对的形式映射
vault_name_label additional.fields 以键值对的形式映射
class_name_label additional.fields 以键值对的形式映射
status_label additional.fields 以键值对的形式映射
Publisher_Event additional.fields 以键值对的形式映射
Last_Event additional.fields 以键值对的形式映射
Total_Events additional.fields 以键值对的形式映射
cs1_var additional.fields 以键值对的形式映射
cs3_var additional.fields 以键值对的形式映射
app_var additional.fields 以键值对的形式映射
reason_var additional.fields 以键值对的形式映射
cs5_var additional.fields 以键值对的形式映射
cs4_var additional.fields 以键值对的形式映射
_auth_mechanism extensions.auth.mechanism 直接合并
dvc intermediary.ip 如果值与 IP 地址模式匹配
EventName metadata.description 如果进程与可执行文件模式不匹配
act metadata.description 如果 fname 为空
EventMessage metadata.description 如果 act 为空
LastEventDate metadata.event_timestamp 使用 ISO8601 或 yyyy-MM-ddTHH:mm:ss 格式进行转换
_temp_datetime metadata.event_timestamp 已转换为 dd/MM/yyyy HH:mm:ss 格式
日期时间 metadata.event_timestamp 使用 ISO8601 或 MMM d HH:mm:ss 格式转换
_event_type metadata.event_type 直接重命名
name metadata.event_type 根据条件设置:FILE_CREATION(对于“存储文件”)、USER_LOGIN(对于“登录”)、NETWORK_CONNECTION(如果具有正文和目标)、FILE_UNCATEGORIZED(如果具有 target_file_details)、PROCESS_UNCATEGORIZED(如果具有 target_process_details)、STATUS_UPDATE(如果仅具有正文)、NETWORK_UNCATEGORIZED(如果 app_error 且具有正文和目标),否则为 GENERIC_EVENT
EventType metadata.product_event_type 直接映射
signature_id、name metadata.product_event_type 由 signature_id 和名称串联而成
LastEventID metadata.product_log_id 已转换为字符串
tid metadata.product_log_id 直接映射
产品 metadata.product_name 直接重命名
版本 metadata.product_version 直接重命名
vendor metadata.vendor_name 直接重命名
主机 observer.hostname 直接映射
LastEventUserName principal.administrative_domain 使用 grok 模式 domain\user 提取
ApplicationType principal.application 直接映射
shost principal.asset.hostname 如果值与 IP 地址模式不匹配
shost principal.asset.hostname 如果 dhost 为空,则回退
shost principal.asset.ip 如果值与 IP 地址模式匹配
src principal.asset.ip 直接映射
ip_address principal.asset.ip 直接映射
shost principal.asset.ip 如果 dhost 为空,则回退
shost principal.ip 如果值与 IP 地址模式匹配,则合并
src principal.ip 直接合并
ip_address principal.ip 直接合并
位置 principal.location.name 直接映射
LastEventSourceName principal.platform 如果值与 Windows 模式匹配,则设置为 WINDOWS
EventName principal.process.command_line 如果进程与可执行文件模式匹配
LastEventPackageName principal.resource.name 如果值不是 EventName
ApplicationType principal.user.attribute.roles 如果值为 AdminTask,则设置为 ADMINISTRATOR
LastEventUserName principal.user.user_display_name 使用 grok 模式 domain\user 提取的用户部分
user_name principal.user.user_display_name 直接映射
SourceUser principal.user.userid 直接映射
suser principal.user.userid 如果事件不是 USER_ 类型
usrName principal.user.userid 直接映射
_action security_result.action 直接合并
name security_result.action 如果值以“Failure”或“Failed”开头,则设置为 BLOCK;否则设置为 ALLOW
msg security_result.description 直接映射
msg、reason security_result.description 如果出现故障情况,则由 msg 和 reason 连接而成
_sec_result_description security_result.description 直接映射
PolicyName security_result.rule_name 直接映射
cs2 security_result.rule_name 直接映射
和程度上减少 security_result.severity 如果值 <= 5,则设置为 LOW;如果值 <= 8,则设置为 MEDIUM;否则设置为 HIGH
严重程度 security_result.severity 直接映射
严重程度 security_result.severity_details 直接映射
原因 security_result.summary 直接映射
name security_result.summary 直接映射
dhost target.asset.hostname 如果值与 IP 地址模式不匹配
shost target.asset.hostname 如果 dhost 为空,则回退
dhost target.asset.ip 如果值与 IP 地址模式匹配
GatewayStation target.asset.ip 直接映射
shost target.asset.ip 如果 dhost 为空,则回退
FileQualifier target.asset_id 以“ASSET ID:”为前缀,并转换为字符串
文件 target.file.full_path 直接映射
file_path target.file.full_path 直接映射
LastEventSourceName target.file.full_path 如果值以“C:”开头
fname target.file.full_path 直接映射
哈希 target.file.sha1 如果为 SHA1 类型,则移除“SHA1##”前缀并将值转换为小写
GatewayStation target.ip 直接合并
pid target.process.pid 已转换为字符串
安全 target.resource.name 直接映射
user_name target.user.user_display_name 直接映射
TargetUser target.user.userid 直接映射
duser target.user.userid 直接映射
suser target.user.userid 如果事件是 USER_ 类型

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