拒絕服務 (DoS) 攻擊是一種嘗試對合法最終使用者進行惡意攻擊,以影響其目標系統 (例如網站或應用程式) 可用性的行為。通常,攻擊者會產生大量的封包或請求,最終使得目標系統無法負荷。如果是分散式拒絕服務 (DDoS) 攻擊,攻擊者會使用多個盜用或受控的來源來產生攻擊。
一般而言,可以透過受攻擊的開放式系統互連 (OSI) 模型層來隔離 DDoS 攻擊。這些攻擊在網路層 (Layer 3)、傳輸層 (Layer 4)、展示層 (Layer 6) 和應用程式層 (Layer 7) 最常見。
# | 層 | 應用程式 | 描述 | 向量範例 |
7 | 應用程式 | 資料 | 應用程式網路程序 | HTTP 泛洪、DNS 查詢泛洪 |
6 | 展示 | 資料 | 資料展示和加密 | SSL 濫用 |
5 | 工作階段 | 資料 | 中間主機通訊 | 不適用 |
4 | 傳輸 | 區段 | 端對端連線和可靠性 | SYN 泛洪 |
3 | 網路 | 封包 | 路徑判定與邏輯定址 | UDP 反射攻擊 |
2 | 資料連結 | 框架 | 實體定址 | 不適用 |
1 | 實體 | 位元 | 媒體、訊號和二進位傳輸 | 不適用 |
思考對抗這些攻擊的風險降低技術時,將這些攻擊區分為基礎設施層 (Layers 3 和 4) 與應用程式層 (Layer 6 和 7) 攻擊會很有幫助。
基礎設施層攻擊
Layer 3 和 4 的攻擊通常歸類為基礎設施層攻擊。這也是最常見的 DDoS 攻擊類型,包括同步 (SYN) 泛洪等攻擊途徑,以及使用者資料包封包 (UDP) 泛洪等其他反射攻擊。這些攻擊通常數量龐大,且旨在使網路或應用程式伺服器的容量超載。幸運的是,這類攻擊類型都具有清晰的簽章,因此很容易偵測。
應用程式層攻擊
Layer 6 和 7 的攻擊通常歸類為應用程式層攻擊。雖然這些攻擊較不常見,但卻更為複雜。這些攻擊與基礎設施層攻擊相比數量通常較少,但是傾向針對應用程式特定的重要部份進行攻擊,使實際使用者無法使用應用程式。例如,對登入頁面或重要搜尋 API 進行 HTTP 請求泛洪,或甚至是 Wordpress XML RPC 泛洪 (也稱為 Wordpress pingback 攻擊)。
減少受攻擊區域
減緩 DDoS 攻擊的首選技術之一,是將可能受攻擊的區域降到最低,以限制攻擊者的選擇,讓您能夠在單一位置建立保護。我們要確保應用程式或資源不會公開至不應收到任何通訊的連接埠、協定或應用程式。從而大幅減少可能的攻擊點,讓我們專注於減緩攻擊風險。在某些情況下,可以將運算資源放在內容分發網路 (CDN) 或負載平衡器之後,使網際網路流量無法直接流向基礎設施 (例如資料庫伺服器) 的某些部分。在其他情況下,您可以使用防火牆或存取控制清單 (ACL) 來控制可流向您應用程式的流量。
擴展計劃
減緩大規模 DDoS 攻擊的兩個主要考量是,可承擔與減緩攻擊的頻寬 (或傳輸) 容量和伺服器容量。
傳輸容量。 建立應用程式的架構時,請確保託管供應商提供足以讓您處理大流量的冗餘網際網路連線能力。DDoS 攻擊的最終目的是影響資源/應用程式的可用性,因此您不僅應將資源/應用程式放置在靠近最終使用者的位置,並且還要靠近大型網際網路交換,讓使用者即使在高流量期間也能輕鬆存取應用程式。此外,Web 應用程式可以更進一步採用內容分發網路 (CDN) 和智慧 DNS 解析服務,這通常會從較靠近最終使用者的位置,為服務內容和解析 DNS 查詢提供額外的網路基礎設施層。
伺服器容量。 大多數的 DDoS 攻擊是大規模攻擊,會佔用大量資源;因此,能夠快速擴展或縮減運算資源非常重要。實行的方式包括在較大的運算資源執行,或在具有更廣泛的網路界面或支援更大流量的增強型聯網等功能的資源中執行。此外,通常也會使用負載平衡器,持續監控及轉換資源之間的負載,以防任一資源超載。
了解什麼是正常和異常流量
每當我們偵測到攻擊主機的流量增加時,最基本的底線就是在主機能夠處理且不影響可用性的情況下,盡可能地接受流量。這個概念稱為速率限制。更進階的保護技術可以更進一步以智慧型的方式,透過分析個別封包僅接受合法的流量。若要這樣做,您必須了解正常流量的特性,目標通常可接收正常流量且能夠根據此底線來比較每個封包。
針對複雜的應用程式攻擊部署防火牆
理想的做法是使用 Web 應用程式防火牆 (WAF) 來防止攻擊,例如 SQL injection 或跨網站請求偽造,這類攻擊都會嘗試利用應用程式本身中的漏洞。此外,由於這些攻擊的獨特性質,您應該能夠針對非法請求輕鬆建立自訂風險降低措施,這些請求可能具有偽裝成正常流量或來自錯誤 IP、未預期地理位置等特徵。在發生攻擊時,得到經驗豐富的支援來研究流量模式以及建立自訂保護措施,都有助於減緩攻擊。