收集 Forcepoint Proxy 日志
支持的平台:
Google SecOps
SIEM
本文档介绍了如何使用 Bindplane 将 Forcepoint 代理日志注入到 Google 安全运营中心。解析器首先会清理输入日志消息,然后使用 Grok 模式和正则表达式提取键值对。然后,它会根据特定条件和字段值将提取的字段映射到统一数据模型 (UDM),处理各种日志格式和边界情况,以确保数据表示一致。
准备工作
- 确保您有一个 Google Security Operations 实例。
- 确保您使用的是 Windows 2016 或更高版本,或者使用了带有
systemd
的 Linux 主机。 - 如果在代理后面运行,请确保防火墙端口处于打开状态。
- 确保您拥有对 Forcepoint Proxy 的特权访问权限。
获取 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。在获取 Google SecOps 提取身份验证文件部分中,将
/path/to/ingestion-authentication-file.json
更新为身份验证文件的保存路径。
重启 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。否则,如果 action 不为空,则会映射到 security_result.summary。否则,如果 act 不为空,则会映射到 security_result.summary。 |
action_msg | security_result.summary | 如果 action_msg 不为空,则会映射到 security_result.summary。否则,如果 action 不为空,则会映射到 security_result.summary。否则,如果 act 不为空,则会映射到 security_result.summary。 |
应用 | target.application | 如果 destinationServiceName 不为空,则会映射到 app_name。否则,如果 app 不为空且不包含 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。最后,category 会映射到 security_result.category_details。 |
cn1 | security_result.detection_fields.value | 如果 cn1 不为空,则会映射到键为 Disposition Number 的 security_result.detection_fields.value。 |
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 ,则会映射到前缀为 Dynamic Category: 的 security_result.category_details。 |
cs3 | target.file.mime_type | cs3 会映射到 target.file.mime_type。 |
说明 | metadata.description | 如果 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 | 如果 disposition 不为空,则会映射到 key 为 Disposition Number 的 security_result.detection_fields.value。 |
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 | 如果级别不为空且角色为空,则会映射到角色。最后,将 role 映射到 target_role.name。 |
log_level | security_result.severity | 如果 severity 为 1 或 log_level 包含 info 或 message 包含 notice ,则 security_result.severity 会设为 INFORMATIONAL 。如果严重程度为 7 ,则将 security_result.severity 设置为 HIGH 。 |
loginID | principal.user.userid | 如果 loginID 不为空,则会映射到 user。最后,如果 user 不为空且不为 - ,并且不包含 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 不为空,则会映射到键为 NatRuleId 的 security_result.detection_fields.value。 |
out | network.sent_bytes | 如果 out 不为空,则会映射到 bytes_out。最后,bytes_out 会映射到 network.sent_bytes。 |
pid | target.process.pid | 如果 pid 不为空,则会映射到 target.process.pid。 |
政策 | target_role.description | 如果“Policy”不为空,则会映射到政策。如果政策不为空且不为 - ,则会映射到 target_role.description。 |
政策 | target_role.description | 如果“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 | 如果级别不为空且角色为空,则会映射到角色。最后,将 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 | 如果 severity 为 1 或 log_level 包含 info 或 message 包含 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 不为空,则会映射到 user。如果 suser 不为空,则会映射到 user。最后,如果 user 不为空且不为 - ,并且不包含 LDAP ,则会映射到 principal.user.userid。 |
网址 | target.url | 如果 url 不为空,则会映射到 target.url。 |
用户 | principal.user.userid | 如果 loginID 不为空,则会映射到 user。如果 suser 不为空,则会映射到 user。否则,如果 usrName 不为空,则会映射到 user。最后,如果 user 不为空且不为 - ,并且不包含 LDAP ,则会映射到 principal.user.userid。 |
usrName | principal.user.userid | 如果 loginID 不为空,则会映射到 user。如果 suser 不为空,则会映射到 user。否则,如果 usrName 不为空,则会映射到 user。最后,如果 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 | 如果 user 不为空且不为 - 且包含 LDAP ,系统会提取用户字符串的 OU 部分,并将其映射到 principal.user.group_identifiers。 |
|
principal.user.user_display_name | 如果 user 不为空且不为 - 且包含 LDAP ,系统会提取 user 字符串的用户名部分,并将其映射到 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。最后,category 会映射到 security_result.category_details。如果 cs2 不为空且不为 0 ,则会映射到前缀为 Dynamic Category: 的 security_result.category_details。 |
|
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 | 如果 severity 为 1 或 log_level 包含 info 或 message 包含 notice ,则 security_result.severity 会设为 INFORMATIONAL 。如果严重程度为 7 ,则将 security_result.severity 设置为 HIGH 。 |
|
target_role.description | 如果“Policy”不为空,则会映射到政策。如果政策不为空且不为 - ,则会映射到 target_role.description。 |
|
target_role.name | 如果级别不为空且角色为空,则会映射到角色。最后,将 role 映射到 target_role.name。 | |
category_no | security_result.detection_fields.value | 如果 category_no 不为空,则会映射到键为 Category Number 的 security_result.detection_fields.value。 |
变化
2025-01-16
增强功能:
- 当
s-action
为TCP_DENIED
时,将security_result.action
映射到BLOCK
。
2024-10-18
增强功能:
- 添加了对解析未解析 CSV 日志的支持。
- 添加了丢弃无效 CSV 日志的支持。
- 将
host-url
映射到principal.url
。
2024-07-10
增强功能:
- 为新的 KV 格式日志添加了 Grok 模式。
- 将
username
映射到principal.user.userid
。 - 将
cs-uri
映射到target.url
。 - 将
cs-uri-query
、time-taken
、filter-category
、cs-uri-path
、cs-uri-extension
和rs_content_type
映射到additional.fields
。 - 如果
sc-filter-result
为OBSERVED
,则将security_result.action
设置为ALLOW
;如果sc-filter-result
为DENIED
,则将security_result.action
设置为BLOCK
;否则,将security_result.action
设置为ALLOW
。 - 将
cs-auth-group
映射到principal.user_group_identifiers
。 - 将
cs-method
映射到network.http.method
。 - 将
sc-status
映射到response_code
。 - 将
s-action
映射到security_result.detection_fields
。 - 将
srcport
映射到principal.port
。 - 将
dstport
映射到target.port
。 - 将
sc-bytes
映射到network.received_bytes
。 - 将
cs-bytes
映射到network.sent_bytes
。 - 将
cs
映射到security_result.summary
。 - 将
cs_referer
映射到network.http.referral_url
。 - 将
cs-host
映射到target.hostname
。
2024-06-10
增强功能:
- 添加了对 CSV 格式日志的支持。
2023-06-12
增强功能:
- 修改了 Grok 模式,以解析失败日志(其中某些值显示为“-”)。
- 在映射之前,为字段“http_response”添加了条件检查。
2022-08-11
增强功能:
- 修改了 grok,以解析不含 syslog 标头的 CEF 类型日志。
2022-05-16
增强功能:
- 将类别编号映射到 security_result.detection_fields。
2022-05-05
增强功能:
- 添加了字段的映射:
requestClientApplication
到 http.user_agent、proxyStatus-code
到 http.response_code、disposition
和cn1
到 security_result.detection_fields。 - 如果“cs2Label”的值为“DynCat”,则将“cs2”字段映射到“security_result.category_details”。
- 如果“cs2Label”的值为“NatRuleId”,则将“cs2”字段映射到“security_result.detection_fields”。
需要更多帮助?向社区成员和 Google SecOps 专业人士寻求解答。