收集 Forcepoint Web Security 記錄

剖析器版本:12.0

支援的國家/地區:

本文說明如何使用 Bindplane 代理程式,將 Forcepoint Web Security 記錄檔擷取至 Google Security Operations。

Forcepoint Web Security 是一種網路 Proxy 和安全閘道,可針對網路存取、安全事件、驗證和政策執行作業,以 CEF (通用事件格式) 產生系統記錄訊息。剖析器會從 CEF 和 Syslog 格式的記錄檔中擷取欄位,並對應至統合式資料模型 (UDM)。

事前準備

請確認您已完成下列事前準備事項:

  • Google SecOps 執行個體
  • Windows Server 2016 以上版本,或搭載 systemd 的 Linux 主機
  • Bindplane 代理程式與 Forcepoint Web Security 之間的網路連線
  • 如果透過 Proxy 執行,請確保防火牆通訊埠已根據 Bindplane 代理程式需求開啟
  • Forcepoint Security Manager 或設備管理介面的管理員存取權

取得 Google SecOps 擷取驗證檔案

  1. 登入 Google SecOps 控制台。
  2. 依序前往「SIEM 設定」>「收集代理程式」。
  3. 下載擷取驗證檔案。
  4. 將檔案安全地儲存在要安裝 Bindplane 代理程式的系統中。

取得 Google SecOps 客戶 ID

  1. 登入 Google SecOps 控制台。
  2. 依序前往「SIEM 設定」>「設定檔」。
  3. 複製並儲存「機構詳細資料」專區中的「客戶 ID」。

安裝 Bindplane 代理程式

請按照下列操作說明,在 Windows 或 Linux 作業系統上安裝 Bindplane 代理程式。

Windows 安裝

  1. 以管理員身分開啟「命令提示字元」或「PowerShell」。
  2. 執行下列指令:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    
  3. 等待安裝完成。

  4. 執行下列指令,確認安裝成功:

    sc query observiq-otel-collector
    

    服務應顯示為「RUNNING」。

安裝 Linux

  1. 開啟具有根層級或 sudo 權限的終端機。
  2. 執行下列指令:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    
  3. 等待安裝完成。

  4. 執行下列指令,確認安裝成功:

    sudo systemctl status observiq-otel-collector
    

    服務應顯示為「active (running)」。

其他安裝資源

如需其他安裝選項和疑難排解資訊,請參閱 Bindplane 代理程式安裝指南。

設定 Bindplane 代理,擷取系統記錄檔並傳送至 Google SecOps

您可以設定 Bindplane 代理程式,透過 TCP (建議) 或 UDP 接收系統記錄訊息。

找出設定檔

  • Linux:

    sudo nano /etc/bindplane-agent/config.yaml
    
  • Windows:

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

編輯設定檔

將 config.yaml 的全部內容替換為所選通訊協定的設定:

  • 選項 A:TCP 設定 (建議)

    receivers:
        tcplog:
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/forcepoint_webproxy:
            compression: gzip
            creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
            customer_id: '<customer_id>'
            endpoint: malachiteingestion-pa.googleapis.com
            log_type: FORCEPOINT_WEBPROXY
            raw_log_field: body
    
    service:
        pipelines:
            logs/forcepoint_tcp_to_chronicle:
                receivers:
                    - tcplog
                exporters:
                    - chronicle/forcepoint_webproxy
    
  • 選項 B:UDP 設定

    receivers:
        udplog:
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/forcepoint_webproxy:
            compression: gzip
            creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
            customer_id: '<customer_id>'
            endpoint: malachiteingestion-pa.googleapis.com
            log_type: FORCEPOINT_WEBPROXY
            raw_log_field: body
    
    service:
        pipelines:
            logs/forcepoint_udp_to_chronicle:
                receivers:
                    - udplog
                exporters:
                    - chronicle/forcepoint_webproxy
    

設定參數

請替換下列預留位置:

  • 接收器設定:

    • listen_address:要接聽的 IP 位址和通訊埠:
      • 0.0.0.0 在所有介面接聽電話 (建議)
      • 通訊埠 514 是標準的系統記錄通訊埠 (在 Linux 上需要根層級權限;如果沒有根層級權限,請使用 1514)
  • 匯出工具設定:

    • creds_file_path:擷取驗證檔案的完整路徑:
      • Linux:/etc/bindplane-agent/ingestion-auth.json
      • Windows:C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
    • customer_id:從 Google SecOps 控制台複製的客戶 ID
    • endpoint:區域端點網址:
      • 美國:malachiteingestion-pa.googleapis.com
      • 歐洲:europe-malachiteingestion-pa.googleapis.com
      • 亞洲:asia-southeast1-malachiteingestion-pa.googleapis.com
      • 如需完整清單,請參閱「區域端點」

