examlab .net 用最有效率的方法,考取最有價值的證照
本篇導覽 約 18 分鐘

Cloud Armor:WAF 與 DDoS 防護

3,500 字 · 約 18 分鐘閱讀 ·

深入掌握 Google Cloud Armor 於 Web 應用程式安全性的應用。學習如何緩解 OWASP Top 10 風險、實施機器人管理,並利用基於機器學習的自適應防護進行 PSE 等級的防禦。

立即做 20 題練習 → 免費 · 不用註冊 · PSE

Cloud Armor 簡介

在現代威脅環境中,第 3 層和第 4 層防火牆已不足以保護 Web 應用程式免受複雜攻擊。Google Cloud Armor 是一項企業級 Web 應用程式防火牆 (WAF) 和分散式阻斷服務 (DDoS) 防護服務,它利用與 Google 保護其搜尋、Gmail 和 YouTube 相同的基礎設施。

對於 專業雲端安全工程師 (PSE) 而言,Cloud Armor 是面向網際網路應用程式的首要護盾。它提供對 HTTP(S) 流量的深度檢測,緩解 OWASP Top 10 風險 (如 SQL 注入和 XSS),並使用機器學習在大量攻擊到達您的後端服務之前偵測並阻斷它們。

白話文解釋

1. 超級安全掃描器 (WAF)

VPC 防火牆就像是在大門口檢查身分證。Cloud Armor 則像是機場的高科技 X 光掃描器。它不僅看身分證 (IP 位址),還會查看行李箱內部 (HTTP 負載),以尋找隱藏的武器 (SQL 注入字串或惡意指令碼),而這些是簡單的大門檢查會漏掉的。

2. 洪水閘門 (DDoS 防護)

想像巨浪 (DDoS 攻擊) 襲擊一個小島,如果沒有保護,小島會被淹沒。Cloud Armor 充當巨大的防波堤 (Google 的全域邊緣網路),吸收巨浪的衝擊。即使波浪每秒達到數百萬次請求,防波堤也能應對,確保內陸村莊 (您的後端 VM) 乾爽安全。

3. 智慧門衛 (自適應防護)

想像一位會學習的門衛。在正常情況下,他們知道典型客人的樣子。如果突然有一千個戴著同樣奇怪帽子的人試圖同時進入,門衛會注意到異常 (自適應防護) 並阻斷他們,即使他們尚未出現在「禁止名單」上。

透過預定義規則緩解 OWASP Top 10 風險

Cloud Armor 提供預定義 WAF 規則,這些規則易於啟用且涵蓋了常見的攻擊向量。

  • SQL 注入 (SQLi): 防止攻擊者執行惡意 SQL 語句。
  • 跨網站指令碼 (XSS): 阻斷試圖劫持使用者工作階段的指令碼。
  • 本地檔案包含 (LFI): 防止存取伺服器上的敏感檔案。
  • 遠端程式碼執行 (RCE): 阻斷執行未經授權指令的嘗試。

Cloud Armor 安全性策略 (Security Policies) 是一組規則,定義了應如何根據 IP、地理位置或請求內容處理流量 (允許、拒絕、速率限制)。

第 7 層安全性策略與機器人管理 (Bot Management)

Cloud Armor 運作於第 7 層 (應用程式層),這意味著它能理解 URL、標頭 (Headers) 和 Cookie。

機器人管理 (Bot Management)

並非所有機器人都是壞的 (例如 Googlebot),但許多是壞的 (例如爬蟲、憑證填充攻擊者)。

  • reCAPTCHA Enterprise 整合: Cloud Armor 可以觸發 reCAPTCHA 驗證。如果使用者未通過,請求將在邊緣被阻斷。
  • 機器人偵測: 使用行為分析和已知機器人特徵碼來識別並阻斷自動化流量。

IP 允許/拒絕清單與地理位置阻擋 (Geo-blocking)

