收集 IBM Guardium 日志
本文档介绍了如何使用 Bindplane 将 IBM Guardium 日志注入到 Google Security Operations。
IBM Guardium 是一个数据库活动监控和数据保护平台,可为数据库和文件系统提供实时监控、审核和保护。Guardium 提供漏洞评估、数据发现和分类、数据库活动监控以及合规性报告功能。
准备工作
请确保满足以下前提条件:
- Google SecOps 实例
- Windows Server 2016 或更高版本,或者具有
systemd的 Linux 主机 - Bindplane 代理与 IBM Guardium 收集器之间的网络连接
- 如果在代理后面运行,请确保按照 Bindplane 代理要求打开防火墙端口
- 对 IBM Guardium CLI 的特权访问权限
- IBM Guardium 9.1 或更高版本,用于支持加密的 syslog(可选)
获取 Bindplane 代理的 Google SecOps 凭据
如需向 Google SecOps 验证 Bindplane 代理,请选择以下方法之一:
- 新部署:使用 Chronicle API(选项 1)。
- 旧版部署:继续使用数据注入身份验证文件(方法 2),直到 Ingestion 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
该服务应显示为 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: udplog: listen_address: "0.0.0.0:514" exporters: chronicle/guardium: 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: GUARDIUM raw_log_field: body ingestion_labels: log_source: guardium service: pipelines: logs/guardium_to_chronicle: receivers: - udplog exporters: - chronicle/guardium
配置参数
替换以下占位符:
接收器配置:
- 使用
udplog作为 UDP syslog(Guardium 最常用的)。 - 如果需要,请使用
tcplog作为 TCP syslog。 - 监听地址
0.0.0.0:514会监听端口 514 上的所有接口。
- 使用
导出器配置:
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:上一步中的客户 ID。location:将<LOCATION>替换为 Google SecOps 实例所在的区域(例如us、europe或asia-southeast1)。导出工具会在此值前面加上chronicle.googleapis.com。如需查看完整列表,请参阅区域级端点。project:将<PROJECT_NUMBER>替换为“IAM 和管理”>“设置”中的项目编号。endpoint:保持设置为chronicle.googleapis.com。log_type:必须为GUARDIUM。ingestion_labels:YAML 格式的可选标签。
旧版提取 API 导出工具
如果您使用选项 2 中的提取身份验证文件,请将
exporters代码块替换为以下内容。将creds_file_path设置为数据注入身份验证文件的路径,如果您的实例位于美国境外,请将malachiteingestion-pa.googleapis.com替换为您的区域端点(例如europe-malachiteingestion-pa.googleapis.com)。exporters: chronicle/guardium: compression: gzip creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json' customer_id: 'YOUR_CUSTOMER_ID' endpoint: malachiteingestion-pa.googleapis.com log_type: GUARDIUM raw_log_field: body ingestion_labels: log_source: guardium
保存配置文件
修改后,保存文件:
- Linux:依次按
Ctrl+O、Enter和Ctrl+X - Windows:依次点击文件 > 保存
重启 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"
- 按
配置 IBM Guardium Syslog 转发
通过 CLI 配置 syslog 目标
如需在 IBM Guardium 上为事件创建 syslog 目标,您必须登录命令行界面并为 Bindplane 代理主机定义 IP 地址。
- 使用 SSH 以 CLI 用户身份登录 IBM Guardium Collector。
输入以下命令,配置 syslog 目标:
对于 UDP syslog(推荐):
store remotelog add non_encrypted daemon.all BINDPLANE_AGENT_IP udp对于 TCP syslog:
store remotelog add non_encrypted daemon.all BINDPLANE_AGENT_IP:514 tcp对于特定严重程度:
store remotelog add non_encrypted daemon.alert BINDPLANE_AGENT_IP udp store remotelog add non_encrypted daemon.err BINDPLANE_AGENT_IP udp store remotelog add non_encrypted daemon.warning BINDPLANE_AGENT_IP udp- 将
BINDPLANE_AGENT_IP替换为安装了 Bindplane 代理的主机的 IP 地址。
- 将
运行以下命令以验证配置:
show remotelog输出应显示您配置的远程 syslog 目标。
配置加密的 syslog(可选)
如果您需要加密的 syslog 转发,IBM Guardium 9.1 及更高版本支持通过 TCP 进行 TLS 加密。
- 从远程 syslog 接收器使用的证书授权机构获取 PEM 格式的公共证书。
- 登录 Guardium 收集器上的 CLI。
输入以下命令:
store remotelog add encrypted daemon.all BINDPLANE_AGENT_IP:6514 tcp出现提示时,粘贴 PEM 格式的 CA 证书(包括 BEGIN 和 END 行),然后按
Ctrl+D。Guardium 会将证书存储为
/etc/pki/rsyslog/ca.pem。
配置消息模板(可选)
Guardium 支持多种消息格式,包括 CEF(通用事件格式)和 LEEF(日志事件扩展格式)。默认格式适用于大多数部署。
如需自定义消息模板,请执行以下操作:
- 以具有管理员权限的用户身份登录 Guardium 设备 GUI。
- 依次前往 Administration Console(管理控制台)> Configuration(配置)> Global Profile(全局个人资料)。
- 在消息模板部分中,按照所需格式修改模板。
- 点击保存。
配置政策以向 syslog 发送提醒
IBM Guardium 中的政策负责对事件做出反应,并将事件信息转发到远程 syslog 接收器。
配置政策提醒操作
- 登录 Guardium 设备 GUI。
- 点击工具标签页。
- 在左侧导航栏中,选择政策构建器。
- 在政策查找器窗格中,选择现有政策,然后点击修改规则。
- 点击单独修改此规则。
- 系统会显示访问规则定义。
- 点击添加操作。
- 从操作列表中,选择以下任一提醒类型:
- 每次匹配都发出提醒:每次违反政策时都会发出通知。
- 每日提醒:在当天首次发生违规行为时发出通知。
- 每个会话提醒一次:针对每个唯一会话的每次违规行为提供一次通知。
- 按时间粒度发出提醒:系统会根据您选择的时间范围发出通知。
- 从消息模板列表中,选择所需模板或保留默认。
- 在通知类型中,选择 SYSLOG。
- 点击添加,然后点击应用。
- 点击保存。
- 对于您要转发到 Google SecOps 的政策中的所有规则,请重复此过程。
安装政策
必须先在 IBM Guardium 中安装任何新政策或修改后的政策,然后才能执行更新后的提醒操作或规则更改。
- 点击管理控制台标签页。
- 在左侧导航栏中,依次选择 Configuration>Policy Installation。
- 在 Policy Installer 窗格中,选择您在上一步中修改的政策。
- 从下拉列表中,选择安装并覆盖。
- 系统会显示一条确认消息,询问您是否要将政策安装到所有检查引擎。
- 点击确定。
UDM 映射表
| 日志字段 | UDM 映射 | 逻辑 |
|---|---|---|
| deviceNtDomain | about.administrative_domain | 相关实体的管理网域 |
| deviceExternalId | about.asset.asset_id | 资产标识符 |
| filePath、fileHash | about.file.full_path | 文件的完整路径 |
| _hash, fileHash | about.file.sha256 | 文件的 SHA256 哈希值 |
| fsize | about.file.size | 文件的大小 |
| dvchost | about.hostname | “关于”实体的主机名 |
| dvc | about.ip | 相关实体的 IP 地址 |
| smac、dmac、dvcmac | about.mac | 相关实体的 MAC 地址 |
| deviceProcessName、Subject、Emne、Path | about.process.command_line | 进程的命令行 |
| dvcpid | about.process.pid | 进程 ID |
| filePermission | about.resource.attribute.permissions | 与资源关联的权限 |
| extensions.auth.type | 身份验证类型 | |
| sender_ip | intermediary.ip | 中介的 IP 地址 |
| 中介 | 中介实体详细信息 | |
| Received, Generated, timestamp | metadata.collected_timestamp | 收集事件时的时间戳 |
| msg, signature_name | metadata.description | 事件的说明 |
| metadata.event_type | 事件类型(例如 USER_LOGIN、NETWORK_CONNECTION) | |
| device_event_class_id、event_name、eventType | metadata.product_event_type | 特定产品的事件类型 |
| externalId | metadata.product_log_id | 商品日志标识符 |
| metadata.product_version | 产品版本 | |
| network.application_protocol | 网络连接中使用的应用协议 | |
| deviceDirection | network.direction | 网络流量的方向 |
| requestMethod | network.http.method | 请求中使用的 HTTP 方法 |
| requestClientApplication | network.http.user_agent | HTTP 请求中的用户代理字符串 |
| proto | network.ip_protocol | 使用的 IP 协议 |
| 英寸 | network.received_bytes | 接收的字节数 |
| out | network.sent_bytes | 发送的字节数 |
| session_id | network.session_id | 网络连接的会话标识符 |
| sntdom, Domain, Domene | principal.administrative_domain | 委托人的行政网域 |
| sourceServiceName, source_program | principal.application | 与主账号关联的应用 |
| prin_host、Device_name、Enhetsnavn、shost、principal_hostname、client_hostname | principal.asset.hostname | 主要资产的主机名 |
| sender_ip、src_ip、src、principal_ip、client_ip | principal.asset.ip | 主要资产的 IP 地址 |
| Group_name, Gruppenavn | principal.group.group_display_name | 主账号群组的显示名称 |
| prin_host、Device_name、Enhetsnavn、shost、principal_hostname、client_hostname | principal.hostname | 主账号的主机名 |
| sender_ip、src_ip、src、principal_ip、client_ip | principal.ip | 主体的 IP 地址 |
| smac | principal.mac | 主体的 MAC 地址 |
| sourceTranslatedAddress | principal.nat_ip | 主体的 NAT IP 地址 |
| sourceTranslatedPort | principal.nat_port | 主体的 NAT 端口 |
| spt, client_port | principal.port | 主账号使用的端口 |
| sproc | principal.process.command_line | 主进程的命令行 |
| spid | principal.process.pid | 主体的进程 ID |
| spriv | principal.user.attribute.roles | 与主用户关联的角色 |
| suser、usrName、CustomerName | principal.user.user_display_name | 主用户的显示名称 |
| dbUser、usrName、db_user、os_user、suid、db_username | principal.user.userid | 主体的用户 ID |
| security_result | 安全结果详情 | |
| security_result.action | 安全结果中采取的操作 | |
| act, Action_Taken | security_result.action_details | 所采取措施的详细信息 |
| 猫 | security_result.category_details | 安全结果的类别详情 |
| msg_data_2, alert_description, Type, Scan_Type | security_result.description | 安全结果的说明 |
| operation_label、operasjon_label、permission_label、tillatelse_label、infection_channel_label、spyware_Grayware_Type_label、threat_probability_label | security_result.detection_fields | 安全结果中用于检测的字段 |
| mwProfile, alert_name | security_result.rule_name | 触发安全结果的规则的名称 |
| severity、event_severity | security_result.severity | 安全结果的严重程度级别 |
| reason、ruleDesc、appcategory、Result | security_result.summary | 安全结果摘要 |
| 间谍软件、Virus_Malware_Name、Unknown_Threat | security_result.threat_name | 检测到的威胁的名称 |
| oldFilePath | src.file.full_path | 源文件的完整路径 |
| oldFileSize | src.file.size | 源文件的大小 |
| oldFilePermission | src.resource.attribute.permissions | 来源资源的权限 |
| os_user | src.user.userid | 来源用户的用户 ID |
| dntdom | target.administrative_domain | 目标的管理网域 |
| destinationServiceName, service_name | target.application | 与目标相关联的应用 |
| prin_host、dest_host、server_hostname | target.asset.hostname | 目标资产的主机名 |
| dst_ip、dest_ip、server_ip、IPv6_Address | target.asset.ip | 目标资产的 IP 地址 |
| temp_dhost、dest_host、server_hostname | target.hostname | 目标的主机名 |
| dst_ip、dst、dest_ip、server_ip、IPv6_Address | target.ip | 目标的 IP 地址 |
| dmac | target.mac | 目标的 MAC 地址 |
| destinationTranslatedAddress | target.nat_ip | 目标的 NAT IP 地址 |
| destinationTranslatedPort | target.nat_port | 目标的 NAT 端口 |
| dpt、dstPort、dest_port、server_port | target.port | 目标使用的端口 |
| dproc, full_sql | target.process.command_line | 目标进程的命令行 |
| File_name, Object, Objekt, Infected_Resource | target.process.file.full_path | 目标进程文件的完整路径 |
| dpid, full_sql_id | target.process.pid | 目标的进程 ID |
| session_start | target.resource.attribute.creation_time | 目标资源的创建时间 |
| additional_environment_name、additional_db_protocol_version、additional_dbProtocolVersion、additional_operation_name、additional_signature_id、resource_Type_label | target.resource.attribute.labels | 与目标资源关联的标签 |
| session_end | target.resource.attribute.last_update_time | 目标资源的上次更新时间 |
| db_name, database_name | target.resource.name | 目标资源的名称 |
| db_type, server_type | target.resource.resource_subtype | 目标资源的子类型 |
| target.resource.resource_type | 目标资源的类型 | |
| 请求 | target.url | 与目标关联的网址 |
| dpriv、角色 | target.user.attribute.roles | 与目标用户相关联的角色 |
| temp_duser, CustomerName | target.user.user_display_name | 目标用户的显示名称 |
| temp_duid, User, Bruker, db_username | target.user.userid | 目标的用户 ID |
| metadata.product_name | 商品名称 | |
| metadata.vendor_name | 供应商名称 | |
query |
additional.fields |
从更新日志映射 |
更新日志
需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。