收集 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 Agent
- 对于 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 Agent 以提取 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 映射 | 逻辑 |
---|---|---|
法案 | 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 字段映射。 |
名称 | 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 映射(如果 shost 不是 IP 地址)。 |
prin_hostname | principal.asset.hostname | 直接从 prin_hostname 字段映射。如果为空,则从 shost 映射(如果 shost 不是 IP 地址)。 |
prin_ip | principal.ip | 直接从 prin_ip 字段映射。如果为空,则从 shost 映射(如果 shost 是 IP 地址)。 |
prin_ip | principal.asset.ip | 直接从 prin_ip 字段映射。如果为空,则从 shost 映射(如果 shost 是 IP 地址)。 |
产品 | metadata.product_name | 直接从 product 字段映射。如果日志中未包含此字段,则默认为“PAM”。 |
原因 | 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”。 |
更改
2024-05-05
- 新创建的解析器。