有時您希望阻斷來自整個國家的流量,或者僅允許來自合作夥伴特定 IP 範圍的流量。

  • IP 規則: origin.ip == '1.2.3.4'
  • 地理位置阻擋: origin.region_code == 'CN'origin.region_code != 'US'

Cloud Armor 規則套用於 全域邊緣 (Global Edge),這意味著惡意流量在遠離您的 VPC 處就被丟棄,從而節省您的頻寬和運算成本。

Managed Protection Plus (代管式防護進階版)

Cloud Armor 提供兩個層級:Standard (標準版)Managed Protection Plus (進階版)

Managed Protection Plus 的功能:

  • DDoS 回應小組 (DRT): 在攻擊期間 24/7 獲得 Google 安全專家的支援。
  • 可預測的定價: 防止由大規模 DDoS 攻擊引起的「帳單衝擊」(針對傳出流量成本提供帳單抵用額)。
  • 進階機器人管理: 對自動化流量進行更精細的控制。

PSE 情境若提到「關鍵任務應用程式」、「DDoS 帳單衝擊保護」或「攻擊期間 24/7 DRT 支援」,正確答案是 Managed Protection Plus,而不是 Standard 層級。Standard 已內建預定義 WAF 規則與基本的 L3/L4 DDoS 防護,但只有 Plus 提供 egress 帳單抵用額、跨所有後端服務的 Adaptive Protection 遙測,以及直通 Google DDoS Response Team 的支援管道。

基於機器學習的自適應防護 (Adaptive Protection)

自適應防護 使用機器學習來保護您的應用程式免受複雜的第 7 層 DDoS 攻擊。

  1. 學習基準: 監控發送到您後端服務的正常流量模式。
  2. 偵測異常: 識別看起來像攻擊的突發流量。
  3. 建議規則: 自動生成 WAF 規則並發出警報。
  4. 一鍵緩解: 您可以一鍵套用建議的規則來阻斷攻擊。

搭配負載平衡器保護後端服務

Cloud Armor 附加到 全域外部 HTTP(S) 負載平衡器網路負載平衡器

工作流程:

流量 → 全域邊緣 (Cloud Armor) → GCLB → 後端服務 (執行個體群組/Cloud Run/GKE)。

對於 GKE 使用者,您可以使用 BackendConfig CRD 來管理 Cloud Armor 策略,這允許您直接在 Kubernetes manifest 中定義安全性規則。

自定義規則與 CEL 運算式

針對獨特的安全性需求,您可以使用通用運算式語言 (CEL) 編寫自定義規則。

範例:

  • 阻斷特定的 User-Agent: request.headers['user-agent'].contains('BadBot')
  • 僅允許特定的 Cookie: has(request.headers['cookie']) && request.headers['cookie'].contains('auth_token')
  • 按 IP 進行速率限制:request.path.matches('/login') 設定每分鐘 10 次請求的速率限制。

Cloud Armor 邊緣安全性策略 (Edge Security Policies)

雖然標準策略套用於後端服務,但邊緣安全性策略套用於 Cloud Storage (GCS) 儲存桶或 Cloud CDN 內容。

  • 使用此功能可防止對靜態資產或快取資料的未經授權存取。

速率限制 (Rate Limiting) 與節流 (Throttling)

為了防止「暴力破解」或「庫存囤積 (Inventory Hoarding)」攻擊,請使用速率限制

  • 節流 (Throttle): 降低請求速率 (例如:允許每秒 10 個請求,其餘延遲)。
  • 基於速率的封鎖 (Rate-based Ban): 如果使用者超過閾值,則封鎖他們 5 分鐘。

Cloud Armor 預定義 WAF 規則 ID 都有版本號,考試會直接考:啟用 SQLi 用 evaluatePreconfiguredExpr('sqli-v33-stable')、XSS 用 xss-v33-stable,兩者都透過 gcloud compute security-policies rules create 並搭配 --action=deny-403 套用。Edge Security Policies 是唯一能附加到 Cloud CDNCloud Storage backend bucket 的策略類型,標準 (backend) security policy 無法附加上去。

