收集 F5 BIG-IP APM 記錄
本文說明如何使用 Google Security Operations 轉送器,收集 F5 BIG-IP Access Policy Manager (APM) 記錄。
詳情請參閱「將資料擷取至 Google Security Operations」。
擷取標籤會識別剖析器,該剖析器會將原始記錄資料正規化為具結構性的 UDM 格式。本文中的資訊適用於具有 F5_BIGIP_APM
攝入標籤的剖析器。
設定 F5 BIG-IP APM
- 使用管理員憑證登入 BIG-IP 設定公用程式入口網站。
- 依序選取「Main」>「System」>「Logs」>「Configuration」>「Remote logging」。
在「屬性」部分執行下列操作:
- 在「Remote IP」欄位中,輸入 Google Security Operations 轉送器 IP 位址。
- 在「Remote port」(遠端通訊埠) 欄位中,輸入高通訊埠編號。
按一下「新增」。
按一下「更新」。
如果是 APM 記錄,則僅支援 Berkeley Software Distribution (BSD) syslog 格式。
收集器會根據 APM 中的簽章,只處理 APM 記錄。F5 BIG-IP APM 事件收集器也支援從 LTM 11.6 到 12.1.1 裝置的多執行緒記錄。
如果您使用 iRule,請採用建議的 iRule 格式。Google Security Operations 僅支援下列 iRule 格式:
# log_header_requests ################################################################################### ################################################# # Purpose: logs header information to Local Traffic log # # # # Update-Log Date By Description # Created 02/07/2020 E01961 Initial implementation # # ################################################################################### ################################################ when HTTP_REQUEST { set LogString "Client [IP::client_addr]:[TCP::client_port] -> [HTTP::host] [HTTP::uri]" log local5. "=================" log local5. "$LogString (request)" foreach aHeader [HTTP::header names] { log local5. "$aHeader: [HTTP::header value $aHeader]" } # set UserID [URI::query "?[HTTP::payload]" "UserID"] # log local0. "User $UserID attempted login from [IP::client_addr] and referer: [HTTP::header "Referer"]" # log local0. "=============================================" } when HTTP_RESPONSE { log local5. "==================" log local5. "$LogString (response) - status: [HTTP::status]" foreach aHeader [HTTP::header names] { log local5. "$aHeader: [HTTP::header value $aHeader]" } # log local0. "============================================="
設定 F5 BIG-IP DNS
如要設定 F5 BIG-IP DNS,請完成下列工作:
建立遠端記錄伺服器集區
- 在「主要」分頁中,依序選取「DNS」>「傳送」>「負載平衡」>「集區或本機流量」>「集區」。
- 在隨即顯示的「集區清單」視窗中,按一下「建立」。
- 在隨即顯示的「New pool」(新集區) 視窗中,於「Name」(名稱) 欄位中為集區提供專屬名稱。
- 在「New members」(新增成員) 部分,為要納入集區的每個遠端記錄伺服器新增 IP 位址:
- 在「地址」欄位中,輸入 Google Security Operations 轉寄者 IP 位址,或從節點清單中選取節點位址。
- 在「服務埠」欄位中,輸入服務號碼或從清單中選取服務名稱。確認您已設定正確的遠端記錄通訊埠。
- 按一下「新增」,然後按一下「完成」。
建立遠端高速記錄目的地
- 在「Main」分頁中,依序選取「System」>「Logs」> 「Configuration」>「Log destinations」。
- 在隨即顯示的「記錄目的地」視窗中,按一下「建立」。
- 在「名稱」欄位中,為這個目的地提供專屬且可識別的名稱。
- 在「Type」(類型) 清單中,選取「Remote high-speed log」(遠端高速記錄)。
- 在「集區名稱」清單中,選取要讓 BIG-IP 系統傳送記錄訊息的遠端記錄伺服器集區。
- 在「通訊協定」清單中,選取高速記錄集區成員使用的通訊協定。
- 按一下「完成」。
建立格式化的遠端高速記錄目的地
- 在「Main」分頁中,依序選取「System」>「Logs」> 「Configuration」>「Log Destinations」。
- 在隨即顯示的「記錄目的地」視窗中,按一下「建立」。
- 在「名稱」欄位中,為這個目的地提供專屬且可識別的名稱。
- 在「Type」(類型) 清單中,選取「Remote syslog」(遠端系統記錄) 做為格式化記錄目的地。 BIG-IP 系統現在已設定完成,可將格式化的文字字串傳送至記錄伺服器。
- 在「類型」清單中,選取記錄的格式。
- 在「Forward To」(轉送至) 分頁中,選取「High-speed log destination」(高速記錄目的地) 清單,然後選取指向遠端系統記錄伺服器集區的目的地,BIG-IP 系統會將記錄訊息傳送至該目的地。
- 按一下「完成」。
建立發布商
- 在「主要」分頁中,依序選取「系統」>「記錄」>「設定」>「記錄發布者」。
- 在隨即顯示的「記錄發布者」視窗中,按一下「建立」。
- 在「名稱」欄位中,為發布商提供專屬且可識別的名稱。
- 在「記錄發布者」清單中,從可用清單選取先前建立的目的地。
- 如要將目的地移至所選清單,請按一下「<< 移至」。
- 如果您使用格式化目的地,請選取與記錄伺服器相符的新建目的地,例如「遠端 Syslog」、「Splunk」或「ArcSight」。
- 按一下「完成」。
建立自訂 DNS 記錄設定檔
- 在「Main」分頁中,依序選取「DNS」>「Delivery」>「Profiles」>「Other」「DNS Logging」或「Local traffic」>「Profiles」>「Others」>「DNS logging」。
- 在隨即顯示的「DNS Logging profile list」(DNS 記錄設定檔清單) 視窗中,按一下「Create」(建立)。
- 在「名稱」欄位中,為設定檔提供專屬名稱。
- 在「記錄發布者」清單中,選取 BIG-IP 系統傳送 DNS 記錄項目的目的地。
- 如要讓 BIG-IP 系統:
- 如要記錄所有 DNS 查詢,請在「記錄查詢」設定中,確認已選取啟用核取方塊。
- 如要記錄所有 DNS 回應,請在「記錄回應」設定中,選取已啟用的核取方塊。
- 如要在記錄訊息中加入用戶端傳送的查詢 ID,請在「Include query ID」(加入查詢 ID) 設定中勾選啟用核取方塊。
- 按一下「完成」。
將 DNS 記錄設定檔新增至接聽程式
- 在「Main」分頁中,依序選取「DNS」>「Delivery」> 「Listeners」>「DNS listener」。
- 在「Service」(服務) 區段中,從「DNS profile」(DNS 設定檔) 清單中,選取您先前設定的 DNS 設定檔。
- 按一下「更新」。
設定 Google Security Operations 轉送器,以便擷取 F5 BIG-IP APM 記錄
- 依序前往「SIEM 設定」>「轉送器」。
- 按一下「新增轉寄者」。
- 在「轉送器名稱」欄位中,輸入轉送器的專屬名稱。
- 按一下「提交」。轉送器新增完成後,系統會顯示「新增收集器設定」視窗。
- 在「收集器名稱」欄位中輸入名稱。
- 選取「F5 BIGIP Access Policy Manager」做為「記錄類型」。
- 選取「Syslog」做為「收集器類型」。
- 設定下列必要輸入參數:
- 「通訊協定」:指定通訊協定。
- 地址:指定收集器所在的目標 IP 位址或主機名稱,以及 Syslog 資料的地址。
- 通訊埠:指定收集器所在位置的目標通訊埠,並監聽系統記錄檔資料。
- 按一下「提交」。
如要進一步瞭解 Google Security Operations 轉送器,請參閱「透過 Google Security Operations 使用者介面管理轉送器設定」。
如果在建立轉寄者時遇到問題,請與 Google Security Operations 支援團隊聯絡。
欄位對應參考資料
這個 F5 BIG-IP APM 剖析器會從系統記錄訊息中擷取欄位,並根據應用程式來源 (tmsh、tmm、apmd、httpd 或其他) 分類。接著,系統會將這些擷取的欄位對應至 UDM,處理各種記錄格式,並以嚴重程度、位置和使用者資訊等中繼資料擴充資料。
UDM 對應表
記錄欄位 | UDM 對應 | 邏輯 |
---|---|---|
調度應用程式資源 | principal.application | 這個值取自 grok 篩選器擷取的 application 欄位。 |
bytes_in | network.received_bytes | 這個值取自 grok 篩選器擷取的 bytes_in 欄位,並轉換為無正負號整數。 |
bytes_out | network.sent_bytes | 這個值取自 grok 篩選器擷取的 bytes_out 欄位,並轉換為無正負號整數。 |
cmd_data | principal.process.command_line | 這個值取自 kv 篩選器擷取的 cmd_data 欄位。 |
destination_ip | target.ip | 這個值取自 grok 篩選器擷取的 destination_ip 欄位。 |
destination_port | target.port | 這個值取自 grok 篩選器擷取的 destination_port 欄位,並轉換為整數。 |
資料夾 | principal.process.file.full_path | 這個值取自 kv 篩選器擷取的 folder 欄位。 |
geoCountry | principal.location.country_or_region | 這個值取自 grok 篩選器擷取的 geoCountry 欄位。 |
geoState | principal.location.state | 這個值取自 grok 篩選器擷取的 geoState 欄位。 |
inner_msg | security_result.description | 如果沒有其他具體說明,系統會從 grok 篩選器擷取的 inner_msg 欄位中取得值。 |
ip_protocol | network.ip_protocol | 這個值取自 grok 篩選器擷取的 ip_protocol 欄位。 |
principal_hostname | principal.hostname | 這個值取自 grok 篩選器擷取的 principal_hostname 欄位。 |
principal_ip | principal.ip | 這個值取自 grok 篩選器擷取的 principal_ip 欄位。 |
process_id | principal.process.pid | 這個值取自 grok 篩選器擷取的 process_id 欄位。 |
角色 | user_role.name | 這個值取自 grok 篩選器擷取的 role 欄位。如果 role 欄位包含「admin」(不區分大小寫),值會設為「ADMINISTRATOR」。 |
嚴重性 | security_result.severity_details | 這裡會儲存來自系統記錄訊息的原始值。這個值是使用條件式邏輯,從 severity 欄位衍生而來:CRITICAL -> CRITICAL ERR -> ERROR ALERT、EMERGENCY -> HIGH INFO、NOTICE -> INFORMATIONAL DEBUG -> LOW WARN -> MEDIUM |
source_ip | principal.ip | 這個值取自 grok 篩選器擷取的 source_ip 欄位。 |
source_port | principal.port | 這個值取自 grok 篩選器擷取的 source_port 欄位,並轉換為整數。 |
狀態 | security_result.summary | 這個值取自 kv 篩選器擷取的 status 欄位。 |
時間戳記 | metadata.event_timestamp、timestamp | 這個值取自 grok 篩選器擷取的 timestamp 欄位,並剖析為時間戳記物件。頂層 event 物件中的 timestamp 欄位也會取得這個值。 |
使用者 | principal.user.userid | 這個值取自 grok 篩選器擷取的 user 欄位,並移除「id\」或「ID\」前置字元。值是根據其他欄位是否存在而衍生:如果 user 存在:USER_UNCATEGORIZED 如果 source_ip 和 destination_ip 存在:NETWORK_CONNECTION 如果 principal_ip 或 principal_hostname 存在:STATUS_UPDATE 否則:GENERIC_EVENT 硬式編碼為「BIGIP_APM」。硬式編碼為「F5」。如果 result 欄位為「failed」,則值會設為「BLOCK」。 |
還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求答案。