收集 AMD Pensando DSS 防火墙日志

解析器版本:1.0

支持的语言:

本文档介绍了如何使用 Bindplane 将 AMD Pensando DSS 防火墙日志注入 Google Security Operations。

AMD Pensando Distributed Services Switch (DSS) 防火墙是一种硬件加速的有状态防火墙,在 Aruba CX 10000 系列交换机内的 AMD Pensando DPU 上运行。它以线速提供微分段和东西向流量检查。防火墙通过 AMD Pensando Policy and Services Manager (PSM) 进行管理,该管理器提供集中式政策配置、监控和 syslog 导出功能。

准备工作

请确保满足以下前提条件:

  • Google SecOps 实例。
  • Windows Server 2016 或更高版本,或者安装了 systemd 的 Linux 主机。
  • 如果在代理后面运行,请确保根据 Bindplane 代理要求打开防火墙端口。
  • 对 AMD Pensando Policy and Services Manager (PSM) 或 Aruba CX 10000 交换机管理界面的特权访问权限。
  • Bindplane 代理主机与 Aruba CX 10000 交换机或 PSM 之间的网络连接。

获取 Bindplane 代理的 Google SecOps 凭据

如需向 Google SecOps 验证 Bindplane 代理,请选择以下方法之一:

  • 新部署:使用 Chronicle API(选项 1)。
  • 旧版部署:继续使用数据注入身份验证文件(方法 2),直到 Ingestion API 于 2027 年 7 月 20 日停用。
  1. 登录 Google Cloud 控制台,然后选择与您的 Google SecOps 实例关联的 Google Cloud 项目。
  2. 前往 IAM 和管理 > 服务账号。
  3. 点击创建服务账号。
  4. 提供以下配置详细信息:
    • 服务账号名称:输入账号的名称(例如 bindplane-ingest)。
    • 服务账号说明:输入说明(例如 Bindplane agent log ingestion)。
  5. 点击创建并继续。
  6. 在向此服务账号授予对项目的访问权限部分,点击选择角色,然后选择 Chronicle Editor。
  7. 点击继续,然后点击完成。
  8. 点击您创建的服务账号,然后前往密钥标签页。
  9. 依次点击添加密钥> 创建新密钥。
  10. 选择 JSON,然后点击创建。密钥文件会下载到您的计算机上。
  11. 将密钥文件另存为 Bindplane 收集器目录(Linux 上的 /opt/observiq-otel-collector/ingestion-auth.json 或 Windows 上的 C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json)中的 ingestion-auth.json,或更新 config.yaml 中的 creds_file_path 以匹配您保存该文件的路径。
  12. 前往 IAM 和管理 > 设置,然后复制项目编号。您需要此信息才能配置导出器。

方法 2:下载数据注入身份验证文件(旧版)

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

获取 Google SecOps 客户 ID

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

安装 Bindplane 代理

按照以下说明在 Windows 或 Linux 操作系统上安装 Bindplane 代理。

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 代理安装指南。

配置 Bindplane 代理以注入 Syslog 并发送到 Google SecOps

  1. 访问配置文件:

    • 找到 config.yaml 文件。通常,它位于 Linux 上的 /opt/observiq-otel-collector/ 目录中或 Windows 上的安装目录中。
    • 使用文本编辑器(例如 nano、vi 或记事本)打开该文件。
  2. 按如下方式修改 config.yaml 文件:

    receivers:
      udplog:
        # Replace the port and IP address as required
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/chronicle_w_labels:
        protocol: https
        # Region of your instance, for example us, europe, asia-southeast1
        location: <LOCATION>
        # Project number of the Google Cloud project linked to the instance
        project: '<PROJECT_NUMBER>'
        compression: gzip
        # Adjust the path to the credentials file you downloaded in Step 1
        creds_file_path: '/path/to/ingestion-authentication-file.json'
        # Replace with your actual customer ID from Step 2
        customer_id: '<CUSTOMER_ID>'
        endpoint: chronicle.googleapis.com
        # Add optional ingestion labels for better organization
        log_type: 'AMD_DSS_FIREWALL'
        raw_log_field: body
        ingestion_labels:
    
    service:
      pipelines:
        logs/source0__chronicle_w_labels-0:
          receivers:
            - udplog
          exporters:
            - chronicle/chronicle_w_labels
    
    • 将 <LOCATION> 替换为 Google SecOps 实例的区域(例如 us、europe 或 asia-southeast1)。导出器会使用此值作为 chronicle.googleapis.com 的前缀。如需查看完整列表,请参阅区域级端点。
    • 将 <PROJECT_NUMBER> 替换为 IAM 和管理 > 设置中的项目编号。
  • 根据基础架构的要求替换端口和 IP 地址。
  • 将 <CUSTOMER_ID> 替换为实际客户 ID。
  • 将 /path/to/ingestion-authentication-file.json 更新为服务账号密钥文件(选项 1)的保存路径。

