收集 Cloudflare WAF 記錄

剖析器版本:6.0

支援的國家/地區:

這個剖析器會從 Cloudflare Web Application Firewall (WAF) JSON 記錄檔中擷取欄位,然後轉換並對應至統合式資料模型 (UDM)。這個外掛程式會處理各種 Cloudflare 動作,並在將輸出內容結構化為 UDM 格式前,使用中繼資料和網路資訊擴充資料。

事前準備

請確認您已完成下列事前準備事項:

  • Google SecOps 執行個體。
  • 「 Google Cloud」的特殊存取權。
  • Cloudflare Enterprise 方案。
  • 具備 Cloudflare 的特殊權限。詳情請參閱 Cloudflare。

建立 Google Cloud 儲存空間 bucket

  1. 登入 Google Cloud 控制台
  2. 前往「Cloud Storage Buckets」(Cloud Storage bucket) 頁面。

    前往「Buckets」(值區) 頁面

  3. 點選「建立」。

  4. 設定 bucket:

    • 名稱:輸入符合 bucket 名稱規定的不重複名稱 (例如 cloudflare-waf)。
    • 選擇資料的儲存位置:選取位置。
    • 為資料選擇儲存空間級別:選取 bucket 的預設儲存空間級別,或選取 Autoclass,讓系統自動管理儲存空間級別。
    • 選擇如何控制物件的存取權:選取「否」來強制禁止公開存取,並為 bucket 的物件選取存取控管模式。
    • 儲存空間級別:根據需求選擇 (例如「Standard」)。
  5. 點選「建立」。

將 bucket 權限授予 Cloudflare IAM 使用者

  1. 在 Google Cloud中,依序前往「Storage」>「Browser」>「Bucket」>「Permissions」。
  2. 新增具有「Storage 物件管理員」權限的帳戶 logpush@cloudflare-data.iam.gserviceaccount.com 。

使用 Cloudflare UI 建立 WAF 記錄的 Logpush 工作

  1. 登入 Cloudflare。
  2. 依序前往「Analytics & Logs」(數據分析與記錄檔) >「Logpush」(記錄檔推送)。
  3. 選取「Create a Logpush job」(建立 Logpush 工作)。
  4. 在「選取目的地」中,選擇「儲存空間」Google Cloud 。
  5. 輸入下列目的地詳細資料:
    • Bucket: Google Cloud 儲存空間 bucket 名稱
    • 路徑:儲存容器中的 Bucket 位置
    • 選取「將記錄檔整理到每日子資料夾」
  6. 按一下「繼續」。
。
  1. 選取要推送至儲存空間的「Security (WAF)」資料集。
  2. 設定記錄推送作業:
    • 輸入工作名稱。
    • 在「如果記錄檔相符」下方,您可以選取要納入或從記錄檔中移除的事件。詳情請參閱「篩選器」。並非所有資料集都提供這個選項。
    • 在「傳送下列項目」欄位中,您可以選擇將所有記錄推送至儲存目的地,或選擇要推送的記錄。
  3. 按一下「提交」。

設定動態饋給

如要設定動態消息,請按照下列步驟操作:

  1. 依序前往「SIEM 設定」>「動態饋給」。
  2. 按一下「新增動態饋給」。
  3. 在下一個頁面中,按一下「設定單一動態饋給」。
  4. 在「動態饋給名稱」欄位中,輸入動態饋給的名稱 (例如「Cloudflare WAF Logs」)。
  5. 選取「Google Cloud Storage V2」做為「來源類型」。
  6. 選取「Cloudflare WAF」做為「記錄類型」。
  7. 按一下「取得服務帳戶」。
  8. 點選「下一步」。
  9. 指定下列輸入參數的值:

    • 儲存空間 Bucket URI:Cloud Storage 網址。
    • 來源刪除選項:根據偏好選取刪除選項。
  10. 點選「下一步」。

  11. 在「Finalize」(完成) 畫面中檢查新的動態饋給設定,然後按一下「Submit」(提交)。

UDM 對應表

