收集 ManageEngine Log360 日志
本文档介绍了如何使用 Bindplane 将 ManageEngine Log360 日志注入到 Google Security Operations。
ManageEngine Log360 是一款统一的 SIEM 和日志管理解决方案,可收集、监控和分析来自您环境中多个来源的日志。它会生成汇总的安全事件和合规性审核日志。Log360 在其 EventLog Analyzer 组件中包含内置的 Syslog Forwarder 功能,该功能支持多种输出格式,包括 RFC 5424、RFC 3164、JSON 和自定义模板。
准备工作
请确保满足以下前提条件:
- Google SecOps 实例
- Windows Server 2016 或更高版本,或者具有
systemd的 Linux 主机 - Bindplane 代理与 ManageEngine Log360 之间的网络连接
- 如果在代理后面运行,请确保防火墙端口已根据 Bindplane 代理要求打开
- 通过管理员权限对 ManageEngine Log360 进行特权访问
- 已安装并配置 ManageEngine Log360,可从您的环境中收集日志
获取 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 systemctl status observiq-otel-collectorWindows:
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
修改配置文件
将
config.yaml的全部内容替换为以下配置:receivers: tcplog: listen_address: "0.0.0.0:514" exporters: chronicle/log360: compression: gzip creds_file_path: '/etc/bindplane-agent/ingestion-auth.json' customer_id: '<customer_id>' endpoint: malachiteingestion-pa.googleapis.com log_type: MANAGE_ENGINE_LOG360 raw_log_field: body ingestion_labels: env: production service: pipelines: logs/log360_to_chronicle: receivers: - tcplog exporters: - chronicle/log360
配置参数
替换以下占位符:
接收器配置:
tcplog:基于协议的接收器类型:udplog(适用于 UDP syslog)tcplog(适用于 TCP syslog)
0.0.0.0:要监听的 IP 地址:0.0.0.0侦听所有接口(推荐)- 在某个接口上监听的特定 IP 地址
514:要监听的端口号(例如514、1514、6514)
导出器配置:
log360:导出器的描述性名称creds_file_path:提取身份验证文件的完整路径:- Linux:
/etc/bindplane-agent/ingestion-auth.json - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Linux:
<customer_id>:上一步中的客户 IDendpoint:区域端点网址:- 美国:
malachiteingestion-pa.googleapis.com - 欧洲:
europe-malachiteingestion-pa.googleapis.com - 亚洲:
asia-southeast1-malachiteingestion-pa.googleapis.com - 如需查看完整列表,请参阅区域级端点
- 美国:
MANAGE_ENGINE_LOG360:日志类型,与在 Chronicle 中显示的完全一致ingestion_labels:YAML 格式的可选标签(例如env: production)
流水线配置:
log360_to_chronicle:流水线的描述性名称
保存配置文件
- 修改后,保存文件:
- 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"
配置 ManageEngine Log360 syslog 转发
- 以管理员身份登录 ManageEngine Log360 控制台。
- 依次前往设置 > 管理员设置 > 集成 > 日志转发。
- 点击添加新配置文件。
使用以下设置配置转发配置文件:
设置 值 转发器名称 输入一个描述性名称(例如, Chronicle-Bindplane)目标服务器 输入 Bindplane 代理主机 IP 地址 协议 选择 TCP 或 UDP 以匹配 Bindplane 接收器类型 端口 输入与 Bindplane 代理接收器配置相匹配的端口(例如 514)点击自定义以选择日志格式。可用的格式包括:
- Rawlog:按接收时的原样转发原始日志
- JSON:以结构化 JSON 格式转发日志
- RFC 5424:支持结构化数据的标准 syslog 格式
- 包含结构化数据的 RFC 5424:扩展的 RFC 5424 格式
- RFC 3164:旧版 BSD syslog 格式
- 自定义:定义自定义 syslog 格式模板
在选择设备下,添加要转发日志的设备。
选择转发条件:
- 所有日志:转发所选设备的所有传入日志
- 排除:过滤掉与指定规则匹配的日志
- 仅转发:仅转发符合指定规则的日志
点击保存。
UDM 映射表
| 日志字段 | UDM 映射 | 逻辑 |
|---|---|---|
| authentication_package | additional.fields | 与通过 authentication_package 创建的标签对象合并 |
| Logon_type | extensions.auth.mechanism | 如果 Logon_type == '3',则设置为“NETWORK”;如果为 '4',则设置为“BATCH”;如果为 '5',则设置为“SERVICE”;如果为 '8',则设置为“NETWORK_CLEAR_TEXT”;如果为 '9',则设置为“NEW_CREDENTIALS”;如果为 '10',则设置为“REMOTE_INTERACTIVE”;如果为 '11',则设置为“CACHED_INTERACTIVE”;如果不为空,则设置为“MECHANISM_OTHER” |
| 用户 | intermediary.hostname | 直接复制值 |
| msg | metadata.description | 直接复制值 |
| user_present、principal_present | metadata.event_type | 如果 user_present == "true",则设置为“USER_RESOURCE_ACCESS”;如果 principal_present == "true",则设置为“STATUS_UPDATE”;否则设置为“GENERIC_EVENT” |
| eventid | metadata.product_event_type | 直接复制值 |
| principal_domain | principal.administrative_domain | 直接复制值 |
| source_ip | principal.asset.ip | 使用 IP grok 模式提取,如果有效则合并 |
| source_ip | principal.ip | 使用 IP grok 模式提取,如果有效则合并 |
| source_port | principal.port | 直接复制的值,已转换为整数 |
| creator_process_name | principal.process.file.full_path | 直接复制值 |
| process_id | principal.process.pid | 如果不在 [""," -"] 中,则直接复制值 |
| logon_guid | principal.resource.product_object_id | 直接复制值 |
| principal_account_name | principal.user.userid | 直接复制值 |
| principal_security_id | principal.user.windows_sid | 如果与 Windows SID 正则表达式匹配,则直接复制值 |
| channel、principal_logon_id、impersonation_level、restricted_admin_mode、virtual_account、elevated_token、event_in_sequence、logon_process、transited_services、key_length | security_result.detection_fields | 与根据每个字段创建的标签对象合并 |
| 摘要 | security_result.description | 直接复制值 |
| 事件 | src.asset.software.vendor_name | 直接复制值 |
| target_domain | target.administrative_domain | 如果不在 [""," -"] 中,则直接复制值 |
| target_account_name | target.user.userid | 如果不在 [""," -"] 中,则直接复制值 |
| target_security_id | target.user.windows_sid | 如果与 Windows SID 正则表达式匹配,则直接复制值 |