收集 Forcepoint Proxy 日志
支持的语言:
Google SecOps
SIEM
本文档介绍如何使用 Bindplane 将 Forcepoint 代理日志注入到 Google Security Operations。解析器首先清理输入日志消息,然后使用 grok 模式和正则表达式提取键值对。然后,它会根据特定条件和字段值将提取的字段映射到统一数据模型 (UDM),处理各种日志格式和极端情况,以确保数据表示的一致性。
准备工作
- 确保您拥有 Google Security Operations 实例。
- 确保您使用的是 Windows 2016 或更高版本,或者具有
systemd的 Linux 主机。 - 如果通过代理运行,请确保防火墙端口处于开放状态。
- 确保您拥有对 Forcepoint 代理的特权访问权限。
获取 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: FORCEPOINT_WEBPROXY 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
配置 Forcepoint Web Security Suite
- 登录 Forcepoint 控制台。
- 依次前往网页 > 设置 > 常规。
- 点击 SIEM 集成。
- 选中为此政策服务器启用 SIEM 集成复选框。
- 提供以下配置详细信息:
- IP 地址或主机名:输入 Bindplane 代理的 IP 地址。
- 端口号:输入在 Bindplane 代理上配置的端口号,例如
514。 - 传输协议:选择 UDP 协议。
- SIEM 格式:选择 Syslog/CEF (Arcsight)。
- 点击确定。
- 点击保存并部署。
UDM 映射表
| 日志字段 | UDM 映射 | 逻辑 |
|---|---|---|
| 操作 | security_result.summary | 如果 action_msg 不为空,则会映射到 security_result.summary。否则,如果操作不为空,则会映射到 security_result.summary。否则,如果 act 不为空,则将其映射到 security_result.summary。 |
| action_msg | security_result.summary | 如果 action_msg 不为空,则会映射到 security_result.summary。否则,如果操作不为空,则会映射到 security_result.summary。否则,如果 act 不为空,则将其映射到 security_result.summary。 |
| 应用 | target.application | 如果 destinationServiceName 不为空,则将其映射到 app_name。否则,如果应用不为空且不包含 http 或 HTTP,则会映射到 app_name。最后,app_name 会映射到 target.application。 |
| bytes_in | network.received_bytes | 如果 in 不为空,则映射到 bytes_in。最后,bytes_in 会映射到 network.received_bytes。 |
| bytes_out | network.sent_bytes | 如果 out 不为空,则会映射到 bytes_out。最后,bytes_out 会映射到 network.sent_bytes。 |
| 猫 | security_result.category_details | 如果 cat 不为空,则将其映射到 category。最后,类别会映射到 security_result.category_details。 |
| cn1 | security_result.detection_fields.value | 如果 cn1 不为空,则会将其映射到 security_result.detection_fields.value,键为 Disposition Number。 |
| ContentType | target.file.mime_type | 如果 contentType 不为空,则会映射到 ContentType。最后,ContentType 会映射到 target.file.mime_type。 |
| cs1 | target_role.description | cs1 已映射到 target_role.description。 |
| cs2 | security_result.category_details | 如果 cs2 不为空且不为 0,则会将其映射到 security_result.category_details,并添加前缀 Dynamic Category:。 |
| cs3 | target.file.mime_type | cs3 映射到 target.file.mime_type。 |
| 说明 | metadata.description | 如果说明不为空,则会映射到 metadata.description。 |
| destinationServiceName | target.application | 如果 destinationServiceName 不为空,则将其映射到 app_name。最后,app_name 会映射到 target.application。 |
| deviceFacility | metadata.product_event_type | 如果 product_event 和 deviceFacility 不为空,则使用 - 将它们串联起来,并映射到 metadata.product_event_type。否则,product_event 会映射到 metadata.product_event_type。 |
| disposition | security_result.detection_fields.value | 如果处置不为空,则会将其映射到 security_result.detection_fields.value,键为 Disposition Number。 |
| dst | target.ip | 如果 dst 不为空且 dvchost 为空,则会映射到 dst_ip。最后,dst_ip 会映射到 target.ip。 |
| dst_host | target.hostname | 如果 dst 不为空且 dvchost 为空,则映射到 dst_host。最后,dst_host 映射到 target.hostname。 |
| dst_ip | target.ip | 如果 dst 不为空且 dvchost 为空,则会映射到 dst_ip。最后,dst_ip 会映射到 target.ip。 |
| dst_port | target.port | 如果 dst 不为空且 dvchost 为空,则会映射到 dst_port。最后,dst_port 映射到 target.port。 |
| 时长 | network.session_duration.seconds | 如果时长不为空且不为 0,则会映射到 network.session_duration.seconds。 |
| dvchost | intermediary.ip | 如果 dvchost 不为空,则会映射到 int_ip。最后,如果 int_ip 是有效的 IP 地址,则会映射到 intermediary.ip,否则会映射到 intermediary.hostname。 |
| file_path | target.file.full_path | 如果 file_path 不为空,则会映射到 target.file.full_path。 |
| 主机 | principal.ip | 如果 host 不为空,则将其映射到 src。最后,src 映射到 principal.ip。 |
| http_method | network.http.method | 如果 requestMethod 不为空,则会映射到 http_method。否则,如果 method 不为空,则将其映射到 http_method。最后,http_method 会映射到 network.http.method。 |
| http_proxy_status_code | network.http.response_code | 如果 http_response 为空或 0 或 -,且 http_proxy_status_code 不为空,则将其映射到 network.http.response_code。 |
| http_response | network.http.response_code | 如果 http_response 不为空、不为 0 且不为 -,则会映射到 network.http.response_code。 |
| http_user_agent | network.http.user_agent | 如果 http_user_agent 不为空且不为 -,则会映射到 network.http.user_agent。 |
| 英寸 | network.received_bytes | 如果 in 不为空,则映射到 bytes_in。最后,bytes_in 会映射到 network.received_bytes。 |
| int_host | intermediary.hostname | 如果 int_ip 不为空,且 int_host 不为空且与 int_ip 不同,则映射到 intermediary.hostname。 |
| int_ip | intermediary.ip | 如果 dvchost 不为空,则会映射到 int_ip。最后,如果 int_ip 是有效的 IP 地址,则会映射到 intermediary.ip,否则会映射到 intermediary.hostname。 |
| level | target_role.name | 如果 level 不为空,但 role 为空,则会映射到 role。最后,角色会映射到 target_role.name。 |
| log_level | security_result.severity | 如果严重程度为 1,或者 log_level 包含 info,或者消息包含 notice,则将 security_result.severity 设置为 INFORMATIONAL。如果严重程度为 7,则将 security_result.severity 设置为 HIGH。 |
| loginID | principal.user.userid | 如果 loginID 不为空,则将其映射到用户。最后,如果用户不为空且不为 -,并且不包含 LDAP,则会映射到 principal.user.userid。 |
| 方法 | network.http.method | 如果 requestMethod 不为空,则会映射到 http_method。否则,如果 method 不为空,则将其映射到 http_method。最后,http_method 会映射到 network.http.method。 |
| NatRuleId | security_result.detection_fields.value | 如果 NatRuleId 不为空,则会将其映射到 security_result.detection_fields.value,键为 NatRuleId。 |
| out | network.sent_bytes | 如果 out 不为空,则会映射到 bytes_out。最后,bytes_out 会映射到 network.sent_bytes。 |
| pid | target.process.pid | 如果 pid 不为空,则会映射到 target.process.pid。 |
| 政策 | target_role.description | 如果 Policy 不为空,则会映射到 policy。如果政策不为空且不为 -,则会映射到 target_role.description。 |
| 政策 | target_role.description | 如果 Policy 不为空,则会映射到 policy。如果政策不为空且不为 -,则会映射到 target_role.description。 |
| product_event | metadata.product_event_type | 如果 product 不为空,则会映射到 product_event。如果 product_event 和 deviceFacility 不为空,则使用 - 将它们串联起来,并映射到 metadata.product_event_type。否则,product_event 会映射到 metadata.product_event_type。 |
| proxyStatus-code | network.http.response_code | 如果 http_response 为空或 0/-,且 http_proxy_status_code 为空但 proxyStatus-code 不为空,则将其映射到 network.http.response_code。 |
| refererUrl | network.http.referral_url | 如果 refererUrl 不为空且不为 -,则会映射到 network.http.referral_url。 |
| requestClientApplication | network.http.user_agent | 如果 requestMethod 不为空,则会映射到 http_user_agent。最后,http_user_agent 会映射到 network.http.user_agent。 |
| requestMethod | network.http.method | 如果 requestMethod 不为空,则会映射到 http_method。最后,http_method 会映射到 network.http.method。 |
| 角色 | target_role.name | 如果 level 不为空,但 role 为空,则会映射到 role。最后,角色会映射到 target_role.name。 |
| RuleID | security_result.rule_id | 如果 RuleID 不为空,则会映射到 security_result.rule_id。 |
| serverStatus-code | network.http.response_code | 如果 http_response 为空或 0/-,且 http_proxy_status_code 为空但 proxyStatus-code 不为空,则将其映射到 network.http.response_code。 |
| 和程度上减少 | security_result.severity | 如果严重程度为 1,或者 log_level 包含 info,或者消息包含 notice,则将 security_result.severity 设置为 INFORMATIONAL。如果严重程度为 7,则将 security_result.severity 设置为 HIGH。 |
| spt | principal.port | 如果 spt 不为空,则将其映射到 src_port。最后,src_port 映射到 principal.port。 |
| src | principal.ip | 如果 src_host 不为空,则会映射到 source_ip_temp。如果 source_ip_temp 是有效的 IP 地址且 src 为空,则将其映射到 src。如果 host 不为空,则将其映射到 src。最后,src 映射到 principal.ip。 |
| src_host | principal.hostname | 如果 src_host 不为空,则会映射到 source_ip_temp。如果 source_ip_temp 不是有效的 IP 地址,则会映射到 principal.hostname。如果 source_ip_temp 是有效的 IP 地址且 src 为空,则将其映射到 src。最后,src 映射到 principal.ip。 |
| src_port | principal.port | 如果 src_port 不为空,则将其映射到 principal.port。 |
| suser | principal.user.userid | 如果 loginID 不为空,则将其映射到用户。如果 suser 不为空,则会映射到 user。最后,如果用户不为空且不为 -,并且不包含 LDAP,则会映射到 principal.user.userid。 |
| 网址 | target.url | 如果网址不为空,则会映射到 target.url。 |
| 用户 | principal.user.userid | 如果 loginID 不为空,则将其映射到用户。如果 suser 不为空,则会映射到 user。否则,如果 usrName 不为空,则将其映射到 user。最后,如果用户不为空且不为 -,并且不包含 LDAP,则会映射到 principal.user.userid。 |
| usrName | principal.user.userid | 如果 loginID 不为空,则将其映射到用户。如果 suser 不为空,则会映射到 user。否则,如果 usrName 不为空,则将其映射到 user。最后,如果用户不为空且不为 -,并且不包含 LDAP,则会映射到 principal.user.userid。 |
| 时间 | metadata.event_timestamp | 如果 when 不为空,则会对其进行解析并映射到 metadata.event_timestamp。 |
| metadata.log_type | 值 FORCEPOINT_WEBPROXY 已硬编码到 metadata.log_type 中。 |
|
| metadata.product_name | 值 Forcepoint Webproxy 已硬编码到 metadata.product_name 中。 |
|
| metadata.vendor_name | 值 Forcepoint 会硬编码到 metadata.vendor_name 中。 |
|
| network.application_protocol | 如果 dst_port 为 80,则 network.application_protocol 会设置为 HTTP。如果 dst_port 为 443,则 network.application_protocol 会设置为 HTTPS。 |
|
| principal.user.group_identifiers | 如果用户不为空且不是 -,并且包含 LDAP,则提取用户字符串的 OU 部分并将其映射到 principal.user.group_identifiers。 |
|
| principal.user.user_display_name | 如果用户不为空且不为 -,并且包含 LDAP,则提取用户字符串的用户名部分并将其映射到 principal.user.user_display_name。 |
|
| security_result.action | 如果 action_msg、action 或 act 不为空,则根据其值将 sec_action 设置为 ALLOW 或 BLOCK。最后,sec_action 会映射到 security_result.action。 |
|
| security_result.category_details | 如果 cat 不为空,则将其映射到 category。最后,类别会映射到 security_result.category_details。如果 cs2 不为空且不为 0,则会将其映射到 security_result.category_details,并添加前缀 Dynamic Category:。 |
|
| security_result.detection_fields.key | 在映射处置或 cn1 时,值 Disposition Number 会硬编码到 security_result.detection_fields.key 中。在映射 NatRuleId 时,值 NatRuleId 会硬编码到 security_result.detection_fields.key 中。在映射 category_no 时,值 Category Number 会硬编码到 security_result.detection_fields.key 中。 |
|
| security_result.severity | 如果严重程度为 1,或者 log_level 包含 info,或者消息包含 notice,则将 security_result.severity 设置为 INFORMATIONAL。如果严重程度为 7,则将 security_result.severity 设置为 HIGH。 |
|
| target_role.description | 如果 Policy 不为空,则会映射到 policy。如果政策不为空且不为 -,则会映射到 target_role.description。 |
|
| target_role.name | 如果 level 不为空,但 role 为空,则会映射到 role。最后,角色会映射到 target_role.name。 | |
| category_no | security_result.detection_fields.value | 如果 category_no 不为空,则会将其映射到 security_result.detection_fields.value,键为 Category Number。 |
需要更多帮助?从社区成员和 Google SecOps 专业人士那里获得解答。