收集 VMware 网络和安全虚拟化 (NSX) Manager 日志

支持的平台:

本文档介绍了如何收集 VMware 网络和安全虚拟化 (NSX) 管理器日志。解析器会根据消息格式使用各种 Grok 模式提取字段。然后,它会执行键值解析、JSON 解析和条件逻辑,以将提取的字段映射到 UDM,处理不同的日志格式,并使用其他上下文丰富数据。

准备工作

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

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

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

获取 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 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: vmware_nsx
            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,您可以使用服务控制台,也可以输入以下命令:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

NSX Edge 的 Syslog 配置

  1. 登录 vSphere Web 客户端
  2. 依次前往网络和安全 > NSX Edge
  3. 选择要配置的特定 NSX Edge 实例。
  4. 前往 Syslog Settings
    1. 对于 NSX 6.4.4 及更高版本:
      • 依次前往管理 > 设置 > 设备设置
      • 依次点击设置 > 更改 Syslog 配置
    2. 对于 NSX 6.4.3 及更低版本:
      • 依次前往管理 > 设置 > 配置
      • 详细信息对话框中,点击更改
  5. 配置 Syslog 服务器详细信息:
    • 服务器:输入 Syslog 服务器 (Bindplane) 的 IP 地址或主机名。
    • 协议:选择 UDPTCP(具体取决于您的绑定平面配置)。
    • 端口:输入端口号(取决于您的 Bindplane 配置)。
  6. 点击 OK 保存设置。

NSX Manager 的 Syslog 配置

  1. 使用管理员凭据登录 NSX Manager 网页界面,如下所示:
    • https://<NSX-Manager-IP>https://<NSX-Manager-Hostname>
  2. 依次选择管理设备设置 > 常规
  3. 点击修改以配置 Syslog 服务器设置。
  4. 输入 Syslog 服务器详细信息:
    • 服务器:输入 Syslog 服务器 (Bindplane) 的 IP 地址或主机名。
    • 协议:选择 UDPTCP(具体取决于您的绑定平面配置)。
    • 端口:输入端口号(取决于您的 Bindplane 配置)。
  5. 点击 OK 保存设置。

NSX Controller 的 Syslog 配置

  1. 登录 vSphere Web 客户端。
  2. 依次前往网络和安全 > 安装和升级 > 管理 > NSX 控制器节点
  3. 选择用于管理控制器节点的 NSX Manager
  4. 点击常见控制器属性修改
  5. Syslog 服务器对话框中,点击添加
    1. 输入 Syslog 服务器名称或 IP 地址。
    2. 选择 UDP 协议(具体取决于您的 Bindplane 配置)。
    3. 设置日志级别(例如 INFO)。
  6. 点击 OK 保存设置。

UDM 映射表

