收集 ManageEngine ADAudit Plus 日志
支持的语言:
Google SecOps
SIEM
本文档介绍了如何使用 Bindplane 代理将 ManageEngine ADAudit Plus 日志注入到 Google Security Operations。解析器可处理来自 ADAudit Plus 的日志,并将其转换为 UDM 格式。它使用 grok 模式从 SYSLOG (CEF) 和键值对格式的消息中提取字段,根据从提醒和报告配置文件中派生的事件类型将这些字段映射到 UDM 字段,并使用其他上下文丰富数据。解析器还会处理登录失败、用户更改和文件修改等特定场景,并相应地调整 UDM 映射。
准备工作
- 确保您拥有 Google SecOps 实例。
- 确保您使用的是 Windows 2016 或更高版本,或者具有
systemd
的 Linux 主机。 - 如果通过代理运行,请确保防火墙端口处于开放状态。
- 确保您拥有对 ManageEngine ADAudit 的特权访问权限。
获取 Google SecOps 注入身份验证文件
- 登录 Google SecOps 控制台。
- 依次前往 SIEM 设置 > 收集代理。
- 下载注入身份验证文件。将文件安全地保存在将要安装 Bindplane 的系统上。
获取 Google SecOps 客户 ID
- 登录 Google SecOps 控制台。
- 依次前往 SIEM 设置 > 配置文件。
- 复制并保存组织详细信息部分中的客户 ID。
安装 Bindplane 代理
Windows 安装
- 以管理员身份打开命令提示符或 PowerShell。
运行以下命令:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Linux 安装
- 打开具有 root 或 sudo 权限的终端。
运行以下命令:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
其他安装资源
- 如需了解其他安装选项,请参阅此安装指南。
配置 Bindplane 代理以注入 Syslog 并将其发送到 Google SecOps
访问配置文件:
- 找到
config.yaml
文件。通常,它位于 Linux 上的/etc/bindplane-agent/
目录中或 Windows 上的安装目录中。 - 使用文本编辑器(例如
nano
、vi
或记事本)打开该文件。
- 找到
按如下方式修改
config.yaml
文件:receivers: udplog: # Replace the port and IP address as required listen_address: "0.0.0.0:514" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the path to the credentials file you downloaded in Step 1 creds: '/path/to/ingestion-authentication-file.json' # Replace with your actual customer ID from Step 2 customer_id: <customer_id> endpoint: malachiteingestion-pa.googleapis.com # Add optional ingestion labels for better organization ingestion_labels: log_type: ADAUDIT_PLUS raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog exporters: - chronicle/chronicle_w_labels
根据基础架构的需要替换端口和 IP 地址。
将
<customer_id>
替换为实际的客户 ID。将
/path/to/ingestion-authentication-file.json
更新为获取 Google SecOps 提取身份验证文件部分中保存身份验证文件的路径。
重启 Bindplane 代理以应用更改
如需在 Linux 中重启 Bindplane 代理,请运行以下命令:
sudo systemctl restart bindplane-agent
如需在 Windows 中重启 Bindplane 代理,您可以使用服务控制台,也可以输入以下命令:
net stop BindPlaneAgent && net start BindPlaneAgent
配置 ManageEngine ADAudit Plus Syslog
- 登录 ManageEngine ADAudit Plus Web 界面。
- 依次前往管理 > 配置 > SIEM 集成。
- 选择启用以发送 ADAudit Plus 日志。
- 选择 ArcSight (CEF) 格式。
- 提供以下配置详细信息:
- IP 地址:Bindplane 代理 IP 地址。
- 端口:Bindplane 端口号;例如,
514
表示 UDP。 - 目标类型:选择 UDP(您也可以选择 TCP,具体取决于您的 Bindplane 代理配置)。
- 点击保存。
UDM 映射表
日志字段 | UDM 映射 | 逻辑 |
---|---|---|
ACCOUNT_DOMAIN |
principal.administrative_domain |
原始日志中的 ACCOUNT_DOMAIN 值会分配给此 UDM 字段。 |
ACCOUNT_NAME |
principal.user.userid |
原始日志中的 ACCOUNT_NAME 值会分配给此 UDM 字段。 |
ALERT_PROFILE |
security_result.summary |
原始日志中的 ALERT_PROFILE 值会分配给此 UDM 字段。 |
APPLICATION_NAME |
target.resource.name |
原始日志中的 APPLICATION_NAME 值会分配给此 UDM 字段。还会将 target.resource.resource_type 设置为 TASK ,并将 has_target_resource 设置为 true。 |
CALLER_DISPLAY_NAME |
target.user.user_display_name |
原始日志中的 CALLER_DISPLAY_NAME 值会分配给此 UDM 字段。 |
CALLER_USER_NAME |
target.user.userid |
原始日志中的 CALLER_USER_NAME 值会分配给此 UDM 字段。 |
CALLER_USER_SID |
target.group.windows_sid |
从原始日志中提取的 CALLER_USER_SID 值在移除字符 [%,{,}] 后会分配给此 UDM 字段。只有当该值与 Windows SID 模式匹配时,才会执行此操作。 |
Category |
metadata.product_event_type |
原始日志中的 Category 值会分配给此 UDM 字段。 |
CLIENT_HOST_NAME |
target.hostname ,target.asset.hostname |
原始日志中的 CLIENT_HOST_NAME 值会分配给这些 UDM 字段。 |
CLIENT_IP_ADDRESS |
target.ip ,target.asset.ip |
在验证原始日志中的 CLIENT_IP_ADDRESS 值是否为有效的 IP 地址后,系统会将该值分配给这些 UDM 字段。 |
CLIENT_PORT |
target.port |
原始日志中的 CLIENT_PORT 值在转换为整数后会分配给此 UDM 字段。 |
DOMAIN |
target.administrative_domain |
原始日志中的 DOMAIN 值会分配给此 UDM 字段。如果存在 ACCOUNT_DOMAIN ,此值可能会在稍后被其覆盖。 |
FILE_LOCATION |
target.file.full_path |
原始日志中的 FILE_LOCATION 值会分配给此 UDM 字段。 |
FILE_NAME |
target.file.full_path |
如果原始日志中不存在 FILE_LOCATION ,则会将 FILE_NAME 的值分配给此 UDM 字段。 |
FORMAT_MESSAGE |
security_result.description |
原始日志中的 FORMAT_MESSAGE 值会分配给此 UDM 字段。此字段的部分内容可能会用于填充其他 UDM 字段,然后从说明中移除。 |
IP |
principal.ip ,principal.asset.ip |
在验证原始日志中的 IP 值是否为有效的 IP 地址后,系统会将该值分配给这些 UDM 字段。 |
loggerHost |
intermediary.hostname ,intermediary.asset.hostname |
从原始日志的消息字段中提取的 loggerHost 值会分配给这些 UDM 字段。 |
login_name |
target.user.userid 、target.user.email_addresses 或 target.user.user_display_name |
如果值包含 @ ,则将其视为电子邮件地址。如果其中包含空格,则系统会将其视为显示名称。否则,系统会将其视为用户 ID。还将 event_type 设置为 USER_LOGIN ,extensions.auth.type 设置为 MACHINE ,extensions.auth.mechanism 设置为 USERNAME_PASSWORD 。 |
RECORD_NUMBER |
principal.process.pid |
原始日志中的 RECORD_NUMBER 值会分配给此 UDM 字段。 |
REPORT_PROFILE |
metadata.description |
原始日志中的 REPORT_PROFILE 值会分配给此 UDM 字段。 |
SEVERITY |
security_result.severity |
SEVERITY 的值决定了相应 UDM 字段的值:1 映射到 LOW,2 映射到 MEDIUM,3 映射到 HIGH。 |
SOURCE |
principal.hostname ,principal.asset.hostname |
原始日志中的 SOURCE 值(如果 SOURCE 不包含网域部分,则与 DOMAIN 结合使用)会分配给这些 UDM 字段。还会将 has_principal_host 设置为 true。 |
TIME_GENERATED |
metadata.event_timestamp.seconds |
原始日志中的 TIME_GENERATED 值用作事件时间戳。 |
UNIQUE_ID |
metadata.product_log_id |
原始日志中的 UNIQUE_ID 值会分配给此 UDM 字段。 |
USERNAME |
principal.user.userid |
如果原始日志中不存在 ACCOUNT_NAME ,则会将 USERNAME 的值分配给此 UDM 字段。 |
USER_OU_GUID |
metadata.product_log_id |
如果原始日志中 USER_OU_GUID 的值(在移除大括号后)不包含 UNIQUE_ID ,则将其分配给此 UDM 字段。 |
access_mode |
security_result.detection_fields.value |
原始日志中的 access_mode 值会分配给此 UDM 字段,并将键设置为 ACCESS_MODE 。 |
action_name |
security_result.description |
原始日志中的 action_name 值会分配给此 UDM 字段。 |
domain_name |
principal.administrative_domain |
原始日志中的 domain_name 值会分配给此 UDM 字段。 |
event.idm.read_only_udm.extensions.auth.mechanism |
event.idm.read_only_udm.extensions.auth.mechanism |
如果存在 login_name 或 event_type 为 USER_LOGIN ,则设置为 USERNAME_PASSWORD 。 |
event.idm.read_only_udm.extensions.auth.type |
event.idm.read_only_udm.extensions.auth.type |
如果存在 login_name 或 event_type 为 USER_LOGIN ,则设置为 MACHINE 。 |
event.idm.read_only_udm.metadata.event_type |
event.idm.read_only_udm.metadata.event_type |
由解析器根据 ALERT_PROFILE 、REPORT_PROFILE 和 FORMAT_MESSAGE 的值确定。可以是多个值之一,包括 USER_CHANGE_PERMISSIONS 、USER_STATS 、USER_LOGIN 、USER_CHANGE_PASSWORD 、SETTING_MODIFICATION 、FILE_DELETION 、FILE_MODIFICATION 、STATUS_SHUTDOWN 、SCHEDULED_TASK_CREATION 、FILE_READ 、NETWORK_CONNECTION 、GENERIC_EVENT 、USER_UNCATEGORIZED 或 STATUS_UPDATE 。 |
event.idm.read_only_udm.metadata.log_type |
event.idm.read_only_udm.metadata.log_type |
一律设置为 ADAUDIT_PLUS |
event.idm.read_only_udm.metadata.product_name |
event.idm.read_only_udm.metadata.product_name |
一律设置为 ADAudit Plus |
event.idm.read_only_udm.metadata.vendor_name |
event.idm.read_only_udm.metadata.vendor_name |
一律设置为 Zoho Corporation |
host |
principal.hostname ,principal.asset.hostname |
原始日志中的 host 值会分配给这些 UDM 字段。还会将 has_principal_host 设置为 true。 |
intermediary.hostname ,intermediary.asset.hostname |
intermediary.hostname ,intermediary.asset.hostname |
设置为 loggerHost 的值。 |
principalHost |
principal.hostname ,principal.asset.hostname |
在检查原始日志中的 principalHost 值是否为 IP 后,将其分配给这些 UDM 字段。还会将 has_principal_host 设置为 true。 |
security_result.action |
security_result.action |
如果 outcome 或 msg_data_2 包含 Success ,或者 FORMAT_MESSAGE 包含 Status:Success ,则设置为 ALLOW 。如果 status 包含 denied 、locked out 、incorrect 、does not meet 或 Unable to validate ,则设置为 BLOCK 。如果 ALERT_PROFILE 为 Logon Failures for Admin Users ,则设置为 BLOCK 。 |
security_result.category |
security_result.category |
如果 event_type 为 USER_STATS 或 ALERT_PROFILE 为 Logon Failures for Admin Users ,则设置为 POLICY_VIOLATION 。 |
security_result.rule_name |
security_result.rule_name |
如果 FORMAT_MESSAGE 字段包含 Reason: ,则从中提取。 |
status |
security_result.summary |
原始日志中的 status 值会分配给此 UDM 字段。 |
targetHost |
target.hostname 、target.asset.hostname 或 target.ip 、target.asset.ip |
在检查原始日志中的 targetHost 值是否为 IP 后,将其分配给这些 UDM 字段。 |
targetUser |
target.user.userid |
原始日志中的 targetUser 值会分配给此 UDM 字段。 |
_CNtargetUser |
target.user.user_display_name |
原始日志中的 _CNtargetUser 值会分配给此 UDM 字段。 |
_user |
principal.user.userid 或 target.user.userid |
原始日志中的 _user 值会分配给 principal.user.userid ,除非 event_type 为 USER_CHANGE_PASSWORD ,在这种情况下,该值会分配给 target.user.userid 。 |
需要更多帮助?从社区成员和 Google SecOps 专业人士那里获得解答。