防禦策略之所以經常只提到 Layer 3 (網路層) 和 Layer 7 (應用層),是因為這兩層代表了最核心、最不同、也最廣泛被實作的兩種防禦策略。
1. Layer 3 和 Layer 4 的關係 🤝
- Layer 3 和 Layer 4 通常一起被討論。
- Layer 3 (網路層) 處理 IP 位址,就像寄信時的「地址」。
- Layer 4 (傳輸層) 處理埠號和傳輸協定 (TCP/UDP),就像寄信時的「收件人信箱號碼」和「寄送方式」。
- 在實際的防火牆或 DDoS 防禦中,這兩層的資訊是一起被用來判斷的。例如,一個防火牆規則會說:「阻擋來自
1.2.3.4這個 IP,企圖連線到我80埠 (HTTP) 的TCP流量」。 - 因此,在技術討論中,常常會將這兩層的防禦歸為一類,稱為「Layer 3/4 防禦」,代表的是一種基於封包的地址和埠號進行的快速、粗略的防禦。
2. Layer 7 和 Layer 6 / 5 的關係 🧠
- Layer 7 防禦通常包含 Layer 6 和 Layer 5 的功能。
- Layer 6 (表達層) 處理加密和格式。
- Layer 7 (應用層) 處理應用程式的通訊內容。
- 當我們談論 L7 防駭 (例如 WAF) 時,它通常具備解密 SSL/TLS 流量的能力。這個解密動作就發生在 Layer 6。因為不解密,WAF 就無法看到封包裡的 HTTP 請求內容,也就無法阻擋 SQL 注入。
- 所以,Layer 7 的防禦策略,其核心是「檢查封包內容」,這項任務天然地就包含了對 Layer 6 (加密) 和 Layer 5 (會話) 的處理。在實務上,我們不會單獨說一個「L6 防駭」策略,而是將其整合在 L7 防禦中。
3. Layer 2 和 Layer 1 的角色 🧱
- Layer 1 (實體層) 和 Layer 2 (資料鏈路層) 的防禦更專注於物理層和區域網路 (LAN) 內部。
- Layer 1 防禦是物理安全,像是鎖住機房的門、保護網線不被破壞。這是所有安全的基礎,但它不是遠端網路攻擊的主要防禦手段。
- Layer 2 防禦(例如 MAC 位址過濾)主要用來防止未經授權的設備接入內部網路,或是防禦內部發生的攻擊(例如 ARP Spoofing)。它無法防禦來自網際網路的外部攻擊。
因此,在討論保護網站或服務免受來自網際網路的攻擊時,我們主要關注的是這兩個最關鍵、最不同層次的防禦策略:
- Layer 3/4 防禦:就像一個大門口的警衛,只看身份證(IP)和準入證(埠號)。它處理速度極快,主要用來抵擋大流量的 DDoS 攻擊。
- Layer 7 防禦:就像一個智慧型安檢員,會拆開你的行李(HTTP 內容)檢查有沒有違禁品(SQL 注入、XSS)。它處理速度相對較慢,但能精準抵禦複雜的應用程式攻擊。
Cloud Armor 是什麼?🛡️
Cloud Armor 是 Google Cloud Platform (GCP) 提供的一項強大網路安全服務,你可以把它想像成是你的網站和服務的「網路保鑣」。它的主要功能是保護你的應用程式,使其免受分散式阻斷服務 (DDoS) 攻擊和各種 Web 應用程式層的威脅。
Cloud Armor 的核心功能 🔑
- 分散式阻斷服務 (DDoS) 防護 💥
- Cloud Armor 利用 Google 全球網路的巨大規模來吸收和抵禦大規模的 DDoS 攻擊。
- 它提供多層次的防禦:
- 網路層 (Layer 3/4) 防護:抵禦 SYN Flood、UDP Flood 等直接針對網路基礎設施的攻擊,這些防護是自動且永遠啟用的。
- 應用層 (Layer 7) 防護:抵禦 HTTP Flood 等模擬應用程式行為的攻擊,這需要更智慧的分析。
- Web 應用程式防火牆 (WAF) 🚧
- Cloud Armor 的 WAF 功能可以偵測並阻擋針對 Web 應用程式漏洞的攻擊。
- 它內建了符合業界標準 OWASP Top 10 的預設規則集,能幫助你輕鬆地防禦常見的威脅,例如:
- SQL 注入 (SQL Injection):攻擊者在輸入框中注入惡意 SQL 語法。
- 跨站腳本攻擊 (XSS):惡意腳本注入到網頁中,在用戶瀏覽器執行。
- 遠端程式碼執行 (RCE):攻擊者試圖在伺服器上執行惡意程式碼。
- 你也可以根據自己的需求,建立自定義的規則來過濾流量。
Cloud Armor 的運作方式 🔄
Cloud Armor 的運作方式是與 GCP 的負載平衡器緊密整合的。
- 部署位置:你不需要在你的伺服器上安裝任何軟體。Cloud Armor 政策是直接附加在負載平衡器的後端服務上。
- 全域保護:由於 GCP 的全域負載平衡器將流量分發到遍佈全球的 Google 邊緣節點,Cloud Armor 的防護規則也會在這些邊緣節點執行。這意味著惡意流量會盡可能在離攻擊源最近的地方就被偵測和阻擋,從而保護你的應用程式免受攻擊。
- 靈活配置:你可以透過建立安全政策 (Security Policy),並在其中定義多條**規則 (Rules)**來精確控制流量。這些規則可以基於 IP 位址、地理位置、HTTP 標頭、以及各種攻擊特徵來設定。
Cloud Armor 的 global (全域) 和 regional (區域) 政策主要區別在於它們的保護範圍和所能搭配的負載平衡器類型。
Global (全域) 政策 🌐
Global 政策是 Cloud Armor 歷史最悠久、也是最廣泛使用的類型。它的保護範圍是全球性的。
- 保護範圍:規則在 Google 遍佈全球的 邊緣網路 (Edge Network) 上執行。這意味著無論攻擊流量來自世界哪個角落,Cloud Armor 都會盡可能在離攻擊源最近的地方就進行偵測和阻擋。
- 適用情境:
- 保護全球部署的 Web 應用程式或服務。
- 你的應用程式需要服務來自全球的使用者。
- 你使用全域外部應用程式負載平衡器 (Global External Application Load Balancer) 作為服務的入口。
Regional (區域) 政策 🌍
Regional 政策是 Cloud Armor 後來新增的功能,主要針對特定區域的工作負載。它的保護範圍是單一的 Google Cloud 區域。
- 保護範圍:規則只在指定的單一區域 (例如
us-east1或asia-east1) 內執行。 - 適用情境:
- 你的應用程式只服務特定地理區域的使用者。
- 你的服務有數據主權或法規遵循 (Compliance) 的要求,必須確保流量和數據處理只在某個國家或地區內進行。
- 你使用區域外部應用程式負載平衡器 (Regional External Application Load Balancer) 或其他區域級別的服務。