儲存設定檔

  • 編輯完成後,請儲存檔案:
    • Linux:依序按下 Ctrl+O、Enter 和 Ctrl+X
    • Windows:依序點選「檔案」 > 「儲存」

重新啟動 Bindplane 代理程式,套用變更

  • 如要在 Linux 中重新啟動 Bindplane 代理程式,請執行下列指令:

    sudo systemctl restart observiq-otel-collector
    
    1. 確認服務是否正在執行:

      sudo systemctl status observiq-otel-collector
      
    2. 檢查記錄是否有錯誤:

      sudo journalctl -u observiq-otel-collector -f
      
  • 如要在 Windows 中重新啟動 Bindplane 代理程式,請選擇下列任一選項:

    • 以管理員身分開啟命令提示字元或 PowerShell:

      net stop observiq-otel-collector && net start observiq-otel-collector
      
    • 服務控制台:

      1. 按下 Win+R 鍵,輸入 services.msc,然後按下 Enter 鍵。
      2. 找出「observIQ OpenTelemetry Collector」。
      3. 按一下滑鼠右鍵,然後選取「重新啟動」。
      4. 確認服務是否正在執行:

        sc query observiq-otel-collector
        
      5. 檢查記錄是否有錯誤:

        type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
        

在 Forcepoint Web Security 上設定系統記錄轉送

設定 Forcepoint Web Security,以 CEF (通用事件格式) 格式將記錄轉送至 Bindplane 代理程式。

使用 Forcepoint Security Manager

  1. 使用管理員憑證登入 Forcepoint Security Manager。
  2. 依序前往「設定」>「記錄」。
  3. 在左側導覽中,選取「記錄伺服器」。
  4. 按一下「新增」,建立新的記錄伺服器設定。
  5. 請提供下列設定詳細資料:
    • 伺服器類型:選取「Syslog 伺服器」或「CEF 伺服器」。
    • 名稱:輸入描述性名稱 (例如 Google Security Operations Bindplane CEF)。
    • 主機:輸入 Bindplane 代理程式 IP 位址或主機名稱。
    • 通訊埠:輸入 Bindplane 代理程式通訊埠編號 (例如 514)。
    • 通訊協定:選取與 Bindplane 設定相符的通訊協定:
      • 如果您在 Bindplane 中設定 tcplog 接收器 (建議),請選取「TCP」TCP。
      • 如果您在 Bindplane 中設定 udplog 接收器,請選取「UDP」UDP。
    • 格式:選取「CEF」(通用事件格式)。
    • 設施:選取「Local0」 (或其他可用設施)。
    • 嚴重性:選取「資訊」 (擷取所有記錄層級)。
  6. 在「記錄類別」或「事件類型」下方,選取要轉送的事件:
    • 網路存取記錄 (交易記錄)
    • 安全事件 (威脅偵測)
    • 驗證事件 (使用者登入/登出)
    • 系統事件 (系統和設定變更)
    • 或者選取「所有事件」,轉送所有可用的記錄類型。
  7. 選用:調整其他設定:
    • 批次大小:如要即時轉送,請設為 1;如要批次處理,請設為較高的值。
    • 訊息格式:請確認已選取 CEF 格式。
    • 包含使用者資訊:啟用後,記錄中會包含使用者身分。
  8. 按一下「測試連線」,驗證與 Bindplane 代理程式的連線。
  9. 按一下「儲存」即可套用設定。
  10. 按一下「Deploy」,將設定推送至所有 Forcepoint Web Security 閘道。

使用 Forcepoint Web Security Appliance (直接設定)

如果直接在設備上設定:

  1. 登入 Forcepoint Web Security Appliance 管理介面。
  2. 依序前往「System」>「Log Server」。
  3. 按一下「新增」或「編輯」,建立或修改記錄伺服器。
  4. 請提供下列設定詳細資料:
    • 伺服器位址:輸入 Bindplane 代理程式 IP 位址。
    • 「通訊埠」:輸入 514 (或自訂通訊埠)。
    • 通訊協定:選取「TCP」或「UDP」,與 Bindplane 設定相符。
    • 格式:選取「CEF」或「Common Event Format」。
    • 設施:選取「Local0」。
  5. 在「記錄類型」下方,選取要轉送的記錄:
    • 存取記錄
    • 安全性記錄
    • 管理員記錄
  6. 按一下「套用」或「儲存」。
  7. 如果使用多部家電,請在每部家電上重複執行這項設定。

UDM 對應表