記錄欄位 UDM 對應 邏輯
Action security_result.action_details 原始記錄中的 Action 值會直接指派給這個 UDM 欄位。
Action security_result.action 這個欄位的值是從原始記錄的 Action 欄位衍生而來。如果 Action 為「allow」,UDM 欄位會設為 ALLOW。如果 Action 是「challengeSolved」、「jschallengeSolved」、「managedchallengenoninteractivesolved」或「managedchallengeinteractivesolved」,UDM 欄位會設為 ALLOW_WITH_MODIFICATION。如果 Action 是「drop」、「block」或「connectionclose」,UDM 欄位會設為 BLOCK。如果 Action 是「challengefailed」或「jschallengefailed」,系統會將 UDM 欄位設為 FAIL。否則會設為 UNKNOWN_ACTION。
ClientASN network.asn 原始記錄中的 ClientASN 值會轉換為字串,然後直接指派給這個 UDM 欄位。
ClientASNDescription additional.fields.key 索引鍵會靜態設為「ClientASNDescription」。
ClientASNDescription additional.fields.value.string_value 原始記錄中的 ClientASNDescription 值會直接指派給這個 UDM 欄位。
ClientCountry principal.location.country_or_region 原始記錄中的 ClientCountry 值會直接指派給這個 UDM 欄位。
ClientIP principal.ip 原始記錄中的 ClientIP 值會直接指派給這個 UDM 欄位。
ClientRefererHost intermediary.hostname 原始記錄中的 ClientRefererHost 值會直接指派給這個 UDM 欄位。
ClientRefererPath network.http.referral_url 原始記錄中的 ClientRefererPath 值會直接指派給這個 UDM 欄位。
ClientRequestHost target.hostname 原始記錄中的 ClientRequestHost 值會直接指派給這個 UDM 欄位。
ClientRequestMethod network.http.method 原始記錄中的 ClientRequestMethod 值會直接指派給這個 UDM 欄位。
ClientRequestPath target.file.full_path 原始記錄中的 ClientRequestPath 值會直接指派給這個 UDM 欄位。
ClientRequestProtocol network.application_protocol 使用 grok 擷取 ClientRequestProtocol 的通訊協定部分 (例如「HTTP/1.1」中的「HTTP」),轉換為大寫,然後指派給這個 UDM 欄位。
ClientRequestUserAgent network.http.user_agent 原始記錄中的 ClientRequestUserAgent 值會直接指派給這個 UDM 欄位。
Datetime metadata.event_timestamp 原始記錄中的 Datetime 值會剖析為 RFC 3339 時間戳記,並指派給這個 UDM 欄位。
EdgeColoCode additional.fields.key 金鑰會靜態設為「EdgeColoCode」。
EdgeColoCode additional.fields.value.string_value 原始記錄中的 EdgeColoCode 值會直接指派給這個 UDM 欄位。
EdgeResponseStatus network.http.response_code 原始記錄中的 EdgeResponseStatus 值會直接指派給這個 UDM 欄位,並轉換為整數。
Kind metadata.product_event_type 原始記錄中的 Kind 值會直接指派給這個 UDM 欄位。
Metadata.filter target.resource.attribute.labels.value 原始記錄中的 Metadata.filter 值會指派給 target.resource.attribute.labels 內標籤的 value 欄位。這個標籤的 key 會靜態設為「中繼資料篩選器」。
Metadata.type target.resource.attribute.labels.value 原始記錄中的 Metadata.type 值會指派給 target.resource.attribute.labels 內標籤的 value 欄位。這個標籤的 key 會靜態設為「中繼資料類型」。這個欄位的值是根據 ClientIP、ClientRequestHost 和 app_protocol 的存在與值推導而來。如需特定邏輯,請參閱剖析器程式碼。靜態設為「Cloudflare」。靜態設為「Cloudflare log Aggregator」。將靜態值設為「CLOUDFLARE_WAF」。
RayID metadata.product_log_id 原始記錄中的 RayID 值會直接指派給這個 UDM 欄位。
RuleID security_result.rule_id 原始記錄中的 RuleID 值會直接指派給這個 UDM 欄位。
Source security_result.rule_name 原始記錄中的 Source 值會直接指派給這個 UDM 欄位。
timestamp metadata.event_timestamp、events.timestamp 原始記錄中的 timestamp 值會直接指派給這些 UDM 欄位。

變更記錄

查看這個剖析器的變更記錄

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