收集 CyberArk PAM 日志
支持的语言:
Google SecOps
SIEM
此解析器代码首先使用正则表达式从 CyberArk Privileged Access Manager (PAM) syslog 消息中提取字段。然后,它会将提取的字段映射到统一数据模型 (UDM),通过额外的上下文信息丰富数据,并根据特定条件标准化事件类型。
准备工作
- 确保您拥有 Google Security Operations 实例。
- 确保您使用的是 Windows 2016 或更高版本,或者使用带有 systemd 的 Linux 主机。
- 如果通过代理运行,请确保防火墙端口处于开放状态。
获取 Google SecOps 注入身份验证文件
- 登录 Google SecOps 控制台。
- 依次前往 SIEM 设置 > 收集代理。
- 下载注入身份验证文件。
获取 Google SecOps 客户 ID
- 登录 Google SecOps 控制台。
- 依次前往 SIEM 设置 > 配置文件。
- 复制并保存组织详细信息部分中的客户 ID。
安装 BindPlane 代理
- 对于 Windows 安装,请运行以下脚本:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet - 对于 Linux 安装,请运行以下脚本:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh - 如需了解其他安装选项,请参阅此安装指南。
配置 Bindplane 代理以注入 Syslog 并将其发送到 Google SecOps
- 访问安装了 Bindplane 代理的机器。
按如下方式修改
config.yaml文件:receivers: tcplog: # Replace the below port <54525> and IP <0.0.0.0> with your specific values listen_address: "0.0.0.0:54525" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the creds location below according the placement of the credentials file you downloaded creds: '{ json file for creds }' # Replace <customer_id> below with your actual ID that you copied customer_id: <customer_id> endpoint: malachiteingestion-pa.googleapis.com # You can apply ingestion labels below as preferred ingestion_labels: log_type: SYSLOG namespace: Cyberark_PAM raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - tcplog exporters: - chronicle/chronicle_w_labels重启 Bindplane 代理以应用更改:
sudo systemctl restart bindplane
为 CyberArk Vault 配置 Syslog 导出
- 登录 Vault 服务器。
- 打开位于
C:\Program Files (x86)\CyberArk\Vault\Server\dbparm.ini的配置文件dbparm.ini。 添加或修改以下参数:
SyslogServer=<syslog_server_ip> SyslogPort=<syslog_server_port> SyslogProtocol=<TCP or UDP> SyslogFormat=Syslog保存
dbparm.ini文件。重启 Vault 服务器:
net stop CyberArkVault net start CyberArkVault
在 PVWA 中配置 Syslog 导出
- 登录 PVWA 服务器。
- 打开位于
C:\inetpub\wwwroot\PasswordVault\的Web.config文件 添加或修改以下键:
<add key="SyslogServer" value="<syslog_server_ip>" /> <add key="SyslogPort" value="<syslog_server_port>" /> <add key="SyslogProtocol" value="<TCP or UDP>" /> <add key="SyslogFormat" value="Syslog" />将所做的更改保存到
Web.config文件。重启 IIS 服务:
iisreset
在 PTA 中配置 Syslog 导出
- 使用 SSH 访问 PTA 服务器。
- 打开位于
/opt/cta/config/application.properties的application.properties文件 添加或修改以下代码行:
syslog.server.ip=<syslog_server_ip> syslog.server.port=<syslog_server_port> syslog.protocol=<TCP or UDP>保存
application.properties文件。重启 PTA 服务以应用更改:
sudo service pta restart
UDM 映射表
| 日志字段 | UDM 映射 | 逻辑 |
|---|---|---|
| act | metadata.description | 直接从 act 字段映射。 |
| cn1 | additional.fields.value.string_value | 当 cn1Label 不为空时,直接从 cn1 字段映射。 |
| cn1Label | additional.fields.key | 当 cn1 不为空时,直接从 cn1Label 字段映射。 |
| cn2 | additional.fields.value.string_value | 当 cn2Label 不为空时,直接从 cn2 字段映射。 |
| cn2Label | additional.fields.key | 当 cn2 不为空时,直接从 cn2Label 字段映射。 |
| cs1 | additional.fields.value.string_value | 当 cs1Label 不为空时,直接从 cs1 字段映射。 |
| cs1Label | additional.fields.key | 当 cs1 不为空时,直接从 cs1Label 字段映射。 |
| cs2 | additional.fields.value.string_value | 当 cs2Label 不为空时,直接从 cs2 字段映射。 |
| cs2Label | additional.fields.key | 当 cs2 不为空时,直接从 cs2Label 字段映射。 |
| cs3 | additional.fields.value.string_value | 当 cs3Label 不为空时,直接从 cs3 字段映射。 |
| cs3Label | additional.fields.key | 当 cs3 不为空时,直接从 cs3Label 字段映射。 |
| cs4 | additional.fields.value.string_value | 当 cs4Label 不为空时,直接从 cs4 字段映射。 |
| cs4Label | additional.fields.key | 当 cs4 不为空时,直接从 cs4Label 字段映射。 |
| cs5 | additional.fields.value.string_value | 当 cs5Label 不为空时,直接从 cs5 字段映射。 |
| cs5Label | additional.fields.key | 当 cs5 不为空时,直接从 cs5Label 字段映射。 |
| dhost | target.hostname | 如果 dhost 字段不是 IP 地址,则从该字段映射。如果 dhost 为空,则从 shost(IP 或主机名)映射。 |
| dhost | target.asset.hostname | 如果 dhost 字段不是 IP 地址,则从该字段映射。如果 dhost 为空,则从 shost(IP 或主机名)映射。 |
| dhost | target.ip | 如果 dhost 字段是 IP 地址,则从该字段映射。 |
| dhost | target.asset.ip | 如果 dhost 字段是 IP 地址,则从该字段映射。 |
| duser | target.user.userid | 直接从 duser 字段映射。 |
| dvc | intermediary.ip | 如果 dvc 字段是 IP 地址,则从该字段映射。 |
| externalId | metadata.product_log_id | 直接从 externalId 字段映射。 |
| fname | target.file.full_path | 直接从 fname 字段映射。 |
| name | metadata.event_type | 用于根据 name、shost 和 dhost 字段的组合确定 event_type。可能的值:USER_CHANGE_PASSWORD、FILE_READ、USER_LOGIN、FILE_OPEN、FILE_DELETION。如果未找到匹配项,且 has_principal 为 true,has_target 为 false,则将 event_type 设置为 STATUS_UPDATE。否则,默认值为 GENERIC_EVENT。 |
| prin_hostname | principal.hostname | 直接从 prin_hostname 字段映射。如果为空,则在 shost 不是 IP 地址的情况下,从 shost 进行映射。 |
| prin_hostname | principal.asset.hostname | 直接从 prin_hostname 字段映射。如果为空,则在 shost 不是 IP 地址的情况下,从 shost 进行映射。 |
| prin_ip | principal.ip | 直接从 prin_ip 字段映射。如果为空,则在 shost 为 IP 地址时从 shost 进行映射。 |
| prin_ip | principal.asset.ip | 直接从 prin_ip 字段映射。如果为空,则在 shost 为 IP 地址时从 shost 进行映射。 |
| 产品 | metadata.product_name | 直接从 product 字段映射。如果日志中未显示,则默认为“PAM”。 |
| reason | security_result.description | 直接从 reason 字段映射。 |
| 和程度上减少 | security_result.severity | 根据以下逻辑从 severity 字段映射:1-3:INFORMATIONAL,4:ERROR,5:CRITICAL。 |
| shost | principal.hostname | 如果 prin_hostname 为空且 shost 不是 IP 地址,则映射到 prin_hostname。 |
| shost | principal.asset.hostname | 如果 prin_hostname 为空且 shost 不是 IP 地址,则映射到 prin_hostname。 |
| shost | principal.ip | 如果 prin_ip 为空且 shost 是 IP 地址,则映射到 prin_ip。 |
| shost | principal.asset.ip | 如果 prin_ip 为空且 shost 是 IP 地址,则映射到 prin_ip。 |
| shost | target.hostname | 如果 dhost 为空且 shost 不是 IP 地址,则映射到 target.hostname。 |
| shost | target.asset.hostname | 如果 dhost 为空且 shost 不是 IP 地址,则映射到 target.hostname。 |
| shost | target.ip | 如果 dhost 为空且 shost 是 IP 地址,则映射到 target.ip。 |
| shost | target.asset.ip | 如果 dhost 为空且 shost 是 IP 地址,则映射到 target.ip。 |
| 状态 | additional.fields.value.string_value | 直接从 status 字段映射。 |
| suser | principal.user.userid | 从 suser 字段映射。如果 duser 为空,则将其视为目标用户 ID。 |
| 时间 | metadata.event_timestamp.seconds | 直接从 time 字段映射,并转换为时间戳格式。 |
| 时间 | metadata.event_timestamp.nanos | 直接从 time 字段映射,并转换为时间戳格式。 |
| vendor | metadata.vendor_name | 直接从 vendor 字段映射。如果日志中不存在,则默认为“CYBERARK”。 |
| 版本 | metadata.product_version | 直接从 version 字段映射。 |
| metadata.log_type | 硬编码为“CYBERARK_PAM”。 | |
| extensions.auth.mechanism | 如果 event_type 为“USER_LOGIN”,则设置为“USERNAME_PASSWORD”。 |
需要更多帮助?从社区成员和 Google SecOps 专业人士那里获得解答。