日志字段 UDM 映射 逻辑
DST event.idm.read_only_udm.target.ip 目标 IP 地址会从原始日志中的 DST 字段中提取。
ID event.idm.read_only_udm.metadata.product_log_id 产品日志 ID 是从原始日志中的 ID 字段中提取的。
MAC event.idm.read_only_udm.principal.mac MAC 地址会从原始日志中的 MAC 字段中提取。
ModuleName event.idm.read_only_udm.metadata.product_event_type 系统会从原始日志中的 ModuleName 字段中提取产品事件类型。
Operation event.idm.read_only_udm.principal.resource.attribute.labels.value 系统会从原始日志中的 Operation 字段中提取操作,并将其添加为键为“Operation”的标签。
PROTO event.idm.read_only_udm.network.ip_protocol IP 协议会从原始日志中的 PROTO 字段中提取。
RES event.idm.read_only_udm.target.resource.name 目标资源名称会从原始日志中的 RES 字段中提取。
SRC event.idm.read_only_udm.principal.ip 源 IP 地址会从原始日志中的 SRC 字段中提取。
SPT event.idm.read_only_udm.principal.port 源端口会从原始日志中的 SPT 字段中提取。
UserName event.idm.read_only_udm.principal.user.userid 系统会从原始日志中的 UserName 字段中提取用户 ID。
app_type event.idm.read_only_udm.principal.application 主应用会从原始日志中的 app_type 字段中提取。
application event.idm.read_only_udm.target.application 系统会从原始日志中的 application 字段中提取目标应用。
audit event.idm.read_only_udm.principal.resource.attribute.labels.value 系统会从原始日志中的 audit 字段中提取审核值,并将其添加为键为“audit”的标签。
cancelTimeUTC event.idm.read_only_udm.principal.resource.attribute.last_update_time 上次更新时间派生自原始日志中的 cancelTimeUTC 字段。
client event.idm.read_only_udm.principal.ipevent.idm.read_only_udm.principal.administrative_domain 如果 client 字段是 IP 地址,则会映射到主 IP。否则,它会映射到主要行政网域。
comp event.idm.read_only_udm.principal.resource.attribute.labels.value 系统会从原始日志中的 comp 字段中提取组件值,并将其添加为键为“Comp”的标签。
datetime event.idm.read_only_udm.metadata.event_timestamp 系统会从原始日志中的 datetime 字段中提取事件时间戳。
description event.idm.read_only_udm.metadata.description 系统会从原始日志中的 description 字段中提取说明。
details event.idm.read_only_udm.principal.resource.attribute.labels 系统会从原始日志中的 details 字段中提取详细信息,并将其添加为标签。
direction event.idm.read_only_udm.network.direction 如果 direction 字段为“OUT”,则会映射为“OUTBOUND”。
dst_ip event.idm.read_only_udm.target.ip 目标 IP 地址会从原始日志中的 dst_ip 字段中提取。
DPT event.idm.read_only_udm.target.port 目标端口会从原始日志中的 DPT 字段中提取。
errorCode event.idm.read_only_udm.security_result.detection_fields 系统会从原始日志中的 errorCode 字段中提取错误代码,并将其添加为检测字段。
eventType event.idm.read_only_udm.metadata.product_event_type 系统会从原始日志中的 eventType 字段中提取产品事件类型。
filepath event.idm.read_only_udm.principal.process.file.full_path 系统会从原始日志中的 filepath 字段中提取文件路径。
hostname event.idm.read_only_udm.principal.ip 系统会从原始日志中的 hostname 字段中提取主机名,如果它是 IP 地址,则会映射到主 IP。
kv_data 各种 UDM 字段 kv_data 中的键值对会根据其键映射到各种 UDM 字段。
kv_data1 各种 UDM 字段 kv_data1 中的键值对会根据其键映射到各种 UDM 字段。
kv_data2 各种 UDM 字段 kv_data2 中的键值对会根据其键映射到各种 UDM 字段。
kv_data3 各种 UDM 字段 kv_data3 中的键值对会根据其键映射到各种 UDM 字段。
kv_data4 各种 UDM 字段 kv_data4 中的键值对会根据其键映射到不同的 UDM 字段。
level event.idm.read_only_udm.security_result.severity 如果 level 字段为“INFO”,则会映射到“INFORMATIONAL”。如果为“ERROR”,则会映射到“ERROR”。
managedExternally event.idm.read_only_udm.principal.resource.attribute.labels.value 系统会从原始日志中的 managedExternally 字段中提取 managedExternally 值,并将其作为键为“managedExternally”的标签添加到日志中。
message 各种 UDM 字段 系统会解析消息字段,以提取各种 UDM 字段。
message_data event.idm.read_only_udm.principal.resource.attribute.labels.value 系统会从原始日志中的 message_data 字段中提取消息数据,并将其添加为键为“message”的标签。
network_status event.idm.read_only_udm.additional.fields 系统会从原始日志中的 network_status 字段中提取网络状态,并将其添加为键为“Network_Connection_Status”的额外字段。
new_value 各种 event.idm.read_only_udm.target 字段 系统会从原始日志中的 new_value 字段中提取新值,并将其用于填充各种目标字段。
node event.idm.read_only_udm.principal.resource.attribute.labels.value 系统会从原始日志中的 node 字段中提取节点值,并将其添加为键为“node”的标签。
old_value 各种 UDM 字段 系统会从原始日志中的 old_value 字段中提取旧值,并将其用于填充各种 UDM 字段。
payload 各种 UDM 字段 载荷会从原始日志中的 payload 字段中提取,并用于填充各种 UDM 字段。
pid event.idm.read_only_udm.target.process.pid 进程 ID 会从原始日志中的 pid 字段中提取。
reqId event.idm.read_only_udm.metadata.product_log_id 产品日志 ID 是从原始日志中的 reqId 字段中提取的。
resourceId event.idm.read_only_udm.principal.resource.product_object_id 系统会从原始日志中的 resourceId 字段中提取商品对象 ID。
s2comp event.idm.read_only_udm.principal.resource.attribute.labels.value 系统会从原始日志中的 s2comp 字段中提取 s2comp 值,并将其添加为键为“s2comp”的标签。
ses event.idm.read_only_udm.network.session_id 系统会从原始日志中的 ses 字段中提取会话 ID。
src_host event.idm.read_only_udm.principal.hostname 主机名是从原始日志中的 src_host 字段中提取的。
src_ip event.idm.read_only_udm.principal.ip 源 IP 地址会从原始日志中的 src_ip 字段中提取。
src_ip1 event.idm.read_only_udm.principal.ip 源 IP 地址会从原始日志中的 src_ip1 字段中提取。
src_port event.idm.read_only_udm.principal.port 源端口会从原始日志中的 src_port 字段中提取。
startTimeUTC event.idm.read_only_udm.principal.resource.attribute.creation_time 创建时间派生自原始日志中的 startTimeUTC 字段。
subcomp event.idm.read_only_udm.network.application_protocolevent.idm.read_only_udm.principal.resource.attribute.labels.value 如果 subcomp 字段为“http”,则会映射到“HTTP”。否则,系统会将其添加为键为“Sub Comp”的标签。
tname event.idm.read_only_udm.principal.resource.attribute.labels.value 系统会从原始日志中的 tname 字段中提取 tname 值,并将其添加为键为“tname”的标签。
type event.idm.read_only_udm.metadata.product_event_type 系统会从原始日志中的 type 字段中提取产品事件类型。
uid event.idm.read_only_udm.principal.user.userid 系统会从原始日志中的 uid 字段中提取用户 ID。
update event.idm.read_only_udm.principal.resource.attribute.labels.value 系统会从原始日志中的 update 字段中提取更新值,并将其添加为键为“update”的标签。
user event.idm.read_only_udm.principal.user.user_display_name 用户显示名称会从原始日志中的 user 字段中提取。
vmw_cluster event.idm.read_only_udm.target.resource.name 目标资源名称会从原始日志中的 vmw_cluster 字段中提取。
vmw_datacenter event.idm.read_only_udm.target.resource.attribute.labels.value 系统会从原始日志中的 vmw_datacenter 字段中提取 vmw_datacenter 值,并将其添加为键为“vmw_datacenter”的标签。
vmw_host event.idm.read_only_udm.target.hostnameevent.idm.read_only_udm.target.ip 如果 vmw_host 字段是主机名,则会映射到目标主机名。否则,如果它是 IP 地址,则会映射到目标 IP。
vmw_object_id event.idm.read_only_udm.target.resource.product_object_id 系统会从原始日志中的 vmw_object_id 字段中提取商品对象 ID。
vmw_product event.idm.read_only_udm.target.application 系统会从原始日志中的 vmw_product 字段中提取目标应用。
vmw_vcenter event.idm.read_only_udm.target.cloud.availability_zone 可用区是从原始日志中的 vmw_vcenter 字段中提取的。
vmw_vcenter_id event.idm.read_only_udm.target.resource.attribute.labels.value 系统会从原始日志中的 vmw_vcenter_id 字段中提取 vmw_vcenter_id 值,并将其作为键为“vmw_vcenter_id”的标签添加。
vmw_vr_ops_appname event.idm.read_only_udm.intermediary.application 中间应用会从原始日志中的 vmw_vr_ops_appname 字段中提取。
vmw_vr_ops_clustername event.idm.read_only_udm.intermediary.resource.name 中间资源名称会从原始日志中的 vmw_vr_ops_clustername 字段中提取。
vmw_vr_ops_clusterrole event.idm.read_only_udm.intermediary.resource.attribute.roles.name 中间资源角色名称会从原始日志中的 vmw_vr_ops_clusterrole 字段中提取。
vmw_vr_ops_hostname event.idm.read_only_udm.intermediary.hostname 中继主机名会从原始日志中的 vmw_vr_ops_hostname 字段中提取。
vmw_vr_ops_id event.idm.read_only_udm.intermediary.resource.product_object_id 中间商品对象 ID 是从原始日志中的 vmw_vr_ops_id 字段中提取的。
vmw_vr_ops_logtype event.idm.read_only_udm.intermediary.resource.attribute.labels.value 系统会从原始日志中的 vmw_vr_ops_logtype 字段中提取 vmw_vr_ops_logtype 值,并将其作为键为“vmw_vr_ops_logtype”的标签添加到日志中。
vmw_vr_ops_nodename event.idm.read_only_udm.intermediary.resource.attribute.labels.value 系统会从原始日志中的 vmw_vr_ops_nodename 字段中提取 vmw_vr_ops_nodename 值,并将其添加为键值为“vmw_vr_ops_nodename”的标签。由一系列基于其他字段值的条件语句决定。可能的值包括 USER_LOGIN、NETWORK_CONNECTION、STATUS_UPDATE 和 GENERIC_EVENT。已硬编码为“VMWARE_NSX”。已硬编码为“VMWARE_NSX”。已硬编码为“VMWARE_NSX”。如果 Operation 为“LOGIN”且 target_details 不为空,或者 message 包含“authentication failure”且 application 不为空,则设置为“AUTHTYPE_UNSPECIFIED”。如果 PROTO 为“ssh2”,则设置为“SSH”;如果 subcomp 为“http”,则设置为“HTTP”。由一系列基于其他字段值的条件语句决定。可能的值包括 ALLOW 和 BLOCK。如果 vmw_cluster 不为空,则设置为“VIRTUAL_MACHINE”。

