收集 Symantec VIP Enterprise Gateway 日志
本文档介绍了如何使用 Bindplane 代理将 Symantec VIP Enterprise Gateway 日志注入 Google Security Operations。
Symantec VIP(验证和 ID 保护)Enterprise Gateway 是一种多重身份验证解决方案,可为身份验证事件、凭据验证、LDAP 同步和健康检查活动生成 syslog 消息。解析器会从 JSON 格式和 syslog 格式的日志中提取字段,并将它们映射到统一数据模型 (UDM)。
准备工作
请确保满足以下前提条件:
- Google SecOps 实例
- Windows Server 2016 或更高版本,或者具有
systemd的 Linux 主机 - Bindplane 代理与 Symantec VIP Gateway 之间的网络连接
- 如果通过代理运行,请确保防火墙端口根据 Bindplane 代理要求处于开放状态
- 对 Symantec VIP Gateway 网页界面的管理员权限
获取 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该服务应显示为正在运行 。
Linux 安装
- 打开具有根权限或 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该服务应显示为活跃 (正在运行) 。
其他安装资源
如需了解其他安装选项和问题排查信息,请参阅 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: udplog: listen_address: "0.0.0.0:514" exporters: chronicle/symantec_vip: 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: SYMANTEC_VIP raw_log_field: body service: pipelines: logs/symantec_vip_to_chronicle: receivers: - udplog exporters: - chronicle/symantec_vip
配置参数
替换以下占位符:
接收器配置:
listen_address:要监听的 IP 地址和端口:0.0.0.0以监听所有接口(推荐)- 端口
514是标准 syslog 端口(在 Linux 上需要根权限;对于非根用户,请使用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/symantec_vip: compression: gzip creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json' customer_id: '<customer_id>' endpoint: malachiteingestion-pa.googleapis.com log_type: SYMANTEC_VIP 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"
- 按
在 Symantec VIP Enterprise Gateway 中配置 syslog
- 登录 Symantec VIP Gateway 网页界面。
- 依次前往日志 > Syslog 配置。
- 如果您是首次配置 Syslog,请在系统提示时选择是 。如果已配置,请点击修改 。
- 提供以下配置详细信息:
- Syslog Facility:选择 LOG_LOCAL0。
- Syslog Host:输入 Bindplane 代理 IP 地址。
- Syslog Port:输入 Bindplane 代理端口号(例如,对于 UDP ,输入
514)。
- 点击保存 。
- 依次前往设置 > 控制台设置。
- 提供以下配置详细信息:
- Logging Level:选择 Info。
- 启用系统日志:选择是。
- 点击提交 。
- 依次前往设置 > 健康检查设置。
- 选择是 以启用健康检查服务。
- 提供以下配置详细信息:
- Logging Level:选择 Info。
- 启用系统日志:选择是。
- 点击提交 。
- 依次前往用户存储 > LDAP 目录同步。
- 修改以下配置详细信息:
- Log Level:选择 Info。
- 启用系统日志:选择是。
- 点击提交 。
UDM 映射表
| 日志字段 | UDM 映射 | 逻辑 |
|---|---|---|
| 应用 | read_only_udm.principal.application | 从 json 过滤器提取的 application 字段获取的值。 |
| 命令 | read_only_udm.target.process.command_line | 从 grok 模式提取的 command 字段获取的值。 |
| credentialType | 此字段不会直接映射到 UDM。它用于派生 read_only_udm.extensions.auth.mechanism 的值。 | |
| 数据 | 此字段不会直接映射到 UDM。系统会对其进行解析以提取其他字段。 | |
| data2 | 此字段不会直接映射到 UDM。系统会对其进行解析以提取其他字段。 | |
| 日期时间 | read_only_udm.metadata.event_timestamp.seconds read_only_udm.metadata.event_timestamp.nanos |
从 datetime 字段提取的自纪元以来的秒数和纳秒数。 |
| 降序 | read_only_udm.metadata.description | 从 json 过滤器提取的 desc 字段获取的值。 |
| 说明 | read_only_udm.security_result.description | 从 json 过滤器提取的 description 字段获取的值。 |
| filename | read_only_udm.target.process.file.full_path | 从 grok 模式提取的 filename 字段获取的值。 |
| 主机名 | read_only_udm.principal.hostname | 从 json 过滤器提取的 hostname 字段获取的值。 |
| host_name | read_only_udm.intermediary.hostname | 从 json 过滤器提取的 host_name 字段获取的值。 |
| log_level | 此字段不会直接映射到 UDM。它用于派生 read_only_udm.security_result.severity 的值。 | |
| log_type | read_only_udm.metadata.product_event_type | 从 json 过滤器提取的 log_type 字段获取的值。 |
| msg | 此字段不会直接映射到 UDM。系统会对其进行解析以提取其他字段。 | |
| 操作 | read_only_udm.security_result.summary | 从 grok 模式提取的 operation 字段获取的值。 |
| processid | read_only_udm.target.process.pid | 从 grok 模式提取的 processid 字段获取的值。 |
| 产品 | read_only_udm.metadata.product_name | 从 json 过滤器提取的 product 字段获取的值。 |
| reason | read_only_udm.metadata.description | 从 grok 模式提取的 reason 字段获取的值。 |
| request_id | read_only_udm.target.resource.id | 从 grok 模式提取的 request_id 字段获取的值。 |
| src_ip | read_only_udm.principal.ip | 从 grok 模式提取的 src_ip 字段获取的值。 |
| 状态 | read_only_udm.metadata.description | 从 grok 模式提取的 status 字段获取的值。 |
| 摘要 | read_only_udm.security_result.summary | 从 json 过滤器提取的 summary 字段获取的值。 |
| timestamp.nanos | read_only_udm.metadata.event_timestamp.nanos | 原始日志时间戳中的纳秒数。 |
| timestamp.seconds | read_only_udm.metadata.event_timestamp.seconds | 原始日志时间戳中的秒数。 |
| 时间 | 此字段不会直接映射到 UDM。它用于派生 read_only_udm.metadata.event_timestamp.seconds 和 read_only_udm.metadata.event_timestamp.nanos 的值。 | |
| 用户 | read_only_udm.target.user.userid | 从 json 过滤器或 grok 模式提取的 user 字段获取的值。 |
| vendor | read_only_udm.metadata.vendor_name | 从 json 过滤器提取的 vendor 字段获取的值。 |
| read_only_udm.extensions.auth.mechanism | 由 credentialType 字段确定。如果 credentialType 为 SMS_OTP 或 STANDARD_OTP,则使用 OTP。如果 credentialType 与正则表达式 PASSWORD 匹配,则使用 USERNAME_PASSWORD。 |
|
| read_only_udm.extensions.auth.type | 如果 reason 字段与正则表达式 LDAP 匹配,则使用 SSO。否则,使用 AUTHTYPE_UNSPECIFIED。 |
|
| read_only_udm.metadata.event_type | 由某些字段是否存在来确定。如果 user 或 processid 不为空,则使用 USER_LOGIN。如果 user 为空且 src_ip 不为空或 0.0.0.0,则使用 STATUS_UPDATE。否则,使用 GENERIC_EVENT。 |
|
| read_only_udm.metadata.log_type | 硬编码为 SYMANTEC_VIP。 |
|
| read_only_udm.security_result.action | 由 status 字段确定。如果 status 为 Authentication Success、GRANTED、Authentication Completed、After Services Authenticate call 或 CHALLENGED,则使用 ALLOW。如果 status 为 DENIED、Acces-Reject、Unknown Error、Service Unavailable 或 FAILED,则使用 BLOCK。如果 status 为 PUSH request sent for user 或 Trying to fetch attribute,则使用 QUARANTINE。 |
|
| read_only_udm.security_result.severity | 由 log_level 字段确定。如果 log_level 为 DEBUG、INFO 或 AUDIT,则使用 INFORMATIONAL。如果 log_level 为 ERROR,则使用 ERROR。如果 log_level 为 WARNING,则使用 MEDIUM。 |
更新日志
需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。