對於位於 NAT IP 後的使用者,請謹慎使用速率限制。單個 IP 可能代表數百名合法使用者 (例如一間辦公室)。盡可能使用 Cookie 或其他標頭來識別唯一使用者。

與 reCAPTCHA Enterprise 整合

Cloud Armor 可以無縫地將可疑流量重新導向至 reCAPTCHA 驗證。

  1. 使用者發出請求。
  2. Cloud Armor 偵測到「類似機器人」的行為。
  3. Cloud Armor 提供 reCAPTCHA 頁面。
  4. 只有在使用者通過驗證後,請求才會轉發到後端。

Cloud Armor 的 CLI 指令

建立安全性策略

gcloud compute security-policies create my-waf-policy \
    --description="包含 SQLi 防護的基本 WAF"

加入 SQLi 規則

gcloud compute security-policies rules create 1000 \
    --security-policy=my-waf-policy \
    --expression="evaluatePreconfiguredExpr('sqli-v33-stable')" \
    --action=deny-403

附加到後端服務

gcloud compute backend-services update my-backend \
    --security-policy=my-waf-policy \
    --global

PSE 安全性最佳實踐

  1. 縱深防禦: 在邊緣使用 Cloud Armor,並在 VM 層級使用 VPC 防火牆。
  2. 預覽模式 (Preview Mode): 對於新規則,始終先使用 PREVIEW 模式,在切換到 ENFORCE (強制執行) 之前,查看它們是否會阻斷合法流量。
  3. 啟用日誌: 為安全性策略啟用日誌,以便在 Cloud Logging 中分析被阻斷的攻擊。
  4. 使用 Managed Protection Plus: 對於關鍵任務應用程式,以獲得 DDoS 成本保護和 DRT 支援。
  5. 限制後端 IP: 設定後端 VM 允許來自負載平衡器 IP 範圍的流量,以防止攻擊者繞過 Cloud Armor。

故障排除情境

情境:合法使用者收到 403 Forbidden 錯誤

診斷: 其中一個 WAF 規則過於寬泛 (誤判)。檢查 Cloud Logging 以查看是哪個規則 ID 觸發了拒絕。 修正: 將該規則設為 PREVIEW 模式,精煉運算式 (例如為特定 URL 加入例外),然後重新強制執行。

情境:應用程式遭受大規模 DDoS 攻擊且後端失效

診斷: 攻擊是大量且劇烈的。檢查自適應防護 (Adaptive Protection) 是否已建議規則。 修正: 套用建議的自適應防護規則,並聯絡 Google DDoS 回應小組 (如果已訂閱 Managed Protection Plus)。

PSE 考試情境

情境 1:OWASP 合規性

「一家公司需要確保其 Web 應用程式受到保護,免受 SQL 注入和跨網站指令碼攻擊。在 Google Cloud 中實施此要求的最高效方法是什麼?」 答案: 建立 Cloud Armor 安全性策略並啟用 sqli-v33-stablexss-v33-stable 預定義規則。

情境 2:全域流量控制

「應用程式應僅對日本和澳洲的使用者開放,應阻斷來自所有其他國家的請求。這應該在哪裡執行?」 答案: 在 Cloud Armor 安全性策略中使用地理位置規則:origin.region_code != 'JP' && origin.region_code != 'AU' 並設定 DENY 動作。

總結清單

  • 列出至少三個 Cloud Armor 可以緩解的 OWASP Top 10 風險。
  • 解釋 Standard 與 Managed Protection Plus 層級的區別。
  • 描述安全性策略中「預覽模式 (Preview Mode)」的目的。
  • 了解自適應防護如何使用機器學習偵測攻擊。
  • 解釋 Cloud Armor 如何與全域外部負載平衡器整合。

官方資料來源

更多 PSE 主題