收集 F5 BIG-IP ASM 記錄

支援的國家/地區:

本文說明如何使用 Bindplane,將 F5 BIG-IP Application Security Manager (ASM) 記錄檔擷取至 Google Security Operations。剖析器會處理各種記錄格式 (syslog、CSV、CEF 等),並將其正規化為 UDM。它會使用 grok 模式和鍵/值擷取功能剖析欄位、使用 XML 篩選功能取得違規詳細資料、使用條件邏輯進行事件分類和嚴重程度對應,並將擷取的欄位合併至 UDM 結構。

事前準備

  • 確認您有 Google Security Operations 執行個體。
  • 確認您使用的是 Windows 2016 以上版本,或是搭載 systemd 的 Linux 主機。
  • 如果透過 Proxy 執行,請確認防火牆通訊埠已開啟。
  • 確認您具備 F5 BIG-IP ASM 的特殊權限。

取得 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: F5_ASM
                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
    

在 F5 BIG-IP ASM 上設定遠端記錄

  1. 登入 ASM 控制台網頁版使用者介面。
  2. 依序前往「安全性」>「事件記錄」>「記錄設定檔」
  3. 點選「建立」
  4. 請提供下列設定詳細資料:

    • 設定檔名稱:輸入設定檔專屬名稱。
    • 選取「應用程式安全性」
    • 在「應用程式安全性」分頁中,選取「進階」 (如需其他設定)。
    • 儲存目的地:選取「遠端儲存空間」
    • 記錄格式:選取 Common Event Format (CEF)。
    • 清除「本機存放區」
    • 通訊協定:選取「UDP」或「TCP」 (視 Bindplane 代理程式設定而定)。
    • 伺服器位址:輸入 Bindplane 代理程式 IP 位址。
    • 通訊埠:預設選取 514。根據 Bindplane 代理程式設定更新連接埠設定。
    • 按一下「新增」
    • 選取「保證記錄」
    • 選取「回報偵測到的異常狀況」
    • 設施:選取 LOG_LOCAL6 (您可以視需要選取已記錄流量的設施類別,可能值為 LOG_LOCAL0LOG_LOCAL7)。
  5. 按一下「完成」

將記錄設定檔與安全性政策建立關聯

  1. 依序按一下「Local Traffic」>「Virtual Servers」
  2. 按一下安全政策使用的虛擬伺服器名稱。
  3. 從「安全性」選單中選取「政策」
  4. 確認「應用程式安全防護政策」設定已啟用,且「政策」已設為您要的安全防護政策。
  5. 確認「記錄設定檔」設定已設為「啟用」
  6. 從「可用」清單中選取要用於安全性政策的設定檔,然後移至「已選取」清單。
  7. 按一下「更新」

UDM 對應表

