收集 McAfee Firewall Enterprise 日志

支持的平台:

本文档介绍了如何收集 McAfee Firewall Enterprise 日志。解析器代码首先使用一系列 Grok 模式提取字段,同时处理 SYSLOG 和 JSON 格式。然后,根据识别的日志类别,它会应用特定的 Grok 模式和键值提取,将数据映射到 Google Security Operations UDM 架构。

准备工作

  • 确保您有一个 Google Security Operations 实例。
  • 确保您使用的是 Windows 2016 或更高版本,或者使用 systemd 的 Linux 主机。
  • 如果在代理后面运行,请确保防火墙端口处于打开状态。
  • 确保您拥有对 McAfee ESM 的超级用户访问权限。

获取 Google SecOps 提取身份验证文件

  1. 登录 Google SecOps 控制台。
  2. 依次前往 SIEM 设置 > 收集代理
  3. 下载提取身份验证文件。将该文件安全地保存在将安装 BindPlane 的系统上。

获取 Google SecOps 客户 ID

  1. 登录 Google SecOps 控制台。
  2. 依次选择 SIEM 设置 > 配置文件
  3. 复制并保存组织详细信息部分中的客户 ID

安装 BindPlane Agent

Windows 安装

  1. 以管理员身份打开命令提示符PowerShell
  2. 运行以下命令:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

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
    

其他安装资源

  • 如需了解其他安装选项,请参阅此安装指南

配置 BindPlane Agent 以提取 Syslog 并将其发送到 Google SecOps

  1. 访问配置文件:

    • 找到 config.yaml 文件。通常,在 Linux 上,该目录位于 /etc/bindplane-agent/ 目录中;在 Windows 上,该目录位于安装目录中。
    • 使用文本编辑器(例如 nanovi 或记事本)打开该文件。
  2. 按如下方式修改 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
    
  3. 根据基础架构中的需要替换端口和 IP 地址。

  4. <customer_id> 替换为实际的客户 ID。

  5. 获取 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

  1. 登录 McAfee ESM 控制台。
  2. 依次前往系统属性 > 事件转发
  3. 点击添加以创建新的 syslog 转发规则。
  4. 配置以下设置:
    • 名称:输入一个描述性名称(例如“Google SecOps 转发”)。
    • 目标 IP 地址:输入 Syslog 服务器(或 BindPlane 代理)的 IP 地址。
    • 目标端口:对于 UDP,请使用 514(您可以指定其他端口,具体取决于您的 Syslog 服务器/BindPlane 配置)。
    • 协议:选择 UDP(其他选项包括 TCP 或 TLS,具体取决于您的 Syslog 服务器/绑定平面配置)。
    • 格式:选择 CEF(通用事件格式)或 ASCII(McAfee 日志的推荐格式)。
    • 过滤条件:定义要转发的事件类型,例如防火墙日志、身份验证事件或威胁检测。
  5. 点击保存
  6. 重启 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

  • 新创建的解析器。