收集 Cloudflare WAF 記錄

支援的國家/地區:

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

事前準備

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

  • Google SecOps 執行個體。
  • Google Cloud的特殊存取權。
  • Cloudflare Enterprise 方案。
  • 具備 Cloudflare 的特殊存取權。

建立 Google Cloud 儲存空間 bucket

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

    前往「Buckets」(值區) 頁面

  3. 點選「建立」

  4. 設定 bucket:

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

將值區權限授予 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. 選取「建立 Logpush 工作」
  4. 在「選取目的地」中,選擇「儲存空間」Google Cloud
  5. 輸入下列目的地詳細資料:
    • 值區: Google Cloud Storage bucket 名稱
    • 路徑:儲存容器內的值區位置
    • 選取「將記錄整理到每日子資料夾」
  6. 按一下「繼續」
  1. 選取要推送至儲存空間的「Security (WAF)」資料集。
  2. 設定記錄檔推送作業:
    • 輸入「工作名稱」
    • 在「如果記錄相符」下方,您可以選取要納入和/或從記錄中移除的事件。詳情請參閱「篩選器」。並非所有資料集都有這個選項。
    • 在「傳送下列項目」欄位中,您可以選擇將所有記錄檔推送至儲存目的地,或選擇要推送的記錄檔。
  3. 按一下「提交」

設定動態饋給

在 Google SecOps 平台中,有兩種不同的進入點可設定動態饋給:

  • 「SIEM 設定」>「動態消息」
  • 內容中心 > 內容包

依序前往「SIEM 設定」>「動態饋給」,設定動態饋給

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

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

    • GCS URI:Cloud Storage 網址。
    • URI 為:選取「包含子目錄的目錄」
    • 來源刪除選項:根據偏好選取刪除選項。
  10. 點選「下一步」

  11. 在「Finalize」畫面上檢查新的動態饋給設定,然後按一下「Submit」

從內容中心設定動態饋給

為下列欄位指定值:

  • GCS URI:Cloud Storage 網址。
  • URI 為:選取「包含子目錄的目錄」
  • 來源刪除選項:根據偏好設定選取刪除選項。

進階選項

  • 動態饋給名稱:系統預先填入的值,用於識別動態饋給。
  • 來源類型:將記錄收集到 Google SecOps 的方法。
  • 資產命名空間:與動態饋給相關聯的命名空間。
  • 擷取標籤:套用至這個動態饋給所有事件的標籤。

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 ClientRequestProtocol 的通訊協定部分 (例如 「HTTP/1.1」中的「HTTP」會使用 grok 擷取,並轉換為大寫,然後指派給這個 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 會靜態設為「中繼資料類型」。這個欄位的值是根據 ClientIPClientRequestHostapp_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_timestampevents.timestamp 原始記錄中的 timestamp 值會直接指派給這些 UDM 欄位。

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