收集 Forcepoint Proxy 日志

支持的平台:

本文档介绍了如何使用 Bindplane 将 Forcepoint 代理日志注入到 Google 安全运营中心。解析器首先会清理输入日志消息,然后使用 Grok 模式和正则表达式提取键值对。然后,它会根据特定条件和字段值将提取的字段映射到统一数据模型 (UDM),处理各种日志格式和边界情况,以确保数据表示一致。

准备工作

  • 确保您有一个 Google Security Operations 实例。
  • 确保您使用的是 Windows 2016 或更高版本,或者使用了带有 systemd 的 Linux 主机。
  • 如果在代理后面运行,请确保防火墙端口处于打开状态。
  • 确保您拥有对 Forcepoint Proxy 的特权访问权限。

获取 Google SecOps 提取身份验证文件

  1. 登录 Google SecOps 控制台。
  2. 依次前往 SIEM 设置 > 收集代理
  3. 下载提取身份验证文件。将该文件安全地保存在将安装 BindPlane 的系统上。

获取 Google SecOps 客户 ID

  1. 登录 Google SecOps 控制台。
  2. 依次选择 SIEM 设置 > 配置文件
  3. 复制并保存组织详细信息部分中的客户 ID

安装 Bindplane 代理

Windows 安装

  1. 以管理员身份打开命令提示符PowerShell
  2. 运行以下命令:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Linux 安装

  1. 打开具有 root 或 sudo 权限的终端。
  2. 运行以下命令:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    

其他安装资源

  • 如需了解其他安装选项,请参阅此安装指南

配置 Bindplane 代理以注入 Syslog 并将其发送到 Google SecOps

  1. 访问配置文件:

    1. 找到 config.yaml 文件。通常,在 Linux 上,该目录位于 /etc/bindplane-agent/ 目录中;在 Windows 上,该目录位于安装目录中。
    2. 使用文本编辑器(例如 nanovi 或记事本)打开该文件。
  2. 按如下方式修改 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
    
  3. 根据基础架构中的需要替换端口和 IP 地址。

  4. <customer_id> 替换为实际的客户 ID。

  5. 获取 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

  1. 登录 Forcepoint 控制台
  2. 依次前往网站 > 设置 > 常规
  3. 点击 SIEM 集成
  4. 选中为此政策服务器启用 SIEM 集成复选框。
  5. 提供以下配置详细信息:
    • IP 地址或主机名:输入 Bindplane 代理的 IP 地址。
    • 端口号:输入在 Bindplane 代理上配置的端口号;例如 514
    • 传输协议:选择 UDP 协议。
    • SIEM 格式:选择 Syslog/CEF (Arcsight)
  6. 点击确定
  7. 点击保存并部署

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 不为空且不包含 httpHTTP,则会映射到 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 会根据其值设置为 ALLOWBLOCK。最后,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-actionTCP_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-querytime-takenfilter-categorycs-uri-pathcs-uri-extensionrs_content_type 映射到 additional.fields
  • 如果 sc-filter-resultOBSERVED,则将 security_result.action 设置为 ALLOW;如果 sc-filter-resultDENIED,则将 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、dispositioncn1 到 security_result.detection_fields。
  • 如果“cs2Label”的值为“DynCat”,则将“cs2”字段映射到“security_result.category_details”。
  • 如果“cs2Label”的值为“NatRuleId”,则将“cs2”字段映射到“security_result.detection_fields”。

需要更多帮助?向社区成员和 Google SecOps 专业人士寻求解答。