記錄欄位 UDM 對應 邏輯
action 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。
app 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。
cat security_result.category_details 如果 cat 不為空,則會對應至 category。最後,category 會對應到 security_result.category_details。
category_no security_result.detection_fields.value 如果 category_no 不為空白,則會對應至 security_result.detection_fields.value,並以 Category Number 做為鍵。
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」。
description 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 不為空白,則會對應至 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。
duration network.session_duration.seconds 如果 duration 不是空白且不是 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。
host 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。
in 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。最後,role 會對應到 target_role.name。
log_level security_result.severity 如果 severity 為 1,或 log_level 包含 info,或 message 包含 notice,則 security_result.severity 會設為 INFORMATIONAL。如果 severity 為 7,則 security_result.severity 會設為 HIGH。
loginID principal.user.userid 如果 loginID 不為空白,則會對應至 user。最後,如果 user 不為空白且不是 -,也不包含 LDAP,則會對應至 principal.user.userid。
method 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。
policy target_role.description 如果 Policy 不為空,則會對應至 policy。如果 policy 不是空白且不是 -,則會對應至 target_role.description。
Policy target_role.description 如果 Policy 不為空,則會對應至 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。
role target_role.name 如果 level 不為空值,且 role 為空值,則會對應至 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。
severity security_result.severity 如果 severity 為 1,或 log_level 包含 info,或 message 包含 notice,則 security_result.severity 會設為 INFORMATIONAL。如果 severity 為 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。
url target.url 如果 url 不為空,則會對應至 target.url。
user 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。
when 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,系統會擷取使用者字串的使用者名稱部分,並對應至 principal.user.user_display_name。
不適用 security_result.action 如果 action_msg、action 或 act 不為空白,系統會根據這些值將 sec_action 設為 ALLOW 或 BLOCK。最後,sec_action 會對應到 security_result.action。
不適用 security_result.detection_fields.key 對應 disposition 或 cn1 時,值 Disposition Number 會硬式編碼至 security_result.detection_fields.key。對應 NatRuleId 時,值 NatRuleId 會以硬式編碼方式寫入 security_result.detection_fields.key。對應 category_no 時,值 Category Number 會以硬式編碼方式寫入 security_result.detection_fields.key。
reason event.idm.read_only_udm.security_result.detection_fields 從變更記錄對應
extension event.idm.read_only_udm.target.process.file.mime_type 從變更記錄對應
filetype event.idm.read_only_udm.target.file.mime_type 從變更記錄對應
method event.idm.read_only_udm.network.http.method 從變更記錄對應
received_bytes event.idm.read_only_udm.network.received_bytes 從變更記錄對應
sent_bytes event.idm.read_only_udm.network.sent_bytes 從變更記錄對應
response_code event.idm.read_only_udm.network.http.response_code 從變更記錄對應
region event.idm.read_only_udm.principal.location.country_or_region 從變更記錄對應
protocol event.idm.read_only_udm.network.application_protocol 從變更記錄對應
sec_description event.idm.read_only_udm.security_result.description 從變更記錄對應
version event.idm.read_only_udm.network.http.user_agent 從變更記錄對應
city event.idm.read_only_udm.principal.location.city 從變更記錄對應
turl event.idm.read_only_udm.target.url 從變更記錄對應
userid event.idm.read_only_udm.principal.user.userid 從變更記錄對應
email event.idm.read_only_udm.principal.user.email_addresses 從變更記錄對應
_action event.idm.read_only_udm.security_result.action 從變更記錄對應
descrip event.idm.read_only_udm.metadata.description 從變更記錄對應
status event.idm.read_only_udm.security_result.action_details 從變更記錄對應
appname event.idm.read_only_udm.principal.application 從變更記錄對應
tip event.idm.read_only_udm.target.ip 從變更記錄對應
tip event.idm.read_only_udm.target.asset.ip 從變更記錄對應
pip event.idm.read_only_udm.principal.ip 從變更記錄對應
pip event.idm.read_only_udm.principal.asset.ip 從變更記錄對應
p_ip event.idm.read_only_udm.principal.ip 從變更記錄對應
p_ip event.idm.read_only_udm.principal.asset.ip 從變更記錄對應
log_timestamp event.idm.read_only_udm.metadata.event_timestamp 從變更記錄對應
port event.idm.read_only_udm.target.port 從變更記錄對應
status event.idm.read_only_udm.security_result.action 從變更記錄對應
dhost event.idm.read_only_udm.target.hostname 從變更記錄對應
rt event.timestamp 從變更記錄對應
host-url principal.url 從變更記錄對應
cs-uri target.url 從變更記錄對應
cs-uri-query" , "time-taken" , "filter-category" , "cs-uri-path" , "cs-uri-extension" and "rs_content_type additional.fields 從變更記錄對應
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_referer network.http.referral_url 從變更記錄對應
cs-host target.hostname 從變更記錄對應

變更記錄

查看這個剖析器的變更記錄

還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求解答。