收集 A10 网络负载平衡器日志

支持的平台:

本文档介绍了如何使用 Bindplane Agent 将 A10 网络负载平衡器日志导出到 Google 安全运营中心。解析器首先使用 grok 模式提取相关字段。然后,它利用条件语句 (if) 基于提取的字段的存在性和内容将其映射到统一数据模型 (UDM),最终对事件类型进行分类。

准备工作

  • 确保您拥有 Google SecOps 实例。
  • 确保您使用的是 Windows 2016 或更高版本,或者使用了带有 systemd 的 Linux 主机。
  • 如果在代理后面运行,请确保防火墙端口处于打开状态。
  • 确保您拥有对 A10 负载平衡器的特权访问权限。

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

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

获取 Google SecOps 客户 ID

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

安装 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 文件:

    receivers:
        udplog:
            # Replace the port and IP address as required
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            # Adjust the path to the credentials file you downloaded in Step 1
            creds: '/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
            ingestion_labels:
                log_type: A10_LOAD_BALANCER
                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 代理,您可以使用服务控制台,也可以输入以下命令:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

在 A10 负载平衡器中配置 Syslog 服务器

  1. 使用 SSH 客户端建立与 A10 负载平衡器的 SSH 连接。
  2. 运行以下命令进入配置模式:

    config
    
  3. 使用以下命令配置远程 syslog 服务器:

    logging host <bindplane-server-ip> <port-number>
    
    • <bindplane-server-ip> 替换为 BindPlane IP 地址,将 <port-number> 替换为 BindPlane 中配置的值;例如 514
  4. 使用以下命令设置严重程度级别

    logging level information
    
    • 这会向 Bindplane 代理发送信息性消息(例如警告和错误)。
  5. 运行以下命令,确保已启用 syslog 日志记录:

    logging enable
    
  6. 保存配置,确保其在重新启动后保持不变:

    write memory
    
  • 完整 CLI 配置示例:

    config
    logging host 192.168.1.100 514
    logging level info
    logging enable
    write memory
    

UDM 映射表

日志字段 UDM 映射 逻辑
dns additional.fields.dns.value.string_value 该值取自由 Grok 模式提取的 dns 字段。
dns_server additional.fields.dns_server.value.string_value 该值取自由 Grok 模式提取的 dns_server 字段。
gslb additional.fields.gslb.value.string_value 该值取自由 Grok 模式提取的 gslb 字段。
host_name principal.hostname
principal.asset.hostname
该值取自由 Grok 模式提取的 host_name 字段。
httpmethod network.http.method 该值取自由 Grok 模式提取的 httpmethod 字段。
partion_id additional.fields.partion_id.value.string_value 该值取自由 Grok 模式提取的 partion_id 字段。
prin_ip principal.ip
principal.asset.ip
该值取自由 Grok 模式提取的 prin_ip 字段。
prin_mac principal.mac 该值取自由 Grok 模式提取的 prin_mac 字段,其中移除了点,并在每个字符后插入一个英文冒号。
prin_port principal.port 该值取自由 Grok 模式提取的 prin_port 字段,并转换为整数。
proto network.ip_protocol 该值取自由 Grok 模式提取的 proto 字段。如果 message 字段包含 UDP,则将其值设置为 UDP
sessionid network.session_id 该值取自由 Grok 模式提取的 sessionid 字段。
status_code network.http.response_code 该值取自由 Grok 模式提取的 status_code 字段,并转换为整数。
tar_ip target.ip
target.asset.ip
该值取自由 Grok 模式提取的 tar_ip 字段。
tar_mac target.mac 该值取自由 Grok 模式提取的 tar_mac 字段,其中移除了点,并在每个字符后插入一个英文冒号。
tar_port target.port 该值取自由 Grok 模式提取的 tar_port 字段,并转换为整数。
时间 metadata.event_timestamp.seconds 系统会使用多种可能的日期格式,从 grok 模式提取的 time 字段中解析该值。
网址 target.url 该值取自由 Grok 模式提取的 url 字段。
用户 principal.user.userid 该值取自由 Grok 模式提取的 user 字段。
不适用 metadata.event_type 由解析器逻辑根据主账号和目标账号信息的存在情况确定:
- NETWORK_CONNECTION:如果主账号和目标账号信息均存在。
- STATUS_UPDATE:如果仅包含主要信息。
- GENERIC_EVENT:否则。
不适用 metadata.log_type 已硬编码为 A10_LOAD_BALANCER
不适用 network.application_protocol 如果 proto 字段为 HTTP,则设置为 HTTP

变化

2024-12-27

增强功能

  • 添加了 Grok 模式来解析未解析的日志。
  • 添加了一个 KV 块来解析日志。
  • prin_host 映射到 principal.hostnameprincipal.asset.hostname
  • app 映射到 target.application
  • device_version 映射到 metadata.product_version
  • device_vendor 映射到 metadata.vendor_name
  • device_product 映射到 metadata.product_name
  • event_namedevice_event_class_id 映射到 madeta.product_event_type
  • severity 映射到 security_result.severity
  • src 映射到 principal.ipprincipal.asset.ip
  • spt 映射到 principal.port
  • dst 映射到 target.iptarget.asset.ip
  • dpt 映射到 target.port
  • msg 映射到 metadata.description
  • suser 映射到 principal.user.user_display_name
  • actcn1 映射到 additional.fields
  • method 映射到 network.http.method
  • app_proto 映射到 network.application_protocol
  • tls_version 映射到 network.tls.version

2024-01-28

  • 新创建的解析器。

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