收集 NetApp ONTAP 日志

支持的平台:

本文档介绍了如何通过 Syslog 收集 NetApp ONTAP 日志。解析器使用正则表达式从 syslog 消息中提取字段。然后,它会将提取的字段映射到相应的 UDM(统一数据模型)字段,从而有效地将原始日志数据转换为结构化格式,以便进行安全分析。

准备工作

  • 确保您有一个 Google Security Operations 实例。
  • 确保您使用的是 Windows 2016 或更高版本,或者使用了带有 systemd 的 Linux 主机。
  • 如果在代理后面运行,请确保防火墙端口处于打开状态。
  • 确保您拥有对 NetApp ONTAP 集群的管理员访问权限。
  • 确保 ONTAP 可以与 Syslog 服务器 (Bindplane) 通信。

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

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

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

    net stop BindPlaneAgent && net start BindPlaneAgent
    

在 ONTAP 中配置 Syslog 目的地

  1. 使用 SSH 访问 ONTAP 集群,并将 <ontap-cluster-ip> 替换为 ONTAP 集群的管理 IP:

    ssh admin@<ontap-cluster-ip>
    
  2. 查看现有事件过滤条件和通知

    event filter show
    event notification show
    
  3. 创建 Syslog 目标,将 <syslog-server-ip><syslog-server-port> 替换为您的 Syslog 服务器详细信息 (Bindplane):

    event notification destination create -name syslog-ems -syslog <syslog-server-ip> -syslog-port <syslog-server-port> -syslog-transport udp-unencrypted
    
  4. -syslog-transport 的其他选项:

    • udp-unencrypted(默认)
    • tcp-unencrypted
    • tcp-encrypted(适用于 TLS)。
  5. 验证 syslog 目标位置

    event notification destination show
    

配置现有事件过滤条件

  • 默认过滤条件关联到 Syslog 目的地:

    event notification create -filter-name no-info-debug-events -destinations syslog-ems
    event notification create -filter-name default-trap-events -destinations syslog-ems
    

可选:创建和配置自定义过滤条件

  1. 身份验证事件过滤条件(登录/退出):捕获说明与“登录”或“退出”匹配的日志:

    event filter create -filter-name auth_events
    event filter rule add -filter-name auth_events -type include -message-name *login* -severity info
    event filter rule add -filter-name auth_events -type include -message-name *logout* -severity info
    
  2. 安全检测字段过滤器:捕获与 nmsdk_language、nmsdk_platform、nmsdk_version 和 netapp_version 相关的日志:

    event filter create -filter-name security_fields
    event filter rule add -filter-name security_fields -type include -message-name *nmsdk_language* -severity info
    event filter rule add -filter-name security_fields -type include -message-name *nmsdk_platform* -severity info
    event filter rule add -filter-name security_fields -type include -message-name *nmsdk_version* -severity info
    event filter rule add -filter-name security_fields -type include -message-name *netapp_version* -severity info
    
  3. 基于严重级别的日志过滤器:捕获严重级别为“信息”的日志:

    event filter create -filter-name severity_info
    event filter rule add -filter-name severity_info -type include -message-name * -severity info
    
  4. 网络活动过滤器:捕获包含 src_ip 和 src_port 的日志:

    event filter create -filter-name network_activity
    event filter rule add -filter-name network_activity -type include -message-name *src_ip* -severity info
    event filter rule add -filter-name network_activity -type include -message-name *src_port* -severity info
    
  5. 网址目标日志过滤器:捕获包含网址信息的日志:

    event filter create -filter-name url_target
    event filter rule add -filter-name url_target -type include -message-name *url* -severity info
    
  6. 将每个过滤器应用于 Syslog 目的地:

    event notification create -filter-name auth_events -destinations syslog-ems
    event notification create -filter-name security_fields -destinations syslog-ems
    event notification create -filter-name severity_info -destinations syslog-ems
    event notification create -filter-name network_activity -destinations syslog-ems
    event notification create -filter-name url_target -destinations syslog-ems
    
  7. 验证通知:

    event notification show
    

UDM 映射表

日志字段 UDM 映射 逻辑
代码 未映射
说明 metadata.description 使用 Grok 模式从日志消息中提取。仅当说明为“退出账号”或“登录账号”时才会显示。
intermediary_host intermediary.hostname 使用 Grok 模式从日志消息中提取。
nmsdk_language security_result.detection_fields.value 使用 Grok 模式从日志消息中提取。此值会作为“值”添加到“key”为“nmsdk_language”的 detection_fields 对象中。
nmsdk_platform security_result.detection_fields.value 使用 Grok 模式从日志消息中提取。此值会作为“值”添加到“detection_fields”对象(“key”为“nmsdk_platform”)中。
nmsdk_version security_result.detection_fields.value 使用 Grok 模式从日志消息中提取。此值会作为“值”添加到“detection_fields”对象,其中“key”为“nmsdk_version”。
netapp_version security_result.detection_fields.value 使用 Grok 模式从日志消息中提取。此值会作为“值”添加到“detection_fields”对象,其中“key”为“netapp_version”。
product_event_type metadata.product_event_type 使用 Grok 模式从日志消息中提取。
security_result.summary security_result.summary 使用 Grok 模式从日志消息中提取。
和程度上减少 security_result.severity 如果严重程度为“信息”,则设置为“INFORMATIONAL”(不区分大小写)。
src_ip principal.ip 使用 Grok 模式从日志消息中提取。
src_port principal.port 使用 Grok 模式从日志消息中提取。
状态 security_result.summary 使用 Grok 模式从日志消息中提取。
ts metadata.event_timestamp.seconds 使用 Grok 模式从日志消息中提取,并转换为时间戳。
网址 target.url 使用 Grok 模式从日志消息中提取。
用户 target.user.userid 使用 Grok 模式从日志消息中提取。
extensions.auth.type 如果说明为“退出登录”或“登录”,则设置为“AUTHTYPE_UNSPECIFIED”。
metadata.event_type 如果说明为“Logging in”(登录),则设置为“USER_LOGIN”。
metadata.event_type 如果说明为“Logging out”(退出),请将其设置为“USER_LOGOUT”。
metadata.event_type 如果说明不是“登录”或“退出”,则设置为“SCAN_UNCATEGORIZED”。
metadata.log_type 设置为“NETAPP_ONTAP”。
metadata.product_name 设置为“NETAPP_ONTAP”。
metadata.vendor_name 设置为“NETAPP_ONTAP”。
target.platform 如果 nmsdk_platform 包含“windows”(不区分大小写),则设置为“WINDOWS”。

更改

2023-04-03

  • 新创建的解析器。