收集 Forcepoint Proxy 記錄
支援的國家/地區:
Google SecOps
SIEM
本文說明如何使用 Bindplane,將 Forcepoint Proxy 記錄擷取至 Google Security Operations。剖析器會先清除輸入的記錄訊息,然後使用 grok 模式和規則運算式擷取鍵/值組合。然後,系統會根據特定條件和欄位值,將擷取的欄位對應至統一資料模型 (UDM),處理各種記錄格式和特殊情況,確保資料呈現方式一致。
事前準備
- 確認您有 Google Security Operations 執行個體。
- 確認您使用的是 Windows 2016 以上版本,或是搭載
systemd
的 Linux 主機。 - 如果透過 Proxy 執行,請確認防火牆通訊埠已開啟。
- 確認您具備 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 安裝
- 開啟具有根層級或 sudo 權限的終端機。
執行下列指令:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
其他安裝資源
- 如需其他安裝選項,請參閱這份安裝指南。
設定 Bindplane 代理程式,擷取系統記錄檔並傳送至 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 integration」。
- 勾選「Enable SIEM integration for this policy server」(為這個政策伺服器啟用 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。 |
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 設為 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 ,或 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 專業人員尋求答案。