收集 Onapsis 平台日志
本文档介绍了如何使用 Bindplane 将 Onapsis 平台日志注入到 Google Security Operations。
Onapsis Platform 是一款专门用于保护 SAP 和 Oracle 等业务关键型应用的 cybersecurity 解决方案。它可为 ERP 系统提供持续监控、漏洞管理、合规性审核和威胁检测,提供深入的应用特定洞见,帮助组织保护复杂环境免受网络威胁、错误配置和未经授权的访问。
准备工作
请确保满足以下前提条件:
- Google SecOps 实例
- Windows Server 2016 或更高版本,或者具有
systemd的 Linux 主机 - Bindplane 代理与 Onapsis 平台之间的网络连接
- 如果在代理后面运行,请确保防火墙端口已根据 Bindplane 代理要求打开
- 对 Onapsis Platform 控制台的特权访问权限
- Onapsis Defend 产品,可提供实时威胁监控和 syslog 导出功能
获取 Google SecOps 注入身份验证文件
- 登录 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该服务应显示为有效(正在运行)。
其他安装资源
如需了解其他安装选项和问题排查信息,请参阅 Bindplane 代理安装指南。
配置 Bindplane 代理以注入 syslog 并将其发送到 Google SecOps
找到配置文件
Linux:
sudo nano /etc/bindplane-agent/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: compression: gzip creds_file_path: '/etc/bindplane-agent/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 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:提取身份验证文件的完整路径:- Linux:
/etc/bindplane-agent/ingestion-auth.json - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Linux:
YOUR_CUSTOMER_ID:替换为上一步中的 Chronicle 客户 IDendpoint:区域端点网址:- 美国:
malachiteingestion-pa.googleapis.com - 欧洲:
europe-malachiteingestion-pa.googleapis.com - 亚洲:
asia-southeast1-malachiteingestion-pa.googleapis.com - 如需查看完整列表,请参阅区域级端点
- 美国:
log_type:设置为ONAPSIS(Chronicle 提取标签)ingestion_labels:用于对日志进行分类的可选标签(可根据需要自定义)
保存配置文件
- 修改后,保存文件:
- 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 平台 syslog 转发
将 Onapsis 平台配置为通过 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 | 如果说明不为空,则使用说明中的值;否则,如果 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,则来自宿主的值;否则,如果不是 IP,则来自 src 的值;否则,来自 terminal_source 的值 |
| src | principal.hostname | |
| terminal_source | principal.hostname | |
| 主机 | principal.ip | 如果 IP,则从主机合并;如果 IP,则从 erp_host、terminal_source 合并 |
| 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之间 |
从变更日志映射 |