收集 ADVA Fiber Service Platform 日志

支持的平台:

本文档介绍了如何使用 Bindplane 将 ADVA Fiber Service Platform (ADVA FSP) 日志注入到 Google Security Operations。解析器从交换机和路由器 syslog 消息中提取字段,并将它们转换为键值对。然后,它会将这些提取的字段及其值映射到 Chronicle UDM 架构中的相应字段,从而丰富数据以供安全分析。

准备工作

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

  • Google SecOps 实例
  • 搭载 systemd 的 Windows 2012 SP2 或更高版本或 Linux 主机
  • 如果在代理后面运行,请确保防火墙端口根据 Bindplane 代理要求处于开放状态
  • 对 ADVA FSP 设备管理控制台的特权访问权限

获取 Google SecOps 注入身份验证文件

  1. 登录 Google SecOps 控制台。
  2. 依次前往 SIEM 设置 > 收集代理
  3. 下载注入身份验证文件。将该文件安全地保存在将要安装 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 代理以注入 Syslog 并将其发送到 Google SecOps

  1. 访问配置文件:

    1. 找到 config.yaml 文件。通常,它位于 Linux 上的 /etc/bindplane-agent/ 目录中或 Windows 上的安装目录中。
    2. 使用文本编辑器(例如 nanovi 或记事本)打开该文件。
  2. 修改 config.yaml 文件。以下是两种可用的接收器选项;请选择与设备发送日志的方式相符的选项:

    • 选项 A - UDP 日志接收器(简单 UDP)
    receivers:
      udplog:
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/chronicle_w_labels:
        compression: gzip
        creds_file_path: '/path/to/ingestion-authentication-file.json'
        customer_id: <CUSTOMER_ID>
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: 'ADVA_FSP'
        raw_log_field: body
        ingestion_labels:
    
    service:
      pipelines:
        logs/adva-fsp:
          receivers:
            - udplog
          exporters:
            - chronicle/chronicle_w_labels
    
    • 选项 B - Syslog 接收器(建议用于严格的 Syslog 框架)
    receivers:
      syslog:
        tcp:
          listen_address: "0.0.0.0:514"
        protocol: rfc5424   # or rfc3164 if your device uses BSD syslog
    
    exporters:
      chronicle/chronicle_w_labels:
        compression: gzip
        creds_file_path: '/path/to/ingestion-authentication-file.json'
        customer_id: <CUSTOMER_ID>
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: 'ADVA_FSP'
        raw_log_field: body
        ingestion_labels:
          source: 'adva-fsp'
          env: 'production'
    
    service:
      pipelines:
        logs/adva-fsp:
          receivers:
            - syslog
          exporters:
            - chronicle/chronicle_w_labels
    
    • 根据您的基础架构需要替换端口和 IP 地址。
    • <CUSTOMER_ID> 替换为实际的客户 ID。
    • /path/to/ingestion-authentication-file.json 更新为获取 Google SecOps 注入身份验证文件部分中保存身份验证文件的路径。

重启 Bindplane 代理以应用更改

  • 如需在 Linux 中重启 Bindplane 代理,请运行以下命令:

    sudo systemctl restart bindplane-agent
    
  • 如需在 Windows 中重启 Bindplane 代理,您可以使用服务控制台,也可以输入以下命令:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

    在 ADVA FSP 上配置 Syslog 转发

  1. 登录 ADVA FSP 管理控制台
  2. 依次前往节点 > 常规 > 控制
  3. 远程事件接收者 (SysLog) 部分,点击添加
  4. 提供以下配置详细信息:
    • IPv4/v6 地址:输入 Bindplane 代理 IP 地址。
    • 端口:输入 Bindplane 代理端口号(例如 514)。
    • 协议:根据实际的 Bindplane 代理配置,选择 UDPTCP
    • 消息扩展服务:可选:点击添加用户标签,在消息中添加其他标识符。
  5. 点击保存以激活配置。

UDM 映射表

