收集 Forcepoint Proxy 記錄

支援的國家/地區:

本文說明如何使用 Bindplane,將 Forcepoint Proxy 記錄擷取至 Google Security Operations。剖析器會先清除輸入的記錄訊息,然後使用 grok 模式和規則運算式擷取鍵/值組合。然後,系統會根據特定條件和欄位值,將擷取的欄位對應至統一資料模型 (UDM),處理各種記錄格式和特殊情況,確保資料呈現方式一致。

事前準備

  • 確認您有 Google Security Operations 執行個體。
  • 確認您使用的是 Windows 2016 以上版本,或是搭載 systemd 的 Linux 主機。
  • 如果透過 Proxy 執行,請確認防火牆通訊埠已開啟。
  • 確認您具備 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. 開啟具有根層級或 sudo 權限的終端機。
  2. 執行下列指令:

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

其他安裝資源

設定 Bindplane 代理程式,擷取系統記錄檔並傳送至 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. /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

  1. 登入 Forcepoint 控制台
  2. 依序前往「網站」>「設定」>「一般」
  3. 按一下「SIEM integration」
  4. 勾選「Enable SIEM integration for this policy server」(為這個政策伺服器啟用 SIEM 整合功能) 核取方塊。
  5. 提供下列設定詳細資料:
    • IP 位址或主機名稱:輸入 Bindplane 代理程式的 IP 位址。
    • 通訊埠編號:輸入在 Bindplane 代理程式上設定的通訊埠編號,例如 514
    • 傳輸通訊協定:選取 UDP 通訊協定。
    • SIEM 格式:選取「Syslog/CEF (Arcsight)」
  6. 按一下 [確定]。
  7. 按一下「儲存並部署」

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。否則,如果應用程式不為空白,且不包含 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。
cat 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 如果主機不是空白,則會對應至 src。最後,src 會對應至 principal.ip。
http_method network.http.method 如果 requestMethod 不為空白,則會對應至 http_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_host 與 int_ip 不同,則會對應至 intermediary.hostname。
int_ip intermediary.ip 如果 dvchost 不是空白,則會對應至 int_ip。最後,如果 int_ip 是有效的 IP 位址,則會對應至 intermediary.ip,否則會對應至 intermediary.hostname。
level target_role.name 如果層級不為空白,但角色為空白,系統會將層級對應至角色。最後,角色會對應至 target_role.name。
log_level security_result.severity 如果嚴重性為 1、log_level 包含 info,或 message 包含 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。否則,如果方法不為空白,則會對應至 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 如果「政策」不為空白,則會對應至政策。如果政策不為空白且不是 -,則會對應至 target_role.description。
政策 target_role.description 如果「政策」不為空白,則會對應至政策。如果政策不為空白且不是 -,則會對應至 target_role.description。
product_event metadata.product_event_type 如果產品不為空,則會對應至 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 如果層級不為空白,但角色為空白,系統會將層級對應至角色。最後,角色會對應至 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,或 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。如果主機不是空白,則會對應至 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 不是空白,則會對應至使用者。最後,如果使用者不為空白且不是 -,也不包含 LDAP,則會對應至 principal.user.userid。
usrName principal.user.userid 如果 loginID 不為空白,則會對應至使用者。如果 suser 不為空白,則會對應至 user。否則,如果 usrName 不是空白,則會對應至使用者。最後,如果使用者不為空白且不是 -,也不包含 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 設為 ALLOWBLOCK。最後,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,或 message 包含 notice,security_result.severity 會設為 INFORMATIONAL。如果嚴重性為 7,security_result.severity 會設為 HIGH
target_role.description 如果「政策」不為空白,則會對應至政策。如果政策不為空白且不是 -,則會對應至 target_role.description。
target_role.name 如果層級不為空白,但角色為空白,系統會將層級對應至角色。最後,角色會對應至 target_role.name。
category_no security_result.detection_fields.value 如果 category_no 不是空白,則會對應至 security_result.detection_fields.value,並以 Category Number 為鍵。

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