旧版提取 API

  • 如果您使用选项 2 中的数据注入身份验证文件,请将 exporters 代码块替换为以下内容。将 creds_file_path 设置为数据注入身份验证文件的路径,如果您的实例位于美国境外,请将 malachiteingestion-pa.googleapis.com 替换为您的区域端点(例如 europe-malachiteingestion-pa.googleapis.com)。

    exporters:
      chronicle/chronicle_w_labels:
        compression: gzip
        # Adjust the path to the credentials file you downloaded in Step 1
        creds_file_path: '/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
        log_type: 'AMD_DSS_FIREWALL'
        raw_log_field: body
        ingestion_labels:
    

重启 Bindplane 代理以应用更改

如需在 Linux 中重启 Bindplane 代理,请执行以下操作:

  1. 运行以下命令:

    sudo systemctl restart observiq-otel-collector
    
  2. 验证服务是否正在运行:

    sudo systemctl status observiq-otel-collector
    
  3. 检查日志中是否存在错误:

    sudo journalctl -u observiq-otel-collector -f
    

如需在 Windows 中重启 Bindplane 代理,请执行以下操作:

  1. 请从下列选项中选择一项:

    • 以管理员身份运行命令提示符或 PowerShell:
    net stop observiq-otel-collector && net start observiq-otel-collector
    
    • 服务控制台:
      1. 按 Win+R,输入 services.msc,然后按 Enter 键。
      2. 找到 observIQ OpenTelemetry 收集器。
      3. 右键点击并选择重启。
  2. 验证服务是否正在运行:

    sc query observiq-otel-collector
    
  3. 检查日志中的错误:

    type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
    

在 AMD Pensando DSS 防火墙上配置 syslog 转发

AMD Pensando DSS 防火墙支持两种配置 syslog 转发的方法:通过 Pensando Policy and Services Manager (PSM) 网页界面或通过 Aruba CX 10000 交换机上的 AOS-CX CLI。

通过 Pensando PSM 配置 syslog 导出

  1. 登录 AMD Pensando Policy and Services Manager (PSM) 网页界面。
  2. 依次前往监控 > 提醒和事件。
  3. 选择目标标签页。
  4. 点击添加目的地。
  5. 提供以下配置详细信息:
    • 目标类型:选择 Syslog。
    • 服务器地址:输入 Bindplane 代理主机(例如 192.168.1.100)的 IP 地址。
    • 端口:输入在 Bindplane 代理 config.yaml 中配置的端口(例如 514)。
    • 协议:选择 UDP 以与 Bindplane 代理接收器配置相匹配。
    • 格式:选择 BSD (RFC 5424)。
  6. 点击保存以创建 syslog 目标。
  7. 选择提醒政策标签页。
  8. 点击添加提醒政策,定义要转发哪些事件和提醒。
  9. 选择所需的事件类别和严重级别。
  10. 在目标部分中,选择您创建的 syslog 目标。
  11. 点击保存以启用提醒政策。

在 Aruba CX 10000 上通过 AOS-CX CLI 配置 syslog

  1. 通过 SSH 或控制台连接到 Aruba CX 10000 交换机。
  2. 进入配置模式:

    configure terminal
    
  3. 使用 UDP 配置远程 syslog 服务器(将 <BINDPLANE_IP> 替换为您的 Bindplane 代理 IP 地址):

    logging <BINDPLANE_IP> udp 514 severity info
    

    或者对于 TCP:

    logging <BINDPLANE_IP> tcp 1470 severity info
    

    或 TLS:

    logging <BINDPLANE_IP> tls 6514 severity info
    
  4. 设置 syslog 设施:

    logging facility local0
    
  5. 保存配置:

    write memory
    
  6. 退出配置模式:

    exit
    

如需详细了解 AOS-CX 日志记录命令,请参阅 AOS-CX CLI 参考文档。

UDM 映射表

