收集 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

  1. 使用管理員憑證登入 BIG-IP 設定公用程式入口網站。
  2. 依序選取「Main」>「System」>「Logs」>「Configuration」>「Remote logging」
  3. 在「屬性」部分執行下列操作:

    • 在「Remote IP」欄位中,輸入 Google Security Operations 轉送器 IP 位址。
    • 在「Remote port」(遠端通訊埠) 欄位中,輸入高通訊埠編號。
  4. 按一下「新增」

  5. 按一下「更新」

    如果是 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,請完成下列工作:

建立遠端記錄伺服器集區

  1. 在「主要」分頁中,依序選取「DNS」>「傳送」>「負載平衡」>「集區或本機流量」>「集區」
  2. 在隨即顯示的「集區清單」視窗中,按一下「建立」
  3. 在隨即顯示的「New pool」(新集區) 視窗中,於「Name」(名稱) 欄位中為集區提供專屬名稱。
  4. 在「New members」(新增成員) 部分,為要納入集區的每個遠端記錄伺服器新增 IP 位址:
    1. 在「地址」欄位中,輸入 Google Security Operations 轉寄者 IP 位址,或從節點清單中選取節點位址。
    2. 在「服務埠」欄位中,輸入服務號碼或從清單中選取服務名稱。確認您已設定正確的遠端記錄通訊埠。
  5. 按一下「新增」,然後按一下「完成」

建立遠端高速記錄目的地

  1. 在「Main」分頁中,依序選取「System」>「Logs」> 「Configuration」>「Log destinations」
  2. 在隨即顯示的「記錄目的地」視窗中,按一下「建立」
  3. 在「名稱」欄位中,為這個目的地提供專屬且可識別的名稱。
  4. 在「Type」(類型) 清單中,選取「Remote high-speed log」(遠端高速記錄)
  5. 在「集區名稱」清單中,選取要讓 BIG-IP 系統傳送記錄訊息的遠端記錄伺服器集區。
  6. 在「通訊協定」清單中,選取高速記錄集區成員使用的通訊協定。
  7. 按一下「完成」

建立格式化的遠端高速記錄目的地

  1. 在「Main」分頁中,依序選取「System」>「Logs」> 「Configuration」>「Log Destinations」
  2. 在隨即顯示的「記錄目的地」視窗中,按一下「建立」
  3. 在「名稱」欄位中,為這個目的地提供專屬且可識別的名稱。
  4. 在「Type」(類型) 清單中,選取「Remote syslog」(遠端系統記錄) 做為格式化記錄目的地。 BIG-IP 系統現在已設定完成,可將格式化的文字字串傳送至記錄伺服器。
  5. 在「類型」清單中,選取記錄的格式。
  6. 在「Forward To」(轉送至) 分頁中,選取「High-speed log destination」(高速記錄目的地) 清單,然後選取指向遠端系統記錄伺服器集區的目的地,BIG-IP 系統會將記錄訊息傳送至該目的地。
  7. 按一下「完成」

建立發布商

  1. 在「主要」分頁中,依序選取「系統」>「記錄」>「設定」>「記錄發布者」
  2. 在隨即顯示的「記錄發布者」視窗中,按一下「建立」
  3. 在「名稱」欄位中,為發布商提供專屬且可識別的名稱。
  4. 在「記錄發布者」清單中,從可用清單選取先前建立的目的地。
  5. 如要將目的地移至所選清單,請按一下「<< 移至」
  6. 如果您使用格式化目的地,請選取與記錄伺服器相符的新建目的地,例如「遠端 Syslog」、「Splunk」或「ArcSight」
  7. 按一下「完成」

建立自訂 DNS 記錄設定檔

  1. 在「Main」分頁中,依序選取「DNS」>「Delivery」>「Profiles」>「Other」「DNS Logging」或「Local traffic」>「Profiles」>「Others」>「DNS logging」
  2. 在隨即顯示的「DNS Logging profile list」(DNS 記錄設定檔清單) 視窗中,按一下「Create」(建立)
  3. 在「名稱」欄位中,為設定檔提供專屬名稱。
  4. 在「記錄發布者」清單中,選取 BIG-IP 系統傳送 DNS 記錄項目的目的地。
  5. 如要讓 BIG-IP 系統:
    • 如要記錄所有 DNS 查詢,請在「記錄查詢」設定中,確認已選取啟用核取方塊。
    • 如要記錄所有 DNS 回應,請在「記錄回應」設定中,選取已啟用的核取方塊。
    • 如要在記錄訊息中加入用戶端傳送的查詢 ID,請在「Include query ID」(加入查詢 ID) 設定中勾選啟用核取方塊。
  6. 按一下「完成」

將 DNS 記錄設定檔新增至接聽程式

  1. 在「Main」分頁中,依序選取「DNS」>「Delivery」> 「Listeners」>「DNS listener」
  2. 在「Service」(服務) 區段中,從「DNS profile」(DNS 設定檔) 清單中,選取您先前設定的 DNS 設定檔。
  3. 按一下「更新」

設定 Google Security Operations 轉送器,以便擷取 F5 BIG-IP APM 記錄

  1. 依序前往「SIEM 設定」>「轉送器」
  2. 按一下「新增轉寄者」
  3. 在「轉送器名稱」欄位中,輸入轉送器的專屬名稱。
  4. 按一下「提交」。轉送器新增完成後,系統會顯示「新增收集器設定」視窗。
  5. 在「收集器名稱」欄位中輸入名稱。
  6. 選取「F5 BIGIP Access Policy Manager」做為「記錄類型」
  7. 選取「Syslog」做為「收集器類型」
  8. 設定下列必要輸入參數:
    • 「通訊協定」:指定通訊協定。
    • 地址:指定收集器所在的目標 IP 位址或主機名稱,以及 Syslog 資料的地址。
    • 通訊埠:指定收集器所在位置的目標通訊埠,並監聽系統記錄檔資料。
  9. 按一下「提交」

如要進一步瞭解 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_ipdestination_ip 存在:NETWORK_CONNECTION
如果 principal_ipprincipal_hostname 存在:STATUS_UPDATE
否則:GENERIC_EVENT 硬式編碼為「BIGIP_APM」。硬式編碼為「F5」。如果 result 欄位為「failed」,則值會設為「BLOCK」。

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