收集 Palo Alto Networks Traps 日志
支持的平台:
Google SecOps
SIEM
本文档介绍了如何使用 Bindplane 将 Palo Alto Networks Traps 日志收集到 Google 安全运营中心。解析器会处理 CSV 和键值对格式的日志,并将其转换为 UDM。它使用 grok 和 CSV 解析来提取字段,根据特定日志消息或字段值执行条件逻辑以映射到 UDM 字段,并处理状态更新、网络扫描和进程创建等各种事件类型。
准备工作
- 确保您有一个 Google Security Operations 实例。
- 确保您使用的是 Windows 2016 或更高版本,或者使用了带有
systemd
的 Linux 主机。 - 如果在代理后面运行,请确保防火墙端口处于打开状态。
- 确保您拥有对 Cortex XDR 的特权访问权限。
获取 Google SecOps 提取身份验证文件
- 登录 Google SecOps 控制台。
- 依次前往 SIEM 设置 > 收集代理。
- 下载提取身份验证文件。将该文件安全地保存在将安装 BindPlane 的系统上。
获取 Google SecOps 客户 ID
- 登录 Google SecOps 控制台。
- 依次选择 SIEM 设置 > 配置文件。
- 复制并保存组织详细信息部分中的客户 ID。
安装 Bindplane 代理
Windows 安装
- 以管理员身份打开命令提示符或 PowerShell。
运行以下命令:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Linux 安装
- 打开具有 root 或 sudo 权限的终端。
运行以下命令:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
其他安装资源
- 如需了解其他安装选项,请参阅此安装指南。
配置 Bindplane 代理以注入 Syslog 并将其发送到 Google SecOps
访问配置文件:
- 找到
config.yaml
文件。通常,在 Linux 上,该目录位于/etc/bindplane-agent/
目录中;在 Windows 上,该目录位于安装目录中。 - 使用文本编辑器(例如
nano
、vi
或记事本)打开该文件。
- 找到
按如下方式修改
config.yaml
文件:receivers: udplog: # Replace the port and IP address as required listen_address: "0.0.0.0:514" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the path to the credentials file you downloaded in Step 1 creds: '/path/to/ingestion-authentication-file.json' # Replace with your actual customer ID from Step 2 customer_id: <customer_id> endpoint: malachiteingestion-pa.googleapis.com # Add optional ingestion labels for better organization ingestion_labels: log_type: PAN_EDR raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog exporters: - chronicle/chronicle_w_labels
根据基础架构中的需要替换端口和 IP 地址。
将
<customer_id>
替换为实际的客户 ID。在获取 Google SecOps 提取身份验证文件部分中,将
/path/to/ingestion-authentication-file.json
更新为身份验证文件的保存路径。
重启 Bindplane 代理以应用更改
如需在 Linux 中重启 Bindplane 代理,请运行以下命令:
sudo systemctl restart bindplane-agent
如需在 Windows 中重启 Bindplane 代理,您可以使用服务控制台,也可以输入以下命令:
net stop BindPlaneAgent && net start BindPlaneAgent
配置 Palo Alto Networks Traps
- 登录 Cortex XDR ESM 控制台。
- 依次选择设置 > ESM > Syslog。
- 选中启用 syslog 复选框。
- 提供以下配置详细信息:
- Syslog 服务器:输入 BindPlane 代理的 IP 地址。
- Syslog 端口:输入在 Bindplane 中配置的端口号;例如
514
。 - Syslog 协议:选择 CEF。
- 将保持连接超时设置为 0。
- 通信协议:选择 UDP。
- 在安全事件部分,选中以下复选框:
- 预防事件
- 通知事件
- 检测后事件
- 依次点击检查连接情况 > 保存。
UDM 映射表
日志字段 | UDM 映射 | 逻辑 |
---|---|---|
agentId |
event.idm.read_only_udm.additional.fields.value.string_value |
原始日志中的 agentId 值会映射到 additional.fields 下的嵌套结构中的 string_value 字段。此字段的 key 设置为 Agent ID 。 |
agentIp |
event.idm.read_only_udm.target.ip |
原始日志中的 agentIp 值会映射到 target.ip 字段。 |
cat |
event.idm.read_only_udm.security_result.rule_name |
原始日志中的 cat 值会映射到 security_result.rule_name 字段。 |
class |
event.idm.read_only_udm.security_result.category_details |
与 subClass 结合使用,以 class: subClass 格式填充 security_result.category_details 。 |
cs1 |
event.idm.read_only_udm.principal.application ,event.idm.read_only_udm.principal.user.email_addresses |
如果 cs1Label 为 email ,并且 cs1 是有效的电子邮件地址,则会映射到 principal.user.email_addresses 。如果 cs1Label 为 Initiated by ,则会映射到 principal.application 。 |
cs2 |
event.idm.read_only_udm.principal.process.command_line ,event.idm.read_only_udm.security_result.description |
如果 cs2Label 为 subtype ,则会映射到 security_result.description 。如果 cs2Label 为 Initiator CMD ,则会映射到 principal.process.command_line 。 |
cs3 |
event.idm.read_only_udm.security_result.action_details |
如果 cs3Label 为 result ,则会映射到 security_result.action_details 。 |
customerId |
event.idm.read_only_udm.additional.fields.value.string_value |
原始日志中的 customerId 值会映射到 additional.fields 下的嵌套结构中的 string_value 字段。此字段的 key 设置为 Customer ID 。 |
date_time |
event.idm.read_only_udm.metadata.event_timestamp.seconds |
解析并转换为时间戳,然后映射到 metadata.event_timestamp.seconds 。 |
desc |
event.idm.read_only_udm.metadata.description |
原始日志中的 desc 值会映射到 metadata.description 字段。 |
deviceName |
event.idm.read_only_udm.target.hostname |
原始日志中的 deviceName 值会映射到 target.hostname 字段。 |
email_receiver |
event.idm.read_only_udm.network.email.to |
从 msg 字段中提取(如果该字段包含电子邮件地址),并映射到 network.email.to 。 |
endpoint_desc |
event.idm.read_only_udm.target.resource.attribute.labels.value |
从 isEndpoint 派生:如果 isEndpoint 为 1,则为 Yes, host is an endpoint. ;如果 isEndpoint 为 0,则为 No, host is not an endpoint 。将 key 设置为 Is Endpoint 。 |
eventType |
event.idm.read_only_udm.metadata.product_event_type ,event.idm.read_only_udm.metadata.event_type |
原始日志中的 eventType 值会映射到 metadata.product_event_type 字段。也用于根据其值派生 metadata.event_type (例如,Management Audit Logs 会导致 EMAIL_TRANSACTION ,XDR Analytics BIOC 或 Behavioral Threat 会导致 SCAN_NETWORK )。 |
facility |
event.idm.read_only_udm.additional.fields.value.string_value |
原始日志中的 facility 值会映射到 additional.fields 下的嵌套结构中的 string_value 字段。此字段的 key 设置为 Facility 。 |
fileHash |
event.idm.read_only_udm.principal.process.file.sha256 |
原始日志中的 fileHash 值(已转换为小写)会映射到 principal.process.file.sha256 字段。 |
filePath |
event.idm.read_only_udm.principal.process.file.full_path |
原始日志中的 filePath 值会映射到 principal.process.file.full_path 字段。 |
friendlyName |
event.idm.read_only_udm.metadata.description |
原始日志中的 friendlyName 值会映射到 metadata.description 字段。 |
interm_ip |
event.idm.read_only_udm.intermediary.ip |
原始日志中的 interm_ip 值会映射到 intermediary.ip 字段。 |
isEndpoint |
event.idm.read_only_udm.target.resource.attribute.labels.value |
用于派生 target.resource.attribute.labels.value 。 |
isVdi |
event.idm.read_only_udm.target.resource.resource_type |
如果 isVdi 为 1,则 target.resource.resource_type 会设置为 VIRTUAL_MACHINE 。 |
msg |
event.idm.read_only_udm.security_result.summary |
原始日志中的 msg 值会映射到 security_result.summary 字段。也用于提取 email_receiver 。 |
msgTextEn |
event.idm.read_only_udm.security_result.description |
原始日志中的 msgTextEn 值会映射到 security_result.description 字段。 |
osType |
event.idm.read_only_udm.target.platform ,event.idm.read_only_udm.target.resource.attribute.labels.value |
如果 osType 为 1,则 target.platform 会设置为 WINDOWS 。如果 osType 为 2,则 target.platform 会设置为 MAC 。如果 osType 为 4,则 target.platform 会设置为 LINUX 。如果 osType 为 3,其值会使用 key OS 映射到 target.resource.attribute.labels.value 。 |
osVersion |
event.idm.read_only_udm.target.platform_version |
原始日志中的 osVersion 值会映射到 target.platform_version 字段。 |
product_version |
event.idm.read_only_udm.metadata.product_version |
原始日志中的 product_version 值会映射到 metadata.product_version 字段。 |
proto |
event.idm.read_only_udm.network.ip_protocol |
如果 proto 为 udp ,则 network.ip_protocol 会设置为 UDP 。 |
recordType |
event.idm.read_only_udm.additional.fields.value.string_value |
原始日志中的 recordType 值会映射到 additional.fields 下的嵌套结构中的 string_value 字段。此字段的 key 设置为 Record Type 。 |
regionId |
event.idm.read_only_udm.principal.location.country_or_region |
如果 regionId 为 10,则 principal.location.country_or_region 会设置为 Americas (N. Virginia) 。如果 regionId 为 70,则 principal.location.country_or_region 会设置为 EMEA (Frankfurt) 。 |
request |
event.idm.read_only_udm.target.url |
原始日志中的 request 值会映射到 target.url 字段。 |
sec_category_details |
event.idm.read_only_udm.security_result.category_details |
原始日志中的 sec_category_details 值会映射到 security_result.category_details 字段。 |
sec_desc |
event.idm.read_only_udm.security_result.description |
原始日志中的 sec_desc 值会映射到 security_result.description 字段。 |
serverHost |
event.idm.read_only_udm.principal.hostname |
原始日志中的 serverHost 值会映射到 principal.hostname 字段。 |
severity |
event.idm.read_only_udm.security_result.severity |
使用以下逻辑映射到 security_result.severity :2 -> 严重、3 -> 错误、4 -> 中等、5 -> 低、6 -> 信息。 |
severity_val |
event.idm.read_only_udm.security_result.severity ,event.idm.read_only_udm.security_result.severity_details |
如果 severity_val 为 0,则 security_result.severity_details 会设置为 UNKNOWN_SEVERITY 。否则,系统会使用以下逻辑将其映射到 security_result.severity :6 -> 低、8 -> 中、9 -> 高。 |
shost |
event.idm.read_only_udm.principal.hostname |
原始日志中的 shost 值会映射到 principal.hostname 字段。 |
src_ip |
event.idm.read_only_udm.principal.ip |
原始日志中的 src_ip 值会映射到 principal.ip 字段。 |
subClass |
event.idm.read_only_udm.security_result.category_details |
与 class 结合使用以填充 security_result.category_details 。 |
suser |
event.idm.read_only_udm.principal.user.user_display_name |
系统会将原始日志中的 suser 值(移除括号、反斜线和单引号)映射到 principal.user.user_display_name 字段。 |
targetprocesscmd |
event.idm.read_only_udm.target.process.command_line |
原始日志中的 targetprocesscmd 值会映射到 target.process.command_line 字段。 |
targetprocessname |
event.idm.read_only_udm.target.application |
原始日志中的 targetprocessname 值会映射到 target.application 字段。 |
targetprocesssha256 |
event.idm.read_only_udm.target.process.file.sha256 |
原始日志中的 targetprocesssha256 值(已转换为小写)会映射到 target.process.file.sha256 字段。 |
tenantname |
event.idm.read_only_udm.target.resource.attribute.labels.value |
原始日志中的 tenantname 值会映射到 target.resource.attribute.labels 下的嵌套结构中的 value 字段。此字段的 key 设置为 Tenant name 。 |
event.idm.read_only_udm.metadata.event_type |
默认设置为 STATUS_UPDATE 。如果 eventType 为 Management Audit Logs ,则更改为 EMAIL_TRANSACTION 。如果 eventType 为 XDR Analytics BIOC 或 Behavioral Threat ,或者 desc 为 Behavioral Threat ,则更改为 SCAN_NETWORK 。如果 desc 为 Suspicious Process Creation ,则更改为 SCAN_PROCESS 。设置为 Palo Alto Networks 。设置为 Cortex XDR 。设置为 PAN_EDR 。如果 eventType 为 XDR Analytics BIOC 或 Behavioral Threat ,或者 desc 为 Behavioral Threat ,则设置为 NETWORK_SUSPICIOUS 。 |
变化
2022-08-22
增强功能:
- 将解析器从“sdm”映射更新为“udm”映射。
- 处理了所有新提取的日志。
- 处理了数据类型为“日志转发”的日志。
- 还处理了其他与 syslog、配置和威胁相关的问题。
- 格式错误的日志会被丢弃。
需要更多帮助?向社区成员和 Google SecOps 专业人士寻求解答。