收集 Vercel WAF 記錄

支援的國家/地區:

本文說明如何使用 Google Cloud Storage V2,將 Vercel WAF 記錄擷取至 Google Security Operations。

Vercel WAF 是一種網頁應用程式防火牆,整合至 Vercel 邊緣網路,可保護無伺服器應用程式。這項服務會在邊緣檢查傳入的 HTTP 要求,並套用安全性規則,在惡意流量抵達應用程式前加以封鎖。由於 Vercel WAF 記錄必須從 Vercel 平台匯出,因此您必須將這些記錄上傳至 Google Cloud Storage (GCS) bucket,然後設定 Google SecOps 資訊提供,以便擷取這些記錄。

事前準備

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

  • Google SecOps 執行個體
  • 已啟用計費功能的 Google Cloud 雲端專案
  • 可存取 WAF 記錄的 Vercel 帳戶 (Pro 或 Enterprise 方案)
  • Vercel API 權杖,或設定為匯出 WAF 記錄的記錄排清

建立 Google Cloud Storage 值區

  1. 前往 Google Cloud Console
  2. 選取專案或建立新專案。
  3. 在導覽選單中,依序前往「Cloud Storage」>「Bucket」
  4. 按一下「建立值區」
  5. 請提供下列設定詳細資料:

    設定
    為 bucket 命名 輸入全域不重複的名稱 (例如 vercel-waf-logs)
    位置類型 根據需求選擇 (區域、雙區域、多區域)
    位置 選取最接近 Google SecOps 執行個體的位置 (例如 us-central1)
    儲存空間級別 標準 (建議用於經常存取的記錄)
    存取控管 統一 (建議)
    保護工具 選用:啟用物件版本管理或資料保留政策
  6. 點選「建立」

將 Vercel WAF 記錄匯出至 GCS

Vercel 會透過記錄檔排清和 Vercel REST API 提供 WAF 記錄。設定記錄匯出作業,然後上傳至 GCS。

Vercel 記錄檔排清功能會將記錄檔即時串流至外部端點。

  1. 登入 Vercel 資訊主頁
  2. 前往團隊設定:依序點選「設定」>「記錄檔排空」
  3. 按一下「新增記錄排空」。
  4. 設定記錄檔排清:
    • 傳送格式:選取「JSON」
    • 「來源」:選取「防火牆」,即可納入 WAF 事件。
    • 環境:選取要監控的環境 (正式版、預覽版、開發版)。
    • 端點:輸入中繼接收器的網址 (例如,寫入 GCS 的 Cloud Run 函式端點)。
  5. 按一下「新增記錄排空」。
  6. 確認記錄檔是否已傳送至端點。

選項 B:透過 Vercel REST API 匯出

  1. 在「設定」> 權杖」中產生 Vercel API 權杖。
  2. 使用 Vercel REST API 擷取防火牆事件:

    curl -H "Authorization: Bearer YOUR_VERCEL_TOKEN" \
      "https://api.vercel.com/v1/security/firewall/events?teamId=YOUR_TEAM_ID&projectId=YOUR_PROJECT_ID&limit=100" \
      -o vercel-waf-events.json
    

擷取 Google SecOps 服務帳戶

  1. 依序前往「SIEM 設定」>「動態饋給」
  2. 按一下「新增動態消息」
  3. 按一下「設定單一動態饋給」
  4. 在「動態饋給名稱」欄位中輸入動態饋給名稱 (例如 Vercel WAF Logs)。
  5. 選取「Google Cloud Storage V2」做為「來源類型」
  6. 選取「Vercel WAF」做為「記錄類型」
  7. 按一下「取得服務帳戶」。系統會顯示專屬服務帳戶電子郵件地址,例如:

    chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com
    
  8. 複製這個電子郵件地址,以便在下一步中使用。

將 IAM 權限授予 Google SecOps 服務帳戶

Google SecOps 服務帳戶需要 GCS bucket 的「Storage 物件檢視者」角色。

  1. 依序前往「Cloud Storage」>「Buckets」
  2. 按一下 bucket 名稱 (例如 vercel-waf-logs)。
  3. 前往「權限」分頁標籤。
  4. 按一下「授予存取權」
  5. 請提供下列設定詳細資料:
    • 新增主體:貼上 Google SecOps 服務帳戶電子郵件地址 (例如 chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com)。
    • 指派角色:選取「Storage 物件檢視者」
  6. 按一下 [儲存]

設定 Google SecOps 動態饋給

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

    • 儲存空間 bucket URL:輸入 GCS bucket URI:

      gs://vercel-waf-logs/vercel-waf/
      
      • 請將 vercel-waf-logs 替換成您的 GCS bucket 名稱。
      • vercel-waf 替換為您設定的前置字串路徑。
    • 來源刪除選項:根據偏好設定選取刪除選項:

      • 永不:移轉後一律不刪除任何檔案 (建議用於測試)。
      • 刪除已轉移的檔案和空白目錄:成功轉移檔案後,刪除檔案和空白目錄。

    • 檔案存在時間上限:包含在過去天數內修改的檔案 (預設為 180 天)。

    • 資產命名空間資產命名空間

    • 擷取標籤:要套用至這個動態饋給事件的標籤。

  9. 點選「下一步」

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

UDM 對應表

記錄欄位 UDM 對應 邏輯
record.requestId、record.proxy.timestamp、record.proxy.region、record.proxy.errorCode、record.proxy.vercelCache、record.proxy.pathType、record.proxy.referer、record.proxy.cacheId、record.proxy.wafAction、record.proxy.scheme、record.proxy.userAgent、record.environment additional.fields 其他事件中繼資料
metadata.event_type 活動類型
record.deploymentId metadata.product_deployment_id 產品專屬部署作業 ID
record.id metadata.product_log_id 產品專屬記錄 ID
record.proxy.method network.http.method HTTP 方法
record.statusCode network.http.response_code HTTP 回應碼
record.source principal.asset.hostname 與主體相關聯的資產主機名稱
record.host principal.hostname 主體的主機名稱
record.message security_result.description 安全性結果說明
record.proxy.wafRule security_result.rule_name 觸發安全結果的規則名稱
record.level security_result.severity 安全性結果的嚴重程度
record.proxy.wafRule security_result.threat_name 威脅名稱
record.proxy.clientIp target.asset.ip 資產的 IP 位址
record.projectId target.cloud.project.id 雲端專案 ID
record.projectName target.cloud.project.name 雲端專案名稱
record.proxy.path target.file.full_path 檔案的完整路徑
record.proxy.clientIp target.ip 目標的 IP 位址
record.executionRegion target.location.name 地點名稱
record.proxy.vercelId target.user.userid 目標使用者的使用者 ID
metadata.product_name 產品名稱
metadata.vendor_name 供應商名稱

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