記錄欄位 UDM 對應 邏輯
act security_result.action 如果 actblocked,則會對應至 BLOCK。如果 actpassedlegal,則對應至 ALLOW。如果 act 包含 alerted,則會對應至 QUARANTINE。否則,預設值為 Splunk 格式的 ALLOW。
app network.application_protocol 如果原始記錄中存在 HTTPS,則直接對應至 HTTPS。
attack_type security_result.category_detailsmetadata.description 與其他欄位搭配使用,可判斷 security_result.category。如果沒有其他說明,就會成為活動說明。如果是 Splunk 格式的記錄,系統會使用這項資訊判斷類別和摘要 (如果 violations 為空白)。
client_ip principal.ipprincipal.asset.ip 直接對應至主體 IP。
cn1 network.http.response_code 直接對應至 HTTP 回應代碼。
cn2 security_result.severity_details 直接對應至安全性結果嚴重程度詳細資料。與 response_code 搭配使用,判斷事件是否為快訊。
column1 principal.ipprincipal.asset.ip 對應至特定 CSV 格式記錄的委託人 IP。
column2 target.port 對應特定 CSV 格式記錄的目標連接埠。
column3 target.iptarget.asset.ip 特定 CSV 格式記錄的目標 IP 對應。
column4 security_result.severity 對應特定 CSV 格式記錄檔的安全結果嚴重程度。值 InformationInformational04 會對應到「INFORMATIONAL」。Warning13 會對應到 MEDIUM。Error2 會對應到 ERROR。CriticalCRITICALcritical 對應到 CRITICAL。
column7 security_result.detection_fieldsnetwork.http.response_code 內含 XML 資料。系統會擷取 request-violations 中的 viol_name,並以鍵 Request Violation Name_index 新增為偵測欄位。系統會擷取 response_violations 中的 viol_name,並以鍵 Response Violation Name_index 新增為偵測欄位。response_code 內的 response_violations 會對應至 network.http.response_code
column8 security_result.rule_name 對應特定 CSV 格式記錄的安全結果規則名稱。
cs1 security_result.rule_name 直接對應至安全性結果規則名稱。
cs2 security_result.summary 直接對應至安全性結果摘要。
cs5 principal.ipprincipal.asset.ipadditional.fields 如果 cs5 包含 JNDI LDAP 網址,系統會將其新增為額外欄位,並以 JNDI_LDAP_URL 做為鍵。否則,如果包含以半形逗號分隔的 IP,系統會將 principal_ip 以外的 IP 新增為額外主體 IP。
cs6 principal.location.country_or_region 直接對應至主要地點的國家/地區。
data network.session_idnetwork.sent_bytesnetwork.tls.version 如果存在,系統會剖析為 JSON,以擷取 sessionidbits (對應至 sent_bytes) 和 version
date_time metadata.event_timestamp 解析並轉換為正確格式後,直接對應至事件時間戳記。
dest_ip target.iptarget.asset.ip 直接對應至目標 IP。
dest_port target.port 直接對應至目標連接埠。
dhost target.hostname 直接對應至目標主機名稱。
dpt target.port 直接對應至目標連接埠。
dst target.ip 直接對應至目標 IP。
dvc intermediary.ip 直接對應至中介 IP。
dvchost target.hostnameintermediary.hostname 直接對應至目標主機名稱和中介主機名稱。
errdefs_msgno additional.fields 以金鑰 errdefs_msgno 新增為額外欄位。
externalId additional.fields 以金鑰 Support_Id 新增為額外欄位。
f5_host target.hostnameintermediary.hostname 直接對應至目標主機名稱和中介主機名稱。
geo_info principal.location.country_or_regionsecurity_result.detection_fields 對應至主要地點的國家/地區。也新增為偵測欄位,金鑰為 geo_info
host target.hostname 直接對應至目標主機名稱。
ids additional.fields 剖析為以半形逗號分隔的支援 ID 清單。每個 ID 都會新增至以鍵 supportid 為值的清單值額外欄位。
ip_addr_intelli security_result.detection_fields 以鍵 ip_addr_intelli 新增為偵測欄位。
ip_client principal.ip 直接對應至主體 IP。
ip_route_domain principal.ipprincipal.asset.ip 系統會擷取 IP 部分,並對應至主體 IP。
irule security_result.rule_name 直接對應至安全性結果規則名稱。
irule-version security_result.rule_version 直接對應至安全性結果規則版本。
level security_result.severitysecurity_result.severity_details 用於判斷安全性結果的嚴重程度。errorwarning 地圖設為「高」。notice 會對應至中等價值資源。informationinfo地圖,原始值也會對應至 severity_details
logtime metadata.event_timestamp 直接對應剖析後的事件時間戳記。
management_ip_addressmanagement_ip_address_2 intermediary.ip 直接對應至中介 IP。
method network.http.method 直接對應至 HTTP 方法。
msg security_result.summarymetadata.description 直接對應部分記錄格式的安全性結果摘要。如果沒有其他說明,就會成為活動說明。
policy_name security_result.about.resource.namesecurity_result.rule_name 直接對應至安全結果資源名稱或規則名稱。
process target.application 直接對應至目標應用程式。
process_id principal.process.pid 直接對應至主要程序 ID。
protocol network.application_protocolnetwork.ip_protocolapp_protocol 視記錄格式而定,直接對應至應用程式通訊協定或 IP 通訊協定。
proxy_id security_result.rule_id 直接對應至安全性結果規則 ID。
query_string additional.fields 以金鑰 query_string 新增為額外欄位。
referrer network.http.referral_url 直接對應至 HTTP 參照網址。
req_method network.http.method 直接對應至 HTTP 方法。
req_status security_result.actionsecurity_result.action_detailssecurity_result.detection_fields 如果 blockedsecurity_result.action 對應至 BLOCK,如果 passedlegal,則對應至 ALLOW。如果包含 alerted,則對應至 QUARANTINE。原始值也會對應至 action_details,並以索引鍵 req_status 新增為偵測欄位。
request target.url 直接對應至目標網址。
requestMethod network.http.method 直接對應至 HTTP 方法。
resp security_result.detection_fields 以鍵 resp 新增為偵測欄位。
resp_code network.http.response_code 直接對應至 HTTP 回應代碼。
response security_result.summary 直接對應至安全性結果摘要。
response_code network.http.response_code 直接對應至 HTTP 回應代碼。
route_domain additional.fields 以金鑰 route_domain 新增為額外欄位。
rt metadata.event_timestamp 直接對應剖析後的事件時間戳記。
sev security_result.severitysecurity_result.severity_details 用於判斷安全性結果的嚴重程度。ERROR 會對應至 ERROR。原始值也會對應至 severity_details
severity security_result.severitysecurity_result.severity_details 用於判斷安全性結果的嚴重程度。Informational 對應到 LOW,Errorwarning 對應到 HIGH,critical 對應到 CRITICAL,notice 對應到 MEDIUM,informationinfo 對應到 LOW。原始值也會對應至 severity_details
sig_ids security_result.rule_id 直接對應至安全性結果規則 ID。
sig_names security_result.rule_name 直接對應至安全性結果規則名稱。
snat_ip principal.nat_ip 直接對應至主體 NAT IP。
snat_port principal.nat_port 直接對應至主要 NAT 連接埠。
src principal.ipprincipal.asset.ip 直接對應至主體 IP。
spt principal.port 直接對應至主要通訊埠。
sub_violates security_result.about.resource.attribute.labels 以標籤形式新增至安全結果資源屬性,並使用鍵 Sub Violations
sub_violations security_result.about.resource.attribute.labels 以標籤形式新增至安全結果資源屬性,並使用鍵 Sub Violations
summary security_result.summary 直接對應至安全性結果摘要。
support_id metadata.product_log_id support_id - 為前置字元,並對應至產品記錄 ID。
suid network.session_id 直接對應至網路工作階段 ID。
suser principal.user.userid 直接對應至主要使用者 ID。
timestamp metadata.event_timestamp 解析並轉換為正確格式後,直接對應至事件時間戳記。
unit_host principal.hostnameprincipal.asset.hostname 直接對應至主要主機名稱。
uri principal.url 直接對應至主要網址。
user_id principal.user.userid 直接對應至主要使用者 ID。
user_name principal.user.user_display_name 直接對應至主要使用者顯示名稱。
username principal.user.userid 直接對應至主要使用者 ID。
useragent network.http.user_agentnetwork.http.parsed_user_agent 直接對應至 HTTP 使用者代理程式。也會剖析並對應至剖析的使用者代理程式。
virtualserver network.tls.client.server_name 直接對應至 TLS 用戶端伺服器名稱。
violate_details security_result.detection_fieldsnetwork.http.response_code 內含 XML 資料。系統會擷取 request-violations 中的 viol_name,並以鍵 Request Violation Name_index 新增為偵測欄位。系統會擷取 response_violations 中的 viol_name,並以鍵 Response Violation Name_index 新增為偵測欄位。response_code 內的 response_violations 會對應至 network.http.response_code
violate_rate security_result.detection_fields 以鍵 violate_rate 新增為偵測欄位。
violation_rating security_result.about.resource.attribute.labels 以標籤形式新增至安全結果資源屬性,並使用鍵 Violations Rating
violations security_result.description 直接對應安全性結果說明。如果是 Splunk 格式的記錄檔,系統會使用這個欄位判斷摘要 (如有)。
virus_name security_result.threat_name 直接對應至安全結果威脅名稱。
vs_name network.tls.client.server_name 直接對應至 TLS 用戶端伺服器名稱。
websocket_direction network.direction 如果 clientToServer 對應至 INBOUND,如果 ServerToclient,則對應至 OUTBOUND。
websocket_message_type security_result.detection_fields 以鍵 WebsocketMessageType 新增為偵測欄位。
x_fwd_hdr_val principal.ipprincipal.asset.ip 直接對應至主體 IP。

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