变化

2023-11-15

  • 增强功能:在“旧值”字段中:
  • 将“unique_id”映射到“principal.resource.product_object_id”。
  • 将“resource_type”映射到“principal.resource.sub_type”。
  • 将“_create_user”“_last_modified_user”映射到“principal.user.email_addresses”。
  • 将“action”映射到“security_result.action”。
  • 将“rule_id”映射到“security_result.rule_id”。
  • 将“display_name”映射到“principal.resource.name”。
  • 将“_last_modified_time”映射到“principal.resource.attribute.last_update_time”。
  • 将“_create_time”映射到“principal.resource.attribute.creation_time”。
  • 将“parent_path”映射到“principal.resource.parent”。
  • 将“path”映射到“principal.process.file.full_path”。
  • 将“id”映射到“principal.resource.id”。
  • 在“新值”字段中:
  • 将“resource_type”映射到“target.resource.sub_type”。
  • 将“unique_id”映射到“target.resource.product_object_id”。
  • 将“path”映射到“target.process.file.full_path”。
  • 将“display_name”映射到“target.resource.name”。
  • 将“id”映射到“target.resource.id”。
  • 根据 vmw_host 中的值将“vmw_host”映射到“target_details.hostname 或 target_details.ip”。
  • 将“vmw_product”映射到“target.application”。
  • 将“vmw_vcenter”映射到“target.cloud.availability_zone”。
  • 将“vmw_cluster”映射到“target.resource.name”。
  • 将“vmw_object_id”映射到“target.resource.product_object_id”。
  • 将“vmw_datacenter”映射到“target.resource.attribute.labels”。
  • 将“vmw_vcenter_id”映射到“target.resource.attribute.labels”。
  • 将“vmw_vr_ops_logtype”映射到“intermediary.resource.attribute.labels”。
  • 将“vmw_vr_ops_appname”映射到“intermediary.application”。
  • 将“vmw_vr_ops_hostname”映射到“intermediary.hostname”。
  • 将“vmw_vr_ops_nodename”映射到“intermediary.resource.attribute.labels”。
  • 将“vmw_vr_ops_clustername”映射到“intermediary.resource.name”。
  • 将“vmw_vr_ops_clusterrole”映射到“intermediary.resource.attribute.labels.roles.name”。
  • 将“vmw_vr_ops_id”映射到“intermediary.resource.product_object_id”。

