收集 McAfee Firewall Enterprise 日志
支持的平台:
Google SecOps
SIEM
本文档介绍了如何收集 McAfee Firewall Enterprise 日志。解析器代码首先使用一系列 Grok 模式提取字段,同时处理 SYSLOG 和 JSON 格式。然后,根据识别的日志类别,它会应用特定的 Grok 模式和键值提取,将数据映射到 Google Security Operations UDM 架构。
准备工作
- 确保您有一个 Google Security Operations 实例。
- 确保您使用的是 Windows 2016 或更高版本,或者使用
systemd
的 Linux 主机。 - 如果在代理后面运行,请确保防火墙端口处于打开状态。
- 确保您拥有对 McAfee ESM 的超级用户访问权限。
获取 Google SecOps 提取身份验证文件
- 登录 Google SecOps 控制台。
- 依次前往 SIEM 设置 > 收集代理。
- 下载提取身份验证文件。将该文件安全地保存在将安装 BindPlane 的系统上。
获取 Google SecOps 客户 ID
- 登录 Google SecOps 控制台。
- 依次选择 SIEM 设置 > 配置文件。
- 复制并保存组织详细信息部分中的客户 ID。
安装 BindPlane Agent
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 Agent 以提取 Syslog 并将其发送到 Google SecOps
访问配置文件:
- 找到
config.yaml
文件。通常,在 Linux 上,该目录位于/etc/bindplane-agent/
目录中;在 Windows 上,该目录位于安装目录中。 - 使用文本编辑器(例如
nano
、vi
或记事本)打开该文件。
- 找到
按如下方式修改
config.yaml
文件:receivers: udplog: # Replace with your specific IP and port listen_address: "0.0.0.0:514" exporters: chronicle/chronicle_w_labels: compression: gzip # Path to the ingestion authentication file creds: '/path/to/your/ingestion-auth.json' # Your Chronicle customer ID customer_id: 'your_customer_id' endpoint: malachiteingestion-pa.googleapis.com ingestion_labels: log_type: SYSLOG namespace: mcafee_esm 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 Agent,您可以使用 Services 控制台,也可以输入以下命令:
net stop BindPlaneAgent && net start BindPlaneAgent
配置 McAfee ESM 以转发 Syslog
- 登录 McAfee ESM 控制台。
- 依次前往系统属性 > 事件转发。
- 点击添加以创建新的 syslog 转发规则。
- 配置以下设置:
- 名称:输入一个描述性名称(例如“Google SecOps 转发”)。
- 目标 IP 地址:输入 Syslog 服务器(或 BindPlane 代理)的 IP 地址。
- 目标端口:对于 UDP,请使用 514(您可以指定其他端口,具体取决于您的 Syslog 服务器/BindPlane 配置)。
- 协议:选择 UDP(其他选项包括 TCP 或 TLS,具体取决于您的 Syslog 服务器/绑定平面配置)。
- 格式:选择 CEF(通用事件格式)或 ASCII(McAfee 日志的推荐格式)。
- 过滤条件:定义要转发的事件类型,例如防火墙日志、身份验证事件或威胁检测。
- 点击保存。
- 重启 McAfee ESM 服务以使更改生效。
UDM 映射表
日志字段 | UDM 映射 | 逻辑 |
---|---|---|
法案 | security_result.action_details | 该值取自解析的 JSON 载荷中的“act”字段。 |
猫 | security_result.category_details | 该值取自解析后的 JSON 载荷中的“cat”字段。 |
data.AppID | target.application | 该值取自解析后的 JSON 载荷中的“AppID”字段。 |
data.Destination_Hostname | target.hostname | 该值取自解析的 JSON 载荷中的“Destination_Hostname”字段。 |
data.Destination_UserID | target.user.windows_sid | 该值取自解析后的 JSON 载荷中的“Destination_UserID”字段。 |
data.DomainID | target.administrative_domain | 该值取自解析后的 JSON 载荷中的“DomainID”字段。 |
data.dst_ip | target.ip | 该值取自解析的 JSON 载荷中的“dst_ip”字段。 |
data.dst_mac | target.mac | 该值取自解析的 JSON 载荷中的“dst_mac”字段。 |
data.dst_port | target.port | 该值取自解析的 JSON 载荷中的“dst_port”字段,并转换为整数。 |
data.HostID | target.hostname | 该值取自解析的 JSON 载荷中的“HostID”字段。 |
data.norm_sig.name | 此字段会根据其值确定事件类型。 | |
data.PID | target.process.pid | 该值取自解析的 JSON 载荷中的“PID”字段。 |
data.Process_Name | target.process.command_line | 该值取自解析的 JSON 载荷中的“Process_Name”字段。 |
data.severity | security_result.severity | 该值取自解析的 JSON 载荷中的“severity”字段,转换为整数,并根据其值映射到 UDM 严重级别:低(1-32)、中(33-65)、高(66-100)。 |
data.sig.name | security_result.description | 该值取自解析的 JSON 载荷中的“sig.name”字段。 |
data.Source_Logon_ID | about.labels.value | 该值取自解析的 JSON 载荷中的“Source_Logon_ID”字段。 |
data.Source_UserID | principal.user.windows_sid | 该值取自解析的 JSON 载荷中的“Source_UserID”字段。 |
data.src_ip | principal.ip | 该值取自解析的 JSON 载荷中的“src_ip”字段。 |
data.src_mac | principal.mac | 该值取自解析的 JSON 载荷中的“src_mac”字段。 |
data.src_port | principal.port | 该值取自解析的 JSON 载荷中的“src_port”字段,并转换为整数。 |
data.UserIDDst | target.user.userid | 该值取自解析的 JSON 载荷中的“UserIDDst”字段。 |
data.UserIDSrc | principal.user.userid | 该值取自解析的 JSON 载荷中的“UserIDSrc”字段。 |
deviceExternalId | about.asset.asset_id | 该值取自解析的 JSON 载荷中的“deviceExternalId”字段,并与商品名称组合以创建唯一的素材资源 ID。 |
deviceTranslatedAddress | about.nat_ip | 该值取自解析的 JSON 载荷中的“deviceTranslatedAddress”字段。 |
dst | target.ip | 该值取自解析的 JSON 载荷中的“dst”字段。 |
dpt | target.port | 该值取自解析的 JSON 载荷中的“dpt”字段,并转换为整数。 |
eventId | additional.fields.value.string_value | 该值取自解析的 JSON 载荷中的“eventId”字段。 |
externalId | metadata.product_log_id | 该值取自解析的 JSON 载荷中的“externalId”字段。 |
主机名 | principal.hostname | 该值取自 grok 模式提取的“hostname”字段。 |
log_category | metadata.log_type | 该值取自由 Grok 模式提取的“log_category”字段。 |
log_type | metadata.product_event_type | 该值取自 grok 模式提取的“log_type”字段。 |
消息 | 系统会解析此字段,以根据日志类别提取各种字段。 | |
nitro网址 | 此字段未映射到 UDM 中的 IDM 对象。 | |
pid | principal.process.pid | 该值取自 grok 模式提取的“pid”字段。 |
process_id | about.process.pid | 该值取自 grok 模式提取的“process_id”字段。 |
proto | network.ip_protocol | 该值取自解析的 JSON 载荷中的“proto”字段,并映射到相应的 IP 协议。 |
rhost | principal.ip | 该值取自 grok 模式提取的“rhost”字段,并解析为 IP 地址。 |
shost | principal.hostname | 该值取自解析的 JSON 载荷中的“shost”字段。 |
sntdom | principal.administrative_domain | 该值取自解析后的 JSON 载荷中的“sntdom”字段。 |
spt | principal.port | 该值取自解析的 JSON 载荷中的“spt”字段,并转换为整数。 |
src | principal.ip | 该值取自解析的 JSON 载荷中的“src”字段。 |
时间 | 时间戳 | 该值取自 grok 模式提取的“time”字段,并解析为时间戳。 |
类型 | metadata.product_event_type | 该值取自 kv 过滤器提取的“type”字段。 |
uid | principal.user.userid | 该值取自 kv 过滤器提取的“uid”字段。 |
metadata.event_type | metadata.event_type | 此值是根据日志中的事件名称和其他字段设置的。确定事件类型的逻辑如下:- 如果事件名称包含“TCP”,则事件类型设置为“NETWORK_CONNECTION”。- 如果事件名称包含“Mail”,则事件类型设置为“EMAIL_TRANSACTION”。- 如果事件名称包含“HTTP”或“http”,则事件类型会设为“NETWORK_HTTP”。- 如果事件名称包含“User Accessed”或“denied by access-list”,则事件类型设置为“USER_RESOURCE_ACCESS”。- 如果事件名称包含“数据源空闲”,则事件类型设置为“STATUS_UPDATE”。- 如果事件名称包含“Comm with snowflex”,则事件类型设置为“SERVICE_UNSPECIFIED”。- 如果事件名称包含“成功登录账号”,则事件类型设为“USER_LOGIN”。- 如果事件名称包含“服务对象的初始化状态”,则事件类型设置为“GENERIC_EVENT”。- 如果不满足上述任何条件,则将事件类型设置为“GENERIC_EVENT”。 |
metadata.vendor_name | metadata.vendor_name | 值设为“MCAFEE”。 |
network.direction | network.direction | 如果解析的 JSON 载荷中的“deviceDirection”字段为 0,则将此值设置为“INBOUND”。否则,该值会设置为“OUTBOUND”。 |
security_result.severity | security_result.severity | 如果解析后的 JSON 载荷中的“cef_event_severity”字段为 1,则将此值设置为“LOW”;如果为 2,则设置为“MEDIUM”;如果为 3,则设置为“HIGH”;如果为 9,则设置为“CRITICAL”。 |
更改
2024-03-21
- 新创建的解析器。