收集 Brocade ServerIron 日志

支持的平台:

此解析器使用正则表达式匹配从 Brocade ServerIron syslog 消息中提取字段,并将其映射到统一数据模型 (UDM)。它可处理各种日志格式,包括网络状态、用户身份验证和安全事件。解析器会根据需要执行数据类型转换和丰富操作。

准备工作

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

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

  1. 登录 Google SecOps 控制台。
  2. 依次前往 SIEM 设置 > 收集代理
  3. 下载提取身份验证文件

获取 Google SecOps 客户 ID

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

安装 Bindplane Agent

  1. 对于 Windows 安装,请运行以下脚本:
    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
  2. 对于 Linux 安装,请运行以下脚本:
    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
  3. 如需了解其他安装选项,请参阅此安装指南

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

  1. 访问安装了 Bindplane 的机器。
  2. 按如下方式修改 config.yaml 文件:

    receivers:
        tcplog:
            # 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: Brocade_ServerIron
            raw_log_field: body
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - tcplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. 重启 Bindplane 代理以应用更改:

    sudo systemctl restart bindplane
    

从 Brocade ServerIron ADX 配置 Syslog 导出

  1. 登录 ADX 设备并进入全局配置模式:

    enable
    configure terminal
    
  2. 启用 Syslog 日志记录:

    logging on
    
  3. 指定 syslog 服务器的 IP 地址或主机名和端口,包括所需的协议 (Bindplane):

    logging host <syslog-server-ip> [udp | tcp] port <port-number>
    

    端口 54525 上的 TCP 示例:

      logging host 10.10.10.10 tcp port 54525
    
  4. 可选:设置 Syslog Facility(从 local0local7):

    logging facility local0
    
  5. 指定要发送到 syslog 服务器的日志的最低严重级别:

    logging trap <severity-level>
    
  6. 保存配置:

    write memory
    

UDM 映射表

日志字段 UDM 映射 逻辑
%{GREEDYDATA} metadata.description 如果 %{GREEDYDATA} 字段与“-- %{GREEDYDATA} --”模式匹配,则会映射到 metadata.description。
%{GREEDYDATA:auth_result} security_result.description 如果存在 %{GREEDYDATA:desc},则将 %{GREEDYDATA:auth_result} 字段与 %{GREEDYDATA:desc} 字段串联起来,形成 security_result.description。
%{GREEDYDATA:desc} security_result.description %{GREEDYDATA:desc} 字段用于填充 security_result.description 字段。它可以与其他字段串联,具体取决于原始日志格式。
%{GREEDYDATA:login_to} security_result.description 当 %{GREEDYDATA:desc} 存在时,%{GREEDYDATA:login_to} 字段会与 %{GREEDYDATA:desc} 字段串联,以形成 security_result.description。
%{GREEDYDATA:user} target.user.userid %{GREEDYDATA:user} 字段会映射到 target.user.userid。
%{HOST:principal_host} principal.hostname %{HOST:principal_host} 字段会映射到 principal.hostname。
%{HOST:target_host} target.hostname %{HOST:target_host} 字段会映射到 target.hostname。
%{INT:http_port} additional.fields.value.string_value %{INT:http_port} 字段会映射到键为“HTTP 端口”的 additional.fields.value.string_value。
%{INT:target_port} target.port %{INT:target_port} 字段会映射到 target.port 并转换为整数。
%{INT:telnet_port} additional.fields.value.string_value %{INT:telnet_port} 字段已映射到键为“Telnet 端口”的 additional.fields.value.string_value。
%{INT:tftp_port} additional.fields.value.string_value %{INT:tftp_port} 字段映射到键为“TFTP 端口”的 additional.fields.value.string_value。
%{IP:principal_ip} principal.ip %{IP:principal_ip} 字段会映射到 principal.ip。
%{IP:target_ip} target.ip %{IP:target_ip} 字段会映射到 target.ip。
%{IPV4:principal_ip} principal.ip %{IPV4:principal_ip} 字段会映射到 principal.ip。
%{IPV4:target_ip} target.ip %{IPV4:target_ip} 字段会映射到 target.ip。
%{MAC:principal_mac} principal.mac %{MAC:principal_mac} 字段会先转换为 [0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2} 格式,然后映射到 principal.mac。
%{USERNAME:target_host} target.hostname %{USERNAME:target_host} 字段会映射到 target.hostname。
%{USERNAME:user} target.user.userid %{USERNAME:user} 字段会映射到 target.user.userid。
%{WORD:auth_result} security_result.description 当存在 %{GREEDYDATA:desc} 时,%{WORD:auth_result} 字段会与 %{GREEDYDATA:desc} 字段串联,以形成 security_result.description。
%{WORD:proto} network.application_protocol 如果 %{WORD:proto} 字段的值为“SSH”,则会映射到 network.application_protocol。
时间戳 metadata.event_timestamp 系统会使用 Grok 模式从原始日志数据中解析时间戳字段,并将其转换为时间戳对象。
extensions.auth.type 如果 proto 字段不为空且 auth_action 字段为“logout”或“login”,则将该值设置为“MACHINE”。
metadata.description 如果“metadata_description”字段不为空,则该字段会填充该字段的值。
metadata.event_type 系统会根据其他字段的值使用条件逻辑来填充此字段:
- STATUS_STARTUP:如果 target_port_status 为“up”。
- STATUS_SHUTDOWN:如果 target_port_status 为“down”。
- USER_LOGOUT:如果 proto 不为空且 auth_action 为“logout”。
- USER_LOGIN:如果 proto 不为空且 auth_action 为“login”。
- STATUS_UPDATE:如果 metadata_description 与“state changed”匹配。
- GENERIC_EVENT:如果不满足上述任何条件。
metadata.log_type 该值已硬编码为“BROCADE_SERVERIRON”。
metadata.product_name 该值已硬编码为“ServerIron”。
metadata.vendor_name 该值已硬编码为“Brocade”。
security_result.action 如果 desc 字段包含“fail”,或 auth_result 字段包含“fail”或“rejected”,则将此值设置为“BLOCK”。

变化

2022-01-13

  • 新增了解析器。

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