收集 Onapsis 平台日志
本文档介绍了如何使用 Bindplane 将 Onapsis Platform 日志注入 Google Security Operations。
Onapsis Platform 是一种网络安全解决方案,专门用于保护 SAP 和 Oracle 等业务关键型应用。它可为 ERP 系统提供持续监控、漏洞管理、合规性审核和威胁检测,提供深入的应用特定洞见,帮助组织保护复杂环境免受网络威胁、错误配置和未经授权的访问。
准备工作
请确保满足以下前提条件:
- Google SecOps 实例
- Windows Server 2016 或更高版本,或者具有
systemd的 Linux 主机 - Bindplane 代理与 Onapsis Platform 之间的网络连接
- 如果在代理后面运行,请确保按照 Bindplane 代理要求打开防火墙端口
- 对 Onapsis Platform 控制台的特权访问权限
- Onapsis Defend 产品,用于实时威胁监控和 syslog 导出功能
获取 Bindplane 代理的 Google SecOps 凭证
如需向 Google SecOps 验证 Bindplane 代理,请选择以下方法之一:
- 新部署:使用 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 收集器目录(Linux 上的
/opt/observiq-otel-collector/ingestion-auth.json或 Windows 上的C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json)中的ingestion-auth.json,或更新config.yaml中的creds_file_path以匹配您保存该文件的路径。 - 前往 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 安装
- 打开具有 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: udplog: listen_address: "0.0.0.0:514" exporters: chronicle/onapsis: 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: 'YOUR_CUSTOMER_ID' endpoint: chronicle.googleapis.com log_type: ONAPSIS raw_log_field: body ingestion_labels: env: production source: onapsis_defend service: pipelines: logs/onapsis_to_chronicle: receivers: - udplog exporters: - chronicle/onapsis
配置参数
替换以下占位符:
接收器配置:
listen_address:设置为0.0.0.0:514可在 UDP 端口 51 上监听所有接口。如果端口 514 在 Linux 上需要 root 权限,请改用0.0.0.0:1514,并将 Onapsis 配置为发送到端口 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:
YOUR_CUSTOMER_ID:替换为上一步中的 Chronicle 客户 IDlocation:将<LOCATION>替换为 Google SecOps 实例所在的区域(例如us、europe或asia-southeast1)。导出工具会在此值前面加上chronicle.googleapis.com。如需查看完整列表,请参阅区域级端点。project:将<PROJECT_NUMBER>替换为 IAM 和管理 > 设置中的项目编号。endpoint:保持设置为chronicle.googleapis.com。log_type:设置为ONAPSIS(Chronicle 提取标签)ingestion_labels:用于对日志进行分类的可选标签(可根据需要自定义)
旧版提取 API 导出工具
如果您使用选项 2 中的提取身份验证文件,请将
exporters代码块替换为以下内容。将creds_file_path设置为数据注入身份验证文件的路径,如果您的实例位于美国境外,请将malachiteingestion-pa.googleapis.com替换为您的区域端点(例如europe-malachiteingestion-pa.googleapis.com)。exporters: chronicle/onapsis: compression: gzip creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json' customer_id: 'YOUR_CUSTOMER_ID' endpoint: malachiteingestion-pa.googleapis.com log_type: ONAPSIS raw_log_field: body ingestion_labels: env: production source: onapsis_defend
保存配置文件
- 修改后,保存文件:
- 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 收集器。
- 右键点击,然后选择重新启动。
- 按
验证服务是否正在运行:
sc query observiq-otel-collector检查日志中是否存在错误:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
配置 Onapsis Platform syslog 转发
配置 Onapsis Platform,以通过 syslog 将安全性事件和威胁监控日志转发到 Bindplane 代理。
- 登录 Onapsis Platform 控制台。
- 前往设置 > 集成。
- 在集成部分中,找到 Syslog 集成选项。
- 点击添加或配置以创建新的 syslog 目标。
- 提供以下配置详细信息:
- Syslog 服务器地址:输入 Bindplane 代理主机(例如
192.168.1.100)的 IP 地址或主机名。 - 端口:输入
514(如果您将 Bindplane 代理配置为使用非特权端口,则输入1514)。 - 协议:选择 UDP(如果您将 Bindplane 代理配置为使用 TCP,则选择 TCP)。
- 格式:如果与 IBM QRadar 兼容的系统集成,请选择 Syslog(标准 syslog 格式)或 LEEF(日志事件扩展格式)。
- Syslog 服务器地址:输入 Bindplane 代理主机(例如
- 点击保存或应用以启用 syslog 导出配置。
通过检查 Bindplane 代理日志来验证日志是否正在发送:
Linux:
sudo journalctl -u observiq-otel-collector -fWindows:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
UDM 映射表
| 日志字段 | UDM 映射 | 逻辑 |
|---|---|---|
| 存储桶 | additional.fields | 添加为标签,其键派生自来源字段 |
| task_sent | additional.fields | |
| sub_path | additional.fields | |
| facilityName | additional.fields | |
| source_version | additional.fields | |
| db_table | additional.fields | |
| incident_type | additional.fields | |
| incident_name | additional.fields | |
| program_name | additional.fields | |
| task_type | additional.fields | |
| policy_id | additional.fields | |
| name | additional.fields | |
| authentication_method | additional.fields | |
| alarm_profile_matches | additional.fields | |
| 客户端 | additional.fields | |
| db_table_pk | additional.fields | |
| system_type | additional.fields | |
| log_line | additional.fields | |
| 操作 | additional.fields | |
| task_id | additional.fields | |
| job_name | additional.fields | |
| job_id | additional.fields | |
| osp_link | additional.fields | |
| sid | additional.fields | |
| 说明 | metadata.description | 如果 description 不为空,则取其值;否则,如果 log_data 匹配“Uploading”,则设为“Uploading”;如果匹配“Celery task sent”,则设为“Celery task sent”;如果匹配“Calling ModuleApi.put”,则设为“Calling ModuleApi.put”;否则,取 job_type 的值 |
| log_data | metadata.description | |
| job_type | metadata.description | |
| created_at | metadata.event_timestamp | 使用格式为 yyyy-mm-ddTHH:mm:ss 的日期进行转换 |
| has_principal | metadata.event_type | 如果 has_principal、has_target、has_network 为 true,则设置为“NETWORK_UNCATEGORIZED”;如果 has_principal 为 true,则设置为“STATUS_UPDATE”;否则设置为“GENERIC_EVENT” |
| has_target | metadata.event_type | |
| has_network | metadata.event_type | |
| http_method | network.http.method | 直接复制的值 |
| 网址 | network.http.referral_url | 直接复制的值 |
| response_code | network.http.response_code | 已转换为整数 |
| 应用 | principal.application | 直接复制的值 |
| 主机 | principal.hostname | 如果不是 IP,则取自宿主;否则,取自 src;如果不是 IP,则取自 terminal_source |
| src | principal.hostname | |
| terminal_source | principal.hostname | |
| 主机 | principal.ip | 如果 IP、erp_host、terminal_source 为 IP,则从主机合并 |
| erp_host | principal.ip | |
| terminal_source | principal.ip | |
| asset_name | principal.resource.name | 直接复制的值 |
| user_type | principal.user.role_name | 直接复制的值 |
| user_name | principal.user.user_display_name | 来自 user_name 的值,与用户名合并 |
| 用户名 | principal.user.user_display_name | |
| user_id | principal.user.userid | 直接复制值 |
| 模块 | security_result.detection_fields | 来自模块映射、漏洞映射、new_state 的合并标签 |
| 漏洞 | security_result.detection_fields | |
| new_state | security_result.detection_fields | |
| severityName | security_result.severity | 如果 severityName 为 ["INFO", "info"],则设置为“INFORMATIONAL” |
| file_name | target.file.full_path | 直接复制的值 |
| dst | target.hostname | 直接复制的值 |
| metadata.product_name | metadata.product_name | 设置为“ONAPSIS” |
| metadata.vendor_name | metadata.vendor_name | 设置为“ONAPSIS” |
conditions.condition_id |
event.idm.read_only_udm.additional.fields |
从更新日志映射 |
conditions.eval_value.success |
event.idm.read_only_udm.additional.fields |
从更新日志映射 |
conditions.matched |
event.idm.read_only_udm.additional.fields |
从更新日志映射 |
erp_event_source |
event.idm.read_only_udm.additional.fields |
从更新日志映射 |
erp_time |
event.idm.read_only_udm.additional.fields |
从更新日志映射 |
protocol |
event.idm.read_only_udm.additional.fields |
从更新日志映射 |
confidence |
event.idm.read_only_udm.security_result.confidence_details |
从更新日志映射 |
severity |
event.idm.read_only_udm.security_result.severity_details |
从更新日志映射 |
success |
event.idm.read_only_udm.security_result.action |
从更新日志映射 |
inter_ip |
event.idm.read_only_udm.intermediary.ip和event.idm.read_only_udm.intermediary.asset.ip之间 |
从更新日志映射 |
更新日志
需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。