收集 Fortra Powertech SIEM Agent 日志
解析器版本:22.0
本指南介绍了如何使用 Bindplane 代理将 Fortra Powertech SIEM Agent for IBM i 日志注入 Google Security Operations。
Powertech SIEM Agent for IBM i(前身为 Powertech Interact)会监控 IBM i 日志和消息队列,以查找关键系统消息和审核条目,使用 UDP、TCP、TLS、消息队列或流文件 (IFS) 传输消息,并根据 Micro Focus ArcSight 通用事件格式 (CEF) v25 设置 syslog 数据包的 MSG 部分的格式。
准备工作
请确保满足以下前提条件:
- Google SecOps 实例。
- Windows Server 2016 或更高版本,或者具有 systemd 的 Linux 主机。
- Bindplane 代理与运行 Powertech SIEM 代理的 IBM i 系统之间的网络连接。
- 如果在代理后面运行,请确保根据 Bindplane 代理要求打开防火墙端口。
- 对 IBM i 系统具有特权访问权限,有权配置 Powertech SIEM 代理(具有 *ALLOBJ 特殊权限的用户个人资料或 PTADMIN 授权列表的成员)。
- 在 IBM i 系统上安装并获得许可的 Powertech SIEM Agent for IBM i。
获取 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该服务应显示为有效(正在运行)。
其他安装资源
如需了解其他安装选项和问题排查,请参阅 Bindplane 代理安装指南。
配置 Bindplane 代理以注入 syslog 并发送到 Google SecOps
找到配置文件
Linux:
sudo nano /opt/observiq-otel-collector/config.yaml
Windows:
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
修改配置文件
将 config.yaml 的全部内容替换为以下配置:
receivers:
udplog:
listen_address: "0.0.0.0:514"
exporters:
chronicle/powertech_siem:
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: FORTRA_POWERTECH_SIEM_AGENT
raw_log_field: body
ingestion_labels:
env: production
service:
pipelines:
logs/powertech_to_chronicle:
receivers:
- udplog
exporters:
- chronicle/powertech_siem
配置参数
替换以下占位符:
接收器配置:
listen_address:要监听的 IP 地址和端口。使用0.0.0.0:514监听端口 514 上的所有接口,或者如果端口 514 需要根权限或已被使用,请将端口更改为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:替换为您的 Google SecOps 客户 ID。location:将<LOCATION>替换为 Google SecOps 实例所在的区域(例如us、europe或asia-southeast1)。导出工具会在此值前面加上chronicle.googleapis.com。如需查看完整列表,请参阅区域级端点。project:将<PROJECT_NUMBER>替换为“IAM 和管理”>“设置”中的项目编号。endpoint:保持设置为chronicle.googleapis.com。ingestion_labels:采用 YAML 格式的可选标签(例如env: production、source: ibm_i)。
旧版提取 API 导出工具
如果您使用选项 2 中的数据注入身份验证文件,请将
exporters代码块替换为以下内容。将creds_file_path设置为提取身份验证文件的路径,如果您的实例位于美国境外,请将malachiteingestion-pa.googleapis.com替换为您的区域端点(例如europe-malachiteingestion-pa.googleapis.com)。exporters: chronicle/powertech_siem: compression: gzip creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json' customer_id: 'YOUR_CUSTOMER_ID' endpoint: malachiteingestion-pa.googleapis.com log_type: FORTRA_POWERTECH_SIEM_AGENT raw_log_field: body ingestion_labels: env: production
保存配置文件
修改后,保存文件:
- Linux:依次按
Ctrl+O、Enter和Ctrl+X - Windows:依次点击文件 > 保存
重启 Bindplane 代理以应用更改
Linux
sudo systemctl restart observiq-otel-collector验证服务是否正在运行:
sudo systemctl status observiq-otel-collector检查日志中的错误:
sudo journalctl -u observiq-otel-collector -f
Windows
请从下列选项中选择一项:
以管理员身份使用命令提示符或 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"
- 按
配置 Powertech SIEM Agent syslog 转发
在 IBM i 命令行中,输入 POWERTECH 以打开 Powertech 主菜单,然后选择选项 6 以打开 SIEM Agent 主菜单。
配置 syslog 格式
在 SIEM 代理主菜单中,选择选项 2 以打开“处理格式”面板。默认情况下,系统会包含 CEF、JSON、LEEF、MODERN 和 SYSLOG 格式。
- 在 SYSLOG 旁边输入 2,然后按 Enter 键。
- 在“消息样式”字段中,输入 *SYSLOG。
- 在“标头规范”字段中,输入 RFC 3164。
- 确保将“Use Header Format Compatibility”(使用标头格式兼容性)设置为“Y”,然后保存配置。
按 F3 两次,返回主菜单。
创建网络输出
在主菜单中,选择选项 3“处理输出”,然后按 F6 创建新输出。
- 输入以下选项:
- 名称:CHRONICLE(或描述性名称)
- 说明:Chronicle Bindplane 输出
- 有效:1
- 格式:SYSLOG
- 类型:*NETWORK
- 按 Enter 键。
- 在后续界面中,输入以下选项:
- 位置:输入安装了 Bindplane 代理的机器的 IP 地址
- 端口:514(或在 Bindplane 代理中配置的端口)
- 协议:UDP
按 Enter 键保存更改,然后按 F12 键关闭窗口。
将输出附加到事件来源
选择选项 1“Work with Event Sources”,然后在 AUDIT 旁边输入 2,然后按 Enter 键。
- 按 F8(保持输出),然后按 F6(附加)以附加最近创建的输出。在 CHRONICLE(或您的输出名称)旁边输入 1,然后按 Enter 键。
- 按 F3 返回到主菜单。
启用活动说明
在 SIEM 代理主菜单中,选择选项 1,然后输入 9 作为事件来源。系统会显示“Work with Event Descriptions”(使用事件说明)面板。使用选项 6 激活您要处理的事件。
提交配置更改
在主菜单中,选择选项 82 Work with Utilities(使用实用程序),然后选择选项 1 Commit configuration changes(提交配置更改)。
启动 SIEM 代理监控
如果 SIEM 代理尚未运行,请启动监控作业:
在 IBM i 命令行中,输入:
CALL PTSTARTUP这些命令会在 PTWRKMGT 子系统中启动所需的中央管理和 SIEM 代理监控作业。
验证日志是否正在发送
- 查看 Bindplane 代理日志(有关日志位置,请参阅上文中的“重新启动”部分),检查日志是否已到达 Bindplane 代理。
- 验证日志是否显示在 Google SecOps 控制台中(初始提取需要 5 到 10 分钟)。
- (可选)分配一个消息队列来记录 SIEM 代理发送的所有消息,以确认已发送哪些消息。
UDM 映射表
| 日志字段 | UDM 映射 | 逻辑 |
|---|---|---|
| principal_ip | principal.ip | 主账号的 IP 地址。 |
| dst_ip | target.ip | 目标的 IP 地址。 |
| sourceTranslatedAddress | principal.nat_ip | 主账号的 NAT IP 地址。 |
| destinationTranslatedAddress | target.nat_ip | 目标的 NAT IP 地址。 |
| dvc | about.ip | 资产的 IP 地址。 |
| deviceTranslatedAddress | about.nat_ip | 资产的 NAT IP 地址。 |
| smac | principal.mac | 主体的 MAC 地址。 |
| dmac | target.mac | 目标的 MAC 地址。 |
| dvcmac | about.mac | 资产的 MAC 地址。 |
| spriv | principal.user.attribute.roles | 与主账号用户关联的角色。 |
| dpriv | target.user.attribute.roles | 与目标用户关联的角色。 |
| oldFilePermission | src.resource.attribute.permissions | 源资源的权限。 |
| filePermission | about.resource.attribute.permissions | 资源的权限。 |
| 猫 | security_result.category_details | 关于安全结果类别的其他详细信息。 |
| device_vendor、device_product、deviceExternalId | about.asset.asset_id | 相应资产的唯一标识符。 |
| out | network.sent_bytes | 网络连接中发送的字节数。 |
| 英寸 | network.received_bytes | 网络连接中接收的字节数。 |
| fsize | about.file.size | 文件的大小。 |
| oldFileSize | src.file.size | 源文件的大小。 |
| destinationTranslatedPort | target.nat_port | 目标的 NAT 端口。 |
| dpt | target.port | 目标的端口号。 |
| sourceTranslatedPort | principal.nat_port | 主账号的 NAT 端口。 |
| spt | principal.port | 主账号的端口号。 |
| rt | metadata.event_timestamp | 事件发生时的时间戳。 |
| 和程度上减少 | security_result.severity | 安全结果的严重级别。 |
| app_protocol_src | network.application_protocol | 网络连接中使用的应用协议。 |
| proto | network.ip_protocol | 网络连接中使用的 IP 协议。 |
| deviceDirection | network.direction | 网络流量的方向。 |
| act | security_result.action | 安防系统采取的操作。 |
| outcome、categoryOutcome、cs2 | security_result.action | 安防系统采取的操作。 |
| msg_data_2 | security_result.description | 安全结果的说明。 |
| msg | metadata.description | 事件的说明。 |
| destinationServiceName | target.application | 与目标关联的应用。 |
| dntdom | target.administrative_domain | 目标的管理网域。 |
| oldFilePath | src.file.full_path | 源文件的完整路径。 |
| requestClientApplication | network.http.user_agent | HTTP 请求中的用户代理字符串。 |
| requestMethod | network.http.method | 请求中使用的 HTTP 方法。 |
| filePath | about.file.full_path | 文件的完整路径。 |
| dvchost | about.hostname | 资产的主机名。 |
| deviceNtDomain | about.administrative_domain | 相应资产的管理网域。 |
| dvcpid | about.process.pid | 素材资源的进程 ID。 |
| deviceProcessName | about.process.command_line | 相应资产上进程的命令行。 |
| _hash | about.file.sha256 | 文件的 SHA256 哈希值。 |
| externalId | metadata.product_log_id | 特定于产品的日志标识符。 |
| security_result.action_details | security_result.action_details | 有关安全操作的其他详细信息。 |
| device_version | metadata.product_version | 生成事件的产品的版本。 |
| temp_dhost | target.hostname | 目标的主机名。 |
| 请求 | target.url | 与目标相关联的网址。 |
| temp_duser | target.user.user_display_name | 目标用户的显示名称。 |
| temp_duid | target.user.userid | 目标用户的用户 ID。 |
| Device_name | principal.hostname | 主账号的主机名。 |
| Enhetsnavn | principal.hostname | 主账号的主机名。 |
| 网域 | principal.administrative_domain | 主体的管理网域。 |
| 多梅内 | principal.administrative_domain | 主账号的管理网域。 |
| Group_name | principal.group.group_display_name | 主账号组的显示名称。 |
| Gruppenavn | principal.group.group_display_name | 主账号群组的显示名称。 |
| Received, Mottatt | metadata.collected_timestamp | 事件收集时间的时间戳。 |
| Generated, Generert | metadata.event_timestamp | 事件发生时的时间戳。 |
| 主题 | about.process.command_line | 进程的命令行。 |
| Emne | about.process.command_line | 进程的命令行。 |
| 路径 | about.process.command_line | 进程的命令行。 |
| 类型 | security_result.description | 安全结果的说明。 |
| Scan_Type | security_result.description | 安全结果的说明。 |
| 用户 | target.user.userid | 目标用户的用户 ID。 |
| Bruker | target.user.userid | 目标用户的用户 ID。 |
| CustomerName | target.user.user_display_name | 目标用户的显示名称。 |
| File_name, Object, Objekt, Infected_Resource | target.process.file.full_path | 与目标进程关联的文件的完整路径。 |
| Action_Taken | security_result.action_details | 有关安全操作的其他详细信息。 |
| 间谍软件、Virus_Malware_Name、Unknown_Threat | security_result.threat_name | 检测到的威胁的名称。 |
| shost | principal.hostname | 主账号的主机名。 |
| shost | principal.ip | 主体的 IP 地址。 |
| sntdom | principal.administrative_domain | 主账号的管理网域。 |
| sourceServiceName | principal.application | 与主体关联的应用。 |
| spid | principal.process.pid | 主账号的进程 ID。 |
| sproc | principal.process.command_line | 主进程的命令行。 |
| suid | principal.user.userid | 主用户的用户 ID。 |
| suser | principal.user.user_display_name | 主用户的显示名称。 |
| dpid | target.process.pid | 目标进程的进程 ID。 |
| dproc | target.process.command_line | 目标进程的命令行。 |
| reason | security_result.summary | 安全结果摘要。 |
| event_name、device_event_class_id | metadata.product_event_type | 特定于产品的事件类型。 |
| fileHash | about.file.sha256 | 文件的 SHA256 哈希值。 |
| 关于 | 关于 | 有关事件的其他信息。 |
| mwProfile | security_result.rule_name | 触发安全结果的规则的名称。 |
| appcategory | security_result.summary | 安全结果摘要。 |
| 结果 | security_result.summary | 安全结果的摘要。 |
| eventid | additional.fields | 事件的其他字段。 |
| eventId | additional.fields | 活动的其他字段。 |
| devicePayloadId | additional.fields | 活动的其他字段。 |
| fname | additional.fields | 事件的其他字段。 |
| cs1、cs1Label | additional.fields | 活动的其他字段。 |
| cs2、cs2Label | additional.fields | 事件的其他字段。 |
| cs3, cs3Label | additional.fields | 事件的其他字段。 |
| cs4, cs4Label | additional.fields | 事件的其他字段。 |
| cs5, cs5Label | additional.fields | 活动的其他字段。 |
| cs6、cs6Label | additional.fields | 活动的其他字段。 |
| cs7, cs7Label | additional.fields | 事件的其他字段。 |
| flexString1, flexString1Label | additional.fields | 活动的其他字段。 |
| cn1, cn1Label | additional.fields | 事件的其他字段。 |
| cn2、cn2Label | additional.fields | 活动的其他字段。 |
| cn3, cn3Label | additional.fields | 活动的其他字段。 |
| cfp1, cfp1Label | additional.fields | 事件的其他字段。 |
| cfp2, cfp2Label | additional.fields | 活动的其他字段。 |
| cfp3, cfp3Label | additional.fields | 事件的其他字段。 |
| cfp4, cfp4Label | additional.fields | 活动的其他字段。 |
| 操作 | security_result.detection_fields | 用于威胁检测的字段。 |
| Operasjon | security_result.detection_fields | 用于威胁检测的字段。 |
| 权限 | security_result.detection_fields | 用于威胁检测的字段。 |
| Tillatelse | security_result.detection_fields | 用于威胁检测的字段。 |
| Infection_Channel | security_result.detection_fields | 用于威胁检测的字段。 |
| IPv6_Address | target.ip | 目标的 IP 地址。 |
| Resource_Type | target.resource.attribute.labels | 目标资源属性的标签。 |
| Spyware_Grayware_Type | security_result.detection_fields | 用于威胁检测的字段。 |
| Threat_Probability | security_result.detection_fields | 用于威胁检测的字段。 |
| security_result | security_result | 事件的安全结果。 |
| 主机 | principal.hostname | 主账号的主机名。 |
| 失败 | metadata.description | 事件的说明。 |
| 已更改 | metadata.description | 事件的说明。 |
| log_version | additional.fields | 活动的其他字段。 |
| cnt | additional.fields | 活动的其他字段。 |
| fileType | target.file.mime_type | 目标文件的 MIME 类型。 |
| fname | target.file.names | 目标文件的名称。 |
| ip | principal.ip | 主体的 IP 地址。 |
| metadata.event_type | metadata.event_type | 事件的类型。 |
| principal_hostname | principal.asset.hostname | 主要资产的主机名。 |
| principal_asset_hostname | principal.asset.hostname | 主要资产的主机名。 |
| target_hostname | target.asset.hostname | 目标资产的主机名。 |
| target_asset_hostname | target.asset.hostname | 目标资产的主机名。 |
| device_vendor | metadata.vendor_name | 商品的供应商名称。 |
| device_product | metadata.product_name | 商品名称。 |
更新日志
需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。