收集 Zscaler NSS Feeds for Alerts 日志
本文档介绍了如何使用 Bindplane 代理将 Zscaler NSS Feeds for Alerts 日志注入 Google Security Operations。
Zscaler Nanolog Streaming Service (NSS) 提供 Web、防火墙和 DLP 事件的云安全提醒日志。NSS 使用 Cloud NSS(云原生)或 NSS VM(本地虚拟设备)将日志从 Zscaler 云流式传输到指定目标。
准备工作
请确保满足以下前提条件:
- Google SecOps 实例
- Windows Server 2016 或更高版本,或者具有
systemd的 Linux 主机 - Bindplane 代理与 Zscaler NSS 输出之间的网络连接
- 如果通过代理运行,请确保防火墙端口根据 Bindplane 代理要求处于开放状态
- 对 Zscaler Internet Access (ZIA) 管理门户的特权访问权限
- 已配置的 Zscaler NSS 服务器或 NSS for Cloud,具有流式传输日志的权限
获取 Bindplane 代理的 Google SecOps 凭据
如需对 Bindplane 代理进行 Google SecOps 身份验证,请选择以下方法之一:
- 新部署:使用 Chronicle API(方法 1)。
- 旧版部署:继续使用注入身份验证文件(方法 2),直到注入 API 于 2027 年 7 月 20 日停用为止。
方法 1:为 Chronicle API 创建服务帐号(推荐)
- 登录 Google Cloud 控制台,然后选择与您的 Google SecOps 实例关联的 Google Cloud 项目。
- 依次前往 IAM 和管理 > 服务账号。
- 点击创建服务账号 。
- 提供以下配置详细信息:
- 服务账号名称:输入账号的名称(例如
bindplane-ingest)。 - 服务账号说明:输入说明(例如
Bindplane agent log ingestion)。
- 服务账号名称:输入账号的名称(例如
- 点击创建并继续 。
- 在向此服务帐号授予对项目的访问权限 部分,点击选择角色 ,然后选择 Chronicle Editor 。
- 点击继续 ,然后点击完成 。
- 点击您创建的服务帐号,然后前往密钥 标签页。
- 依次点击添加密钥 > 创建新密钥。
- 选择 JSON ,然后点击创建 。密钥文件会下载到您的计算机上。
- 将密钥文件另存为 Bindplane 收集器目录中的
ingestion-auth.json(在 Linux 上为/opt/observiq-otel-collector/ingestion-auth.json,在 Windows 上为C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json),或者更新creds_file_path在config.yaml中以与您保存该文件的路径匹配。 - 依次前往 IAM 和管理 > 设置 ,然后复制项目编号 。您需要此编号进行导出器配置。
方法 2:下载注入身份验证文件(旧版)
- 登录 Google SecOps 控制台。
- 依次前往 SIEM 设置 > 收集代理。
- 下载注入身份验证文件 。
- 将该文件安全地保存在将安装 Bindplane 代理的系统上。
获取 Google SecOps 客户 ID
- 登录 Google SecOps 控制台。
- 依次前往 SIEM 设置 > 个人资料。
从组织详细信息 部分复制并保存客户 ID 。
安装 Bindplane 代理
按照以下说明在 Windows 或 Linux 操作系统上安装 Bindplane 代理。
Windows 安装
- 以管理员身份打开命令提示符 或 PowerShell 。
运行以下命令:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet等待安装完成。
运行以下命令,验证安装是否成功:
sc query observiq-otel-collector该服务应显示为 RUNNING 。
Linux 安装
- 使用 root 或 sudo 权限打开终端。
运行以下命令:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh等待安装完成。
运行以下命令,验证安装是否成功:
sudo systemctl status observiq-otel-collector该服务应显示为 active (running) 。
其他安装资源
如需了解其他安装选项和问题排查信息,请参阅 Bindplane 代理安装指南。
配置 Bindplane 代理以注入 Syslog 并发送到 Google SecOps
找到配置文件
Linux:
sudo nano /opt/observiq-otel-collector/config.yamlWindows:
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
修改配置文件
将
config.yaml的全部内容替换为以下配置:receivers: tcplog: listen_address: "0.0.0.0:514" exporters: chronicle/zscaler_nss: 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 creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json' customer_id: '<customer_id>' endpoint: chronicle.googleapis.com log_type: ZSCALER_NSS_FEEDS raw_log_field: body service: pipelines: logs/zscaler_nss_to_chronicle: receivers: - tcplog exporters: - chronicle/zscaler_nss
配置参数
替换以下占位符:
接收器配置:
listen_address:要监听的 IP 地址和端口:0.0.0.0以监听所有接口(推荐)- 端口
514是标准 Syslog 端口(在 Linux 上需要 root;对于非 root 用户,请使用1514)
导出器配置:
creds_file_path:服务帐号 JSON 密钥文件的完整路径(方法 1):- Linux:
/opt/observiq-otel-collector/ingestion-auth.json - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Linux:
customer_id:从 Google SecOps 控制台复制的客户 IDlocation:将<LOCATION>替换为 Google SecOps 实例的区域(例如us、europe或asia-southeast1)。导出器会使用此值为chronicle.googleapis.com添加前缀。如需查看完整列表,请参阅区域级端点。project:将<PROJECT_NUMBER>替换为 IAM 和管理 > 设置 中的项目编号。endpoint:保持设置为chronicle.googleapis.com。
旧版注入 API 导出器
如果您使用方法 2 中的注入身份验证文件,请将
exporters代码块替换为以下内容。将creds_file_path设置为注入身份验证文件的路径,并且如果您的实例位于美国境外,请将malachiteingestion-pa.googleapis.com替换为您的 区域级端点(例如europe-malachiteingestion-pa.googleapis.com)。exporters: chronicle/zscaler_nss: compression: gzip creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json' customer_id: '<customer_id>' endpoint: malachiteingestion-pa.googleapis.com log_type: ZSCALER_NSS_FEEDS raw_log_field: body
保存配置文件
修改后,保存文件:
- Linux:按
Ctrl+O,然后按Enter,再按Ctrl+X - Windows:依次点击文件 > 保存
- Linux:按
重启 Bindplane 代理以应用更改
如需在 Linux 中重启 Bindplane 代理,请运行以下命令:
sudo systemctl restart observiq-otel-collector验证服务是否正在运行:
sudo systemctl status observiq-otel-collector检查日志中的错误:
sudo journalctl -u observiq-otel-collector -f
如需在 Windows 中重启 Bindplane 代理,请选择以下选项之一:
- 以管理员身份运行命令提示符或 PowerShell:
net stop observiq-otel-collector && net start observiq-otel-collector服务控制台:
- 按
Win+R,输入services.msc,然后按 Enter 键。 - 找到 observIQ OpenTelemetry Collector 。
- 右键点击并选择重启 。
验证服务是否正在运行:
sc query observiq-otel-collector检查日志中的错误:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
- 按
配置 Zscaler NSS Syslog 转发
Zscaler NSS 将日志从 Zscaler 云流式传输到指定目标。请选择与您的环境匹配的选项。
方法 1:配置 Cloud NSS Feeds(推荐)
- 登录 Zscaler Internet Access (ZIA) 管理门户。
- 依次前往管理 > Nanolog Streaming Service > Cloud NSS Feeds。
- 点击 Add Cloud NSS Feed 。
- 配置以下参数:
- Feed 名称:输入一个描述性名称(例如
NSS-Alerts-to-Chronicle)。 - NSS 类型:选择日志类型:NSS for Alerts。
- SIEM 类型:对于基于 Syslog 的通用注入,请选择其他 。
- 状态:选择已启用。
- API 网址:输入 Bindplane 代理主机的 IP 地址和端口(例如
http://BINDPLANE_AGENT_IP:514)。 - Feed 输出类型:选择 JSON (推荐用于 Chronicle 注入)。
- 时区:选择 GMT (默认)。
- Feed 名称:输入一个描述性名称(例如
- (可选)配置 Feed 输出过滤器 ,以仅包含特定日志字段,或按部门、位置或操作等条件过滤日志。
- 点击保存 。
点击激活 以激活待处理的配置更改。
方法 2:部署和配置 NSS VM(本地)
- 从 Zscaler 管理门户下载 NSS VM 映像:
- 依次前往管理 > Nanolog Streaming Service > NSS 服务器。
- 下载 NSS OVA(适用于 VMware)或 VHD(适用于 Hyper-V/Azure)映像。
- 在 Hypervisor(VMware vSphere、Hyper-V 或 Azure)中部署 NSS VM:
- 导入下载的映像,并使用推荐的资源配置 VM(请参阅适用于您的平台的 NSS 部署指南)。
- 配置网络设置,以便 NSS VM 可以与 Zscaler 云建立出站 TLS 连接。
- 在 ZIA 管理门户中注册 NSS VM:
- 依次前往管理 > Nanolog Streaming Service > NSS 服务器。
- 验证 NSS VM 是否显示,并且其状态 列是否显示正常 。
- 配置 NSS Feed:
- 依次前往管理 > Nanolog Streaming Service > NSS Feeds。
- 点击 Add NSS Feed 。
- 配置以下参数:
- Feed 名称:输入一个描述性名称(例如
NSS-Alerts-Feed)。 - NSS 服务器:选择已部署的 NSS VM。
- NSS 类型:选择日志类型:NSS for Alerts。
- SIEM IP 地址:输入 Bindplane 代理主机的 IP 地址。
- SIEM TCP 端口:输入
514(或在 Bindplane 代理中配置的端口)。 - Feed 输出类型:选择 JSON(推荐)。
- Feed 名称:输入一个描述性名称(例如
- (可选)配置 Feed 过滤器 以限制流式传输的日志条目。
- 点击保存 。
点击激活 以激活待处理的配置更改。
UDM 映射表
| 日志字段 | UDM 映射 | 逻辑 |
|---|---|---|
| 其他 | 其他 | 事件的其他信息 |
| meta.slt.node、meta.slt.pipeline、meta.customer、meta.source.type | additional.fields | 其他 UDM 字段未涵盖的其他元数据字段 |
| metadata.event_type | 事件类型 | |
| 网络 | 网络 | 事件的网络信息 |
| 主体 | 主体 | 参与事件的主体实体 |
| meta.source.host | principal.asset.hostname | 与主体关联的资产的主机名 |
| meta.source.host | principal.hostname | 主体的主机名 |
| meta.source.port | principal.port | 端口号 |
| security_result | security_result | 安全结果信息 |
| 目标 | 目标 | 参与事件的目标实体 |
| meta.proxy.host | target.asset.hostname | 与目标关联的资产的主机名 |
| meta.proxy.host | target.hostname | 目标的主机名 |
| meta.proxy.port | target.port | 端口号 |
| metadata.product_name | 产品名称 | |
| metadata.vendor_name | 供应商名称 |
更新日志
需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。