日志字段 UDM 映射 逻辑
ACCESSORDER additional.fields.value.string_value 该值取自原始日志中的 ACCESSORDER 字段。
ADDRESS principal.ip 该值取自原始日志中的 ADDRESS 字段,并解析为 IP 地址。
ADMINSTATE additional.fields.value.string_value 该值取自原始日志中的 ADMINSTATE 字段。
AISCLIENTMDLEVEL additional.fields.value.string_value 该值取自原始日志中的 AISCLIENTMDLEVEL 字段。
AISGENENABLED additional.fields.value.string_value 该值取自原始日志中的 AISGENENABLED 字段。
AISPRIORITY additional.fields.value.string_value 该值取自原始日志中的 AISPRIORITY 字段。
AISTXPERIOD additional.fields.value.string_value 该值取自原始日志中的 AISTXPERIOD 字段。
AISTRIGGERTYPES additional.fields.value.string_value 该值取自原始日志中的 AISTRIGGERTYPES 字段。
BUFFERSIZE additional.fields.value.string_value 该值取自原始日志中的 BUFFERSIZE 字段。
CCIENABLED additional.fields.value.string_value 该值取自原始日志中的 CCIENABLED 字段。
CCMINTERFACESTATUSTLVCONTROL additional.fields.value.string_value 该值取自原始日志中的 CCMINTERFACESTATUSTLVCONTROL 字段。
CCMLTMPRIORITY additional.fields.value.string_value 该值取自原始日志中的 CCMLTMPRIORITY 字段。
CFMTAGETHERTYPE additional.fields.value.string_value 该值取自原始日志中的 CFMTAGETHERTYPE 字段。
CIR additional.fields.value.string_value 该值取自原始日志中的 CIR 字段。
COS additional.fields.value.string_value 该值取自原始日志中的 COS 字段。
CT metadata.description 该值取自原始日志中的 CT 字段。
DESTBMAC target.mac 该值取自原始日志中的 DESTBMAC 字段,并解析为 MAC 地址。
DHCPCIDENABLED additional.fields.value.string_value 该值取自原始日志中的 DHCPCIDENABLED 字段。
DHCPENABLED additional.fields.value.string_value 该值取自原始日志中的 DHCPENABLED 字段。
DHCPHOSTNAME network.dhcp.client_hostname 该值取自原始日志中的 DHCPHOSTNAME 字段。
DHCPHOSTNAMEENABLED additional.fields.value.string_value 该值取自原始日志中的 DHCPHOSTNAMEENABLED 字段。
DHCPHOSTNAMETYPE additional.fields.value.string_value 该值取自原始日志中的 DHCPHOSTNAMETYPE 字段。
DHCPLOGSERVERENABLED additional.fields.value.string_value 该值取自原始日志中的 DHCPLOGSERVERENABLED 字段。
DHCPNTPSERVERENABLED additional.fields.value.string_value 该值取自原始日志中的 DHCPNTPSERVERENABLED 字段。
DHCPV6CIDENABLED additional.fields.value.string_value 该值取自原始日志中的 DHCPV6CIDENABLED 字段。
DHCPV6ENABLED additional.fields.value.string_value 该值取自原始日志中的 DHCPV6ENABLED 字段。
DHCPV6ROLE additional.fields.value.string_value 该值取自原始日志中的 DHCPV6ROLE 字段。
DHCPVENDORINFOTYPE additional.fields.value.string_value 该值取自原始日志中的 DHCPVENDORINFOTYPE 字段。
DIR additional.fields.value.string_value 该值取自原始日志中的 DIR 字段。
方向 network.direction 如果原始日志中的 DIRECTION 字段为“UP”(不区分大小写),则该值设置为“OUTBOUND”;如果该字段为“DOWN”,则该值设置为“INBOUND”;否则,该值留空。
ENCAPSULATIONTYPE additional.fields.value.string_value 该值取自原始日志中的 ENCAPSULATIONTYPE 字段。
GUARANTEEDA2NBW additional.fields.value.string_value 该值取自原始日志中的 GUARANTEEDA2NBW 字段。
HCOSMGMTENABLED additional.fields.value.string_value 该值取自原始日志中的 HCOSMGMTENABLED 字段。
INT additional.fields.value.string_value 该值取自原始日志中的 INT 字段。
IPMODE additional.fields.value.string_value 该值取自原始日志中的 IPMODE 字段。
IPV6ADDR principal.ip 该值取自原始日志中的 IPV6ADDR 字段,并解析为 IP 地址。
IPV6ADDRPREFIXLENGTH additional.fields.value.string_value 该值取自原始日志中的 IPV6ADDRPREFIXLENGTH 字段。
IPV6MTU additional.fields.value.string_value 该值取自原始日志中的 IPV6MTU 字段。
ITAG additional.fields.value.string_value 该值取自原始日志中的 ITAG 字段。
ITAGENABLED additional.fields.value.string_value 该值取自原始日志中的 ITAGENABLED 字段。
LBMTXDESTTYPE additional.fields.value.string_value 该值取自原始日志中的 LBMTXDESTTYPE 字段。
LBMTXNUMMSGS additional.fields.value.string_value 该值取自原始日志中的 LBMTXNUMMSGS 字段。
LBMTXVLANDROPENABLE additional.fields.value.string_value 该值取自原始日志中的 LBMTXVLANDROPENABLE 字段。
LBMTXVLANPRIORITY additional.fields.value.string_value 该值取自原始日志中的 LBMTXVLANPRIORITY 字段。
LLRESPONDERENABLED additional.fields.value.string_value 该值取自原始日志中的 LLRESPONDERENABLED 字段。
LLVIDLIST additional.fields.value.string_value 该值取自原始日志中的 LLVIDLIST 字段。
LMDUALENDEDCOUNTALLPRIOS additional.fields.value.string_value 该值取自原始日志中的 LMDUALENDEDCOUNTALLPRIOS 字段。
LMINPROFILEONLY additional.fields.value.string_value 该值取自原始日志中的 LMINPROFILEONLY 字段。
LMRXCOUNTALLPRIOS additional.fields.value.string_value 该值取自原始日志中的 LMRXCOUNTALLPRIOS 字段。
LMTXCOUNTALLPRIOS additional.fields.value.string_value 该值取自原始日志中的 LMTXCOUNTALLPRIOS 字段。
LOC additional.fields.value.string_value 该值取自原始日志中的 LOC 字段。
LOCN additional.fields.value.string_value 该值取自原始日志中的 LOCN 字段。
LOGINTIMEOUT additional.fields.value.string_value 该值取自原始日志中的 LOGINTIMEOUT 字段。
LOOPBACKBLOCKINGENABLED additional.fields.value.string_value 该值取自原始日志中的 LOOPBACKBLOCKINGENABLED 字段。
LOOPBACKCONFIG additional.fields.value.string_value 该值取自原始日志中的 LOOPBACKCONFIG 字段。
LOOPBACKDESTMAC target.mac 该值取自原始日志中的 LOOPBACKDESTMAC 字段,并解析为 MAC 地址。
LOOPBACKDESTMACCONTROL additional.fields.value.string_value 该值取自原始日志中的 LOOPBACKDESTMACCONTROL 字段。
LOOPBACKINNERVLAN1 additional.fields.value.string_value 该值取自原始日志中的 LOOPBACKINNERVLAN1 字段。
LOOPBACKINNERVLAN1ENABLED additional.fields.value.string_value 该值取自原始日志中的 LOOPBACKINNERVLAN1ENABLED 字段。
LOOPBACKINNERVLAN2 additional.fields.value.string_value 该值取自原始日志中的 LOOPBACKINNERVLAN2 字段。
LOOPBACKINNERVLAN2ENABLED additional.fields.value.string_value 该值取自原始日志中的 LOOPBACKINNERVLAN2ENABLED 字段。
LOOPBACKINNERVLAN3 additional.fields.value.string_value 该值取自原始日志中的 LOOPBACKINNERVLAN3 字段。
LOOPBACKINNERVLAN3ENABLED additional.fields.value.string_value 该值取自原始日志中的 LOOPBACKINNERVLAN3ENABLED 字段。
LOOPBACKOUTERITAG1 additional.fields.value.string_value 该值取自原始日志中的 LOOPBACKOUTERITAG1 字段。
LOOPBACKOUTERITAG1ENABLED additional.fields.value.string_value 该值取自原始日志中的 LOOPBACKOUTERITAG1ENABLED 字段。
LOOPBACKOUTERITAG2 additional.fields.value.string_value 该值取自原始日志中的 LOOPBACKOUTERITAG2 字段。
LOOPBACKOUTERITAG2ENABLED additional.fields.value.string_value 该值取自原始日志中的 LOOPBACKOUTERITAG2ENABLED 字段。
LOOPBACKOUTERITAG3 additional.fields.value.string_value 该值取自原始日志中的 LOOPBACKOUTERITAG3 字段。
LOOPBACKOUTERITAG3ENABLED additional.fields.value.string_value 该值取自原始日志中的 LOOPBACKOUTERITAG3ENABLED 字段。
LOOPBACKOUTERVLAN1 additional.fields.value.string_value 该值取自原始日志中的 LOOPBACKOUTERVLAN1 字段。
LOOPBACKOUTERVLAN1ENABLED additional.fields.value.string_value 该值取自原始日志中的 LOOPBACKOUTERVLAN1ENABLED 字段。
LOOPBACKOUTERVLAN2 additional.fields.value.string_value 该值取自原始日志中的 LOOPBACKOUTERVLAN2 字段。
LOOPBACKOUTERVLAN2ENABLED additional.fields.value.string_value 该值取自原始日志中的 LOOPBACKOUTERVLAN2ENABLED 字段。
LOOPBACKOUTERVLAN3 additional.fields.value.string_value 该值取自原始日志中的 LOOPBACKOUTERVLAN3 字段。
LOOPBACKOUTERVLAN3ENABLED additional.fields.value.string_value 该值取自原始日志中的 LOOPBACKOUTERVLAN3ENABLED 字段。
LOOPBACKSOURCEMAC principal.mac 该值取自原始日志中的 LOOPBACKSOURCEMAC 字段,并解析为 MAC 地址。
LOOPBACKSWAPSADA additional.fields.value.string_value 该值取自原始日志中的 LOOPBACKSWAPSADA 字段。
LOOPBACKTIMER additional.fields.value.string_value 该值取自原始日志中的 LOOPBACKTIMER 字段。
LOWESTPRIODEFECT additional.fields.value.string_value 该值取自原始日志中的 LOWESTPRIODEFECT 字段。
LTMTXDESTTYPE additional.fields.value.string_value 该值取自原始日志中的 LTMTXDESTTYPE 字段。
LTMTXEGRESSID metadata.product_log_id 该值取自原始日志中的 LTMTXEGRESSID 字段。
LTMTXFLAGS additional.fields.value.string_value 该值取自原始日志中的 LTMTXFLAGS 字段。
LTMTXTTL additional.fields.value.string_value 该值取自原始日志中的 LTMTXTTL 字段。
MT additional.fields.value.string_value 该值取自原始日志中的 MT 字段。
MAXIMUMA2NBW additional.fields.value.string_value 该值取自原始日志中的 MAXIMUMA2NBW 字段。
MVAL additional.fields.value.string_value 该值取自原始日志中的 MVAL 字段。
名称 additional.fields.value.string_value 该值取自原始日志中的 NAME 字段。
NC additional.fields.value.string_value 该值取自原始日志中的 NC 字段。
PORTEID additional.fields.value.string_value 该值取自原始日志中的 PORTEID 字段。
PORTLLENABLED additional.fields.value.string_value 该值取自原始日志中的 PORTLLENABLED 字段。
PRIMARYSERVER target.ip 该值取自原始日志中的 PRIMARYSERVER 字段,并解析为 IP 地址。
PRIMARYVID additional.fields.value.string_value 该值取自原始日志中的 PRIMARYVID 字段。
QUEUEPROFILEID additional.fields.value.string_value 该值取自原始日志中的 QUEUEPROFILEID 字段。
RXSHAPEREID additional.fields.value.string_value 该值取自原始日志中的 RXSHAPEREID 字段。
SATRESPONDENABLED additional.fields.value.string_value 该值取自原始日志中的 SATRESPONDENABLED 字段。
SE additional.fields.value.string_value 该值取自原始日志中的 SE 字段。
SHAREDVIM additional.fields.value.string_value 该值取自原始日志中的 SHAREDVIM 字段。
SVLANENABLED additional.fields.value.string_value 该值取自原始日志中的 SVLANENABLED 字段。
SVLANID additional.fields.value.string_value 该值取自原始日志中的 SVLANID 字段。
SYSLOCATION principal.location.country_or_region 该值取自原始日志中的 SYSLOCATION 字段。
THVAL additional.fields.value.string_value 该值取自原始日志中的 THVAL 字段。
类型 additional.fields.value.string_value 该值取自原始日志中的 TYPE 字段。
USERACCESSTYPE additional.fields.value.string_value 该值取自原始日志中的 USERACCESSTYPE 字段。
USERAUTHKEY additional.fields.value.string_value 该值取自原始日志中的 USERAUTHKEY 字段。
USERAUTHKEYLOCAL additional.fields.value.string_value 该值取自原始日志中的 USERAUTHKEYLOCAL 字段。
USERAUTHPROTOCOL additional.fields.value.string_value 该值取自原始日志中的 USERAUTHPROTOCOL 字段。
USERENGINEID additional.fields.value.string_value 该值取自原始日志中的 USERENGINEID 字段。
USERKEYSLOCAL additional.fields.value.string_value 该值取自原始日志中的 USERKEYSLOCAL 字段。
用户名 principal.user.userid 该值取自原始日志中的 USERNAME 字段。
USERPRIVKEY additional.fields.value.string_value 该值取自原始日志中的 USERPRIVKEY 字段。
USERPRIVKEYLOCAL additional.fields.value.string_value 该值取自原始日志中的 USERPRIVKEYLOCAL 字段。
USERPRIVPROTOCOL additional.fields.value.string_value 该值取自原始日志中的 USERPRIVPROTOCOL 字段。
USERSECURITYLEVEL additional.fields.value.string_value 该值取自原始日志中的 USERSECURITYLEVEL 字段。
USERSECURITYNAME principal.user.user_display_name 该值取自原始日志中的 USERSECURITYNAME 字段。
应用 principal.application 该值取自 grok 解析器提取的应用字段。
说明 security_result.description 该值取自 grok 解析器提取的说明字段。
metadata.description 如果原始日志中的 CT 字段为“备用 NTP 服务器失败”,则该值设置为“备用 NTP 服务器失败”。
metadata.event_timestamp.seconds 该值取自 grok 解析器提取的时间戳字段,并转换为纪元秒数。
metadata.event_type 该值根据以下逻辑设置:
- NETWORK_DHCP(如果 network_dhcp_present 为 true,并且 principal_present 或 target_present 为 true)。
- 如果 target_present 和 principal_present 均为 true,则为 NETWORK_CONNECTION。
- 如果 user_present 为 true,则为 USER_RESOURCE_ACCESS。
- 如果 principal_present 为 true,则为 STATUS_UPDATE。否则为
- GENERIC_EVENT。
metadata.product_log_id 该值取自原始日志中的 LTMTXEGRESSID 字段。
metadata.product_name 该值设置为“ADVA_FSP”。
metadata.vendor_name 该值设置为“ADVA_FSP”。
network.application_protocol 如果 network_dhcp_present 为 true,并且 principal_present 或 target_present 为 true,则该值设置为“DHCP”。
principal.hostname 该值取自 grok 解析器提取的 principal_hostname 字段,并移除了下划线。
principal.ip 该值取自原始日志中的 IPADDR 字段,并解析为 IP 地址。
timestamp.seconds 该值取自 grok 解析器提取的时间戳字段,并转换为纪元秒数。

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