2023-10-13

  • 增强功能:修改了 Grok 模式,以便使用端口解析“sourceIp”。
  • 将“vmw_host”“vmw_product”“vmw_vcenter”“vmw_cluster”“vmw_vr_ops_id”“vmw_object_id”“vmw_datacenter”“vmw_vcenter_id”“vmw_vr_ops_logtype”“vmw_vr_ops_appname”“vmw_vr_ops_hostname”“vmw_vr_ops_nodename”“vmw_vr_ops_clustername”“vmw_vr_ops_clusterrole”“managedExternally”“update”“filepath”“eventType”“resourceId”映射到“principal.resource.attribute.labels”。
  • 将“payload”中的字段映射到“principal.resource.attribute.labels”。
  • 将“client”映射到“principal.ip”
  • 将“new_value”中的字段映射到“target.resource.attribute.labels”。

2023-10-03

  • 增强功能:添加了 Grok 模式,用于在将“sourceIp”映射到 UDM 字段之前检查其是否为有效 IP 地址。

2023-09-12

  • 增强功能:添加了对包含“新值”和“旧值”字段的 syslog 日志的支持。

2023-06-26

  • 将“PASS”“DROP”“REJECT”“NAT”“NONAT”“RDR”“NORDR”“PUNT”“REDIRECT”和“COPY”中的映射值作为“Network_Status”映射到“additional.fields”键。

2023-03-07

  • 将“errorCode”映射到“security_result.detection_fields”。
  • 将“app_type”映射到“principal.application”。
  • 将“tname”“s2comp”“node”映射到“principal.resource.attribute.labels”。
  • 将“exe”映射到“target.process.file.full_path”。
  • 将“dst_ip”映射到“target.ip”。
  • 将“ses”映射到“network.session_id”。
  • 将“hostname”映射到“principal.ip”。
  • 将“方向”映射到“network.direction”。
  • 将“reqId”映射到“metadata.product_log_id”。

2022-06-10

  • 新创建的解析器

需要更多帮助?向社区成员和 Google SecOps 专业人士寻求解答。