日志字段 UDM 映射 逻辑
action read_only_udm.metadata.product_event_type 直接映射。
action read_only_udm.security_result.action 如果操作为“deny”,则设置为“BLOCK”。如果操作为“allow”,则设置为“ALLOW”。
column10 read_only_udm.network.session_id 直接映射。
column11 read_only_udm.additional.fields.value.string_value 直接映射。键已硬编码为“security_policy_id”。
column12 read_only_udm.security_result.rule_id 直接映射。
column13 read_only_udm.security_result.rule_name 直接映射。
column14 read_only_udm.network.sent_packets 直接映射。
column15 read_only_udm.network.sent_bytes 直接映射。
column16 read_only_udm.network.received_packets 直接映射。
column17 read_only_udm.network.received_bytes 直接映射。
column18 read_only_udm.additional.fields.value.string_value 直接映射。键已硬编码为“vlan”。
column19 read_only_udm.principal.asset.software.vendor_name 直接映射。
column19 read_only_udm.principal.asset.software.name 直接映射。
column2 read_only_udm.metadata.product_event_type 直接映射。
column20 read_only_udm.principal.asset.software.version 直接映射。
column21 read_only_udm.principal.asset_id 将“asset_id:”与 column21 的值串联起来。
column22 read_only_udm.principal.asset.attribute.labels.value 直接映射。键已硬编码为“device_name”。
column23 read_only_udm.principal.asset.attribute.labels.value 直接映射。键硬编码为“unit_id”。
column24 read_only_udm.metadata.product_version 直接映射。
column25 read_only_udm.additional.fields.value.string_value 直接映射。键已硬编码为“policy_name”。
column25 read_only_udm.security_result.rule_type 直接映射。
column4 read_only_udm.principal.resource.product_object_id 直接映射。
column5 read_only_udm.principal.ip 直接映射。
column6 read_only_udm.principal.port 直接映射。
column7 read_only_udm.target.ip 直接映射。
column8 read_only_udm.target.port 直接映射。
column9 read_only_udm.network.ip_protocol 将数字协议编号映射到其对应的名称(例如,6 映射到 TCP,17 映射到 UDP)。
dip read_only_udm.target.ip 直接映射。
dport read_only_udm.target.port 直接映射。
dvc read_only_udm.intermediary.hostname 如果 dvc 不是 IP 地址,则映射到主机名。否则,映射到 IP。
iflowbytes read_only_udm.network.sent_bytes 直接映射。
iflowpkts read_only_udm.network.sent_packets 直接映射。
msg_id read_only_udm.additional.fields.value.string_value 直接映射。键硬编码为“msg_id”。
policy_name read_only_udm.additional.fields.value.string_value 直接映射。键硬编码为“policy_name”。
policy_name read_only_udm.security_result.rule_type 直接映射。
proc_id read_only_udm.target.process.pid 直接映射。
proc_name read_only_udm.target.application 直接映射。
protocol_number_src read_only_udm.network.ip_protocol 将数字协议编号映射到其对应的名称(例如,6 映射到 TCP,17 映射到 UDP)。
rflowbytes read_only_udm.network.received_bytes 直接映射。
rflowpkts read_only_udm.network.received_packets 直接映射。
rule_id read_only_udm.security_result.rule_id 直接映射。
rule_name read_only_udm.security_result.rule_name 直接映射。
sd read_only_udm.additional.fields.value.string_value 直接映射。键硬编码为“sd”。
security_policy_id read_only_udm.additional.fields.value.string_value 直接映射。键已硬编码为“security_policy_id”。
session_id read_only_udm.network.session_id 直接映射。
session_state read_only_udm.metadata.product_event_type 直接映射。
sip read_only_udm.principal.ip 直接映射。
software_version read_only_udm.principal.asset.software.version 直接映射。
sport read_only_udm.principal.port 直接映射。
ts read_only_udm.metadata.event_timestamp 系统会解析日志中的时间戳,并将其格式设置为 UDM 时间戳格式。
vlan read_only_udm.additional.fields.value.string_value 直接映射。键已硬编码为“vlan”。
read_only_udm.metadata.event_type 如果 sip 和 dip 都存在,则设置为“NETWORK_UNCATEGORIZED”。如果仅存在 sip,则设置为“STATUS_UPDATE”。否则,请设置为“GENERIC_EVENT”。
read_only_udm.metadata.log_type 硬编码为“AMD_DSS_FIREWALL”。
read_only_udm.metadata.product_name 硬编码为“AMD_DSS_FIREWALL”。
read_only_udm.metadata.vendor_name 硬编码为“AMD_DSS_FIREWALL”。
read_only_udm.principal.resource.resource_type 硬编码为“VPC_NETWORK”。

更新日志

查看相应解析器的更新日志

需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。