收集 F5 VPN 記錄
支援的國家/地區:
Google SecOps
SIEM
本文說明如何使用 Bindplane,將 F5 VPN 記錄擷取至 Google Security Operations。剖析器會從記錄中擷取與安全性相關的資訊。 它會使用規則運算式識別及剖析時間戳記、IP 位址和主機名稱等重要欄位,然後將這些資料結構化為 Google SecOps 統一資料模型 (UDM) 格式,以供分析。
事前準備
請確認您已完成下列事前準備事項:
- Google SecOps 執行個體
- Windows 2016 以上版本,或搭載
systemd
的 Linux 主機 - 如果透過 Proxy 執行,防火牆通訊埠已開啟
- F5 BIG-IP APM (Access Policy Manager) 的特殊權限
取得 Google SecOps 擷取驗證檔案
- 登入 Google SecOps 控制台。
- 依序前往「SIEM 設定」>「收集代理程式」。
- 下載擷取驗證檔案。將檔案安全地儲存在要安裝 Bindplane 的系統上。
取得 Google SecOps 客戶 ID
- 登入 Google SecOps 控制台。
- 依序前往「SIEM 設定」>「設定檔」。
- 複製並儲存「機構詳細資料」專區中的客戶 ID。
安裝 Bindplane 代理程式
請按照下列操作說明,在 Windows 或 Linux 作業系統上安裝 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_file_path: '/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 log_type: 'F5_VPN' raw_log_field: body ingestion_labels: 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
為 F5 BIG-IP APM v11.x 以上版本設定 Syslog
- 使用 CLI 或 SSH 登入 F5 BIG-IP APM。
輸入下列指令,新增系統記錄伺服器:
tmsh syslog remote server {<Name> {host <bindplane-ip> remote-port <bindplane-port>}}
請務必取代下列參數:
<Name>
:輸入 F5 BIG-IP APM 來源的名稱 (例如BIGIP_APM
)。<bindplane-ip>
:輸入 Bindplane 代理程式 IP 位址。<bindplane-port>
:輸入 Bindplane 代理程式的通訊埠號碼。
輸入下列指令來儲存變更:
tmsh save sys config partitions all
UDM 對應表
記錄欄位 | UDM 對應 | 邏輯 |
---|---|---|
cmd_data | principal.process.command_line | 系統會從 msg 欄位擷取值 |
errdefs_msgno | additional.fields.errdefs_msgno.string_value | 系統會從 msg 欄位擷取值 |
event_time | metadata.event_timestamp | 系統會剖析該值並轉換為時間戳記 |
主機名稱 | principal.hostname、observer.hostname、principal.asset.hostname、observer.asset.hostname、hostip | 系統會從郵件欄位擷取值,並用於填入 UDM 中的主機名稱欄位。也用於填入 hostip 欄位 |
msg | security_result.description | 這個值會從訊息欄位擷取,並用於填入 security_result 物件中的說明欄位 |
prin_ip | principal.ip、principal.asset.ip | 系統會從郵件欄位擷取值,並用於填入 UDM 中的 IP 位址欄位 |
additional.fields.Canonical_Info.string_value | 這個值衍生自記錄訊息 | |
additional.fields.IDP.string_value | 這個值衍生自記錄訊息 | |
additional.fields.Plugin_Support.string_value | 這個值衍生自記錄訊息 | |
additional.fields.SMB Stage.string_value | 這個值衍生自記錄訊息 | |
additional.fields.SP.string_value | 這個值衍生自記錄訊息 | |
additional.fields.Timezone.string_value | 這個值衍生自記錄訊息 | |
additional.fields.Tunnel Type.string_value | 這個值衍生自記錄訊息 | |
additional.fields.UI_Mode.string_value | 這個值衍生自記錄訊息 | |
additional.fields.Version.string_value | 這個值衍生自記錄訊息 | |
additional.fields.from_rule_item.string_value | 這個值衍生自記錄訊息 | |
additional.fields.policy_result.string_value | 這個值衍生自記錄訊息 | |
additional.fields.ppp_id.string_value | 這個值衍生自記錄訊息 | |
additional.fields.resource.string_value | 這個值衍生自記錄訊息 | |
additional.fields.rule.string_value | 這個值衍生自記錄訊息 | |
additional.fields.server_vip_ip.string_value | 這個值衍生自記錄訊息 | |
additional.fields.server_vip_name.string_value | 這個值衍生自記錄訊息 | |
additional.fields.to_rule_item.string_value | 這個值衍生自記錄訊息 | |
additional.fields.tunnel_resource.string_value | 這個值衍生自記錄訊息 | |
metadata.description | 這個值衍生自記錄訊息 | |
metadata.event_type | 部分事件的值會以硬式編碼方式加到剖析器程式碼中,其他事件的值則會從記錄訊息衍生而來 | |
metadata.log_type | 此值會設為批次類型 | |
metadata.product_event_type | 這個值衍生自記錄訊息 | |
metadata.product_name | 值是以硬式編碼方式寫死在剖析器程式碼中 | |
metadata.vendor_name | 值是以硬式編碼方式寫死在剖析器程式碼中 | |
network.application_protocol | 這個值衍生自記錄訊息 | |
network.direction | 這個值衍生自記錄訊息 | |
network.http.method | 這個值衍生自記錄訊息 | |
network.http.parsed_user_agent | 這個值衍生自 network.http.user_agent 欄位 | |
network.http.referral_url | 這個值衍生自記錄訊息 | |
network.http.response_code | 這個值衍生自記錄訊息 | |
network.http.user_agent | 這個值衍生自記錄訊息 | |
network.ip_protocol | 這個值衍生自記錄訊息 | |
network.received_bytes | 這個值衍生自記錄訊息 | |
network.sent_bytes | 這個值衍生自記錄訊息 | |
network.session_id | 這個值衍生自記錄訊息 | |
network.tls.cipher | 這個值衍生自記錄訊息 | |
network.tls.version | 這個值衍生自記錄訊息 | |
observer.asset.hostname | 這個值會設為主機名稱欄位 | |
observer.asset.ip | 這個值會設為 hostip 欄位 | |
observer.hostname | 這個值會設為主機名稱欄位 | |
observer.ip | 這個值會設為 hostip 欄位 | |
principal.application | 這個值衍生自記錄訊息 | |
principal.asset.hostname | 這個值會設為主機名稱欄位 | |
principal.asset.ip | 如果存在 hostip 欄位或 prin_ip 欄位,該值會設為這些欄位的值 | |
principal.asset.product_object_id | 這個值衍生自記錄訊息 | |
principal.hostname | 這個值會設為主機名稱欄位 | |
principal.ip | 如果存在 hostip 欄位或 prin_ip 欄位,該值會設為這些欄位的值 | |
principal.location.country_or_region | 這個值衍生自記錄訊息 | |
principal.platform | 這個值衍生自記錄訊息 | |
principal.port | 這個值衍生自記錄訊息 | |
principal.process.command_line | 這個值衍生自記錄訊息 | |
principal.process.pid | 這個值衍生自記錄訊息 | |
principal.resource.name | 這個值衍生自記錄訊息 | |
principal.resource.type | 部分事件的值會以硬式編碼方式加到剖析器程式碼中,其他事件的值則會從記錄訊息衍生而來 | |
principal.user.email_addresses | 這個值衍生自記錄訊息 | |
principal.user.userid | 這個值衍生自記錄訊息 | |
security_result.action | 這個值衍生自記錄訊息 | |
security_result.description | 這個值衍生自記錄訊息 | |
security_result.rule_name | 這個值衍生自記錄訊息 | |
security_result.severity | 這個值衍生自記錄訊息 | |
security_result.severity_details | 這個值衍生自記錄訊息 | |
security_result.summary | 這個值衍生自記錄訊息 | |
src.ip | 這個值衍生自記錄訊息 | |
src.location.country_or_region | 這個值衍生自記錄訊息 | |
src.port | 這個值衍生自記錄訊息 | |
target.asset.hostname | 這個值衍生自記錄訊息 | |
target.asset.ip | 這個值衍生自記錄訊息 | |
target.hostname | 這個值衍生自記錄訊息 | |
target.ip | 這個值衍生自記錄訊息 | |
target.port | 這個值衍生自記錄訊息 | |
target.process.command_line | 這個值衍生自記錄訊息 | |
target.process.pid | 這個值衍生自記錄訊息 | |
target.resource.id | 這個值衍生自記錄訊息 | |
target.url | 這個值衍生自記錄訊息 | |
target.user.userid | 這個值衍生自記錄訊息 |
還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求答案。