【Note】DDoS 攻擊的類型和防禦方式

Taiming
10 min readDec 14, 2024
DDoS 攻擊的類型和防禦方式

📍 前言

這份筆記的目的是幫助自己整理有關 DDoS(分散式阻斷服務)攻擊的類型、對應的防禦方式,以及它們在 OSI 模型中的關聯性

📍 OSI 模型與 DDoS 攻擊的對應

DDoS 攻擊的設計會針對 OSI 模型的不同層級發動,因為每一層的協議特性和資源消耗的方式都不一樣。這也是為什麼 DDoS 防禦需要多層次的策略。

7 OSI Layers: The Building Blocks of Networking

Layer 1: 實體層 (Physical Layer)

實體層是處理網路中「實際物理連接」的層級,像是網路纜線、無線電波和信號傳輸。在 DDoS 攻擊中,這一層通常不會成為直接的攻擊目標,因為物理設備的破壞更像是「實體攻擊」而非「網路攻擊」。
典型的攻擊方式: 斷纜攻擊 (Cut the cable)、阻斷無線信號 (例如干擾 Wi-Fi 信號)
是否用於 DDoS 攻擊: ❌ 很少用於 DDoS 攻擊,因為它不屬於純粹的網路協議攻擊。

Layer 2: 資料鏈路層 (Data Link Layer)

資料鏈路層處理局域網 (LAN) 中的設備之間的數據傳輸,負責將數據封裝成幀 (Frame) 並控制錯誤檢測。這一層的 DDoS 攻擊通常會針對以太網協議 (Ethernet) 和 ARP(位址解析協議)。
典型的攻擊方式: ARP Spoofing、MAC Flooding
是否用於 DDoS 攻擊: ⚠️ 有可能被利用,但不常見。這類攻擊更多被用於「中間人攻擊 (MITM)」或「流量重定向」。

Layer 3: 網路層 (Network Layer)

網路層處理 IP 位址的分配和路由,這一層是 DDoS 攻擊的核心目標之一。因為 IP 位址是互聯網通信的基礎,攻擊者可以使用流量泛洪來耗盡路由器的資源,導致網路擁塞或癱瘓。
典型的攻擊方式: ICMP Flood、Smurf Attack、Ping of Death (PoD)
是否用於 DDoS 攻擊: ✅ 常見的 DDoS 攻擊目標。藉由不斷向目標發送 ICMP (ping) 請求,讓網路設備(如路由器和交換機)超載,導致網路無法正常運作。

Layer 4: 傳輸層 (Transport Layer)

傳輸層控制數據的端到端傳輸,管理 TCP 連線、UDP 數據包和傳輸流程控制。DDoS 攻擊常常針對這一層的「連線建立和保持」機制,特別是TCP 三向交握 (TCP Handshake)
典型的攻擊方式: SYN Flood、UDP Flood
是否用於 DDoS 攻擊: ✅ 非常常見的攻擊目標。SYN Flood 利用 TCP 連線的三向交握來讓伺服器保持一堆「未完成的連線」狀態,導致伺服器資源耗盡。UDP Flood 會發送大量的 UDP 數據包,這些數據包通常會觸發目標伺服器嘗試回覆,導致資源消耗。

Layer 5: 會話層 (Session Layer)

會話層管理「應用之間的對話」,像是建立和維護用戶之間的通話、文件傳輸等。這一層通常在 DDoS 攻擊中不會成為直接目標,因為大多數的 DDoS 攻擊是基於協議層 (如 L3、L4 和 L7)。
典型的攻擊方式: 很少見
是否用於 DDoS 攻擊: ❌ 幾乎不會成為 DDoS 攻擊目標

Layer 6: 表示層 (Presentation Layer)

表示層的主要作用是「數據格式轉換和加解密」,例如 TLS/SSL 加密和字符編碼轉換。理論上,DDoS 攻擊可能會試圖耗盡表示層的資源(例如 TLS 握手中的計算資源),但這類攻擊更多歸類為Layer 7 的攻擊,因為它依賴於應用層協議。
典型的攻擊方式: SSL/TLS Flood
是否用於 DDoS 攻擊: ⚠️ 有可能被間接利用,但大多會被視作 L7 攻擊。

Layer 7: 應用層 (Application Layer)

應用層是使用者與應用程式直接交互的層級,常見的協議包括 HTTP、HTTPS、DNS、FTP 和 SMTP。這一層的 DDoS 攻擊是最具破壞性和隱蔽性的,因為它會模擬「正常用戶行為」並使 Web 伺服器超載。
典型的攻擊方式: HTTP Flood、Slowloris、DNS Query Flood
是否用於 DDoS 攻擊: ✅ DDoS 攻擊中最具威脅的一層。攻擊者會發送大量的 HTTP 請求(例如開啟大量網頁或不斷查詢 API 端點),導致伺服器的計算資源(如 CPU、記憶體)被耗盡。

L1 (實體層):不會被 DDoS 攻擊,但可能遭受物理損害。
L2 (資料鏈路層):較少見,可能涉及 ARP Spoofing 和 MAC Flooding。
L3 (網路層):DDoS 目標的核心,ICMP Flood 和 Smurf Attack 針對這一層。
L4 (傳輸層):SYN Flood 和 UDP Flood 這類典型的 DDoS 攻擊會針對這一層。
L5 (會話層):極少見的攻擊目標,因為這一層的對話管理對 DDoS 攻擊幫助不大。
L6 (表示層):這一層的 TLS/SSL 握手過程可能被利用,但更多被歸類為 L7 攻擊。
L7 (應用層):最常見和最具威脅的 DDoS 目標,特別是 HTTP Flood 和 DNS Flood。

📍 DDoS 攻擊的類型與對應的防禦方法

1. 基於 Layer 3/4 的 DDoS 攻擊與防禦

(Layer 3 是網路層,Layer 4 是傳輸層)

1️⃣ ICMP Flood (L3 攻擊)
攻擊原理
攻擊者向目標伺服器不斷發送 ICMP 回應請求(ping),導致目標系統的網路頻寬被大量 ICMP 流量淹沒,最終使正常流量無法通過。

對應的防禦方法

  • 封鎖 ICMP 流量:在防火牆中封鎖不必要的 ICMP 流量,僅允許必要的 ping 請求。
  • Rate Limiting:限制每秒 ICMP 請求的數量,避免單一來源的 ICMP 請求過多。
  • 流量清洗 (Traffic Scrubbing):使用 DDoS 清洗服務,將惡意流量分流到清洗中心進行過濾。

2️⃣ UDP Flood (L4 攻擊)
攻擊原理
攻擊者發送大量的 UDP 數據包,這些數據包通常會觸發伺服器回覆 “目標不可達” 的錯誤消息,從而耗盡伺服器的資源和網路頻寬。由於 UDP 是無狀態協議,伺服器必須不斷處理數據包。

對應的防禦方法

  • Rate Limiting:限制每秒的 UDP 請求數量,減少單位時間內的處理負載。
  • 封鎖不必要的 UDP 端口:只允許合法的 UDP 端口(例如 DNS 使用的 53 端口)。
  • 流量清洗:將流量重導至清洗中心,過濾掉惡意的 UDP 請求,並只允許合法的請求進入伺服器。

3️⃣ SYN Flood (L4 攻擊)
攻擊原理
利用 TCP 的三向交握機制,攻擊者發送大量的 SYN 請求,但不回應最終的 ACK,導致伺服器的 TCP 連線池被大量「未完成的連線」佔滿,無法接受新的連線請求。

對應的防禦方法

  • 啟用 SYN Cookies:SYN Cookies 技術可以延後 TCP 連線的資源分配,直到完成三向交握後再建立連線。
  • Rate Limiting:限制每秒 TCP 連線請求的數量,降低大量請求的影響。
  • DDoS 清洗服務:讓清洗中心的流量檢查工具幫忙過濾可疑的 TCP 請求,僅允許正常請求進入伺服器。
SYN Flood

🔍 總結 Layer 3/4 的防禦重點

  • Rate Limiting:限制請求速率,對單一 IP 或某類流量的請求數量設置上限。
  • DDoS 清洗服務:使用第三方的 DDoS 清洗服務(如 Cloudflare、Nexusguard)來主動分流惡意流量。
  • SYN Cookies:這是針對 TCP 握手攻擊的關鍵防禦技術,特別適用於 L4 攻擊中的 SYN Flood。

2. 基於 Layer 7 的 DDoS 攻擊與防禦

(Layer 7 是應用層,目標是 Web 伺服器和 API 伺服器)

1️⃣ HTTP Flood (L7 攻擊)
攻擊原理
攻擊者會發送大量的 HTTP GET/POST 請求,讓目標伺服器的應用層資源(如 CPU、記憶體)被耗盡,導致網站無法處理正常用戶的請求。與 L3/L4 攻擊不同,HTTP Flood 的請求看起來就像正常的 Web 瀏覽,這使得防禦更加困難。

對應的防禦方法

  • Web Application Firewall (WAF):使用 WAF 來過濾異常的 HTTP 請求(例如過長的 URL、重複的請求等),並阻擋不良的 IP。
  • CAPTCHA 驗證:透過 CAPTCHA 驗證使用者是否為真人,用於辨別正常用戶與機器人。
  • 行為分析:檢測 IP 請求的頻率和模式,標記和封鎖可疑的 IP。
HTTP Flood

2️⃣ Slowloris Attack (L7 攻擊)
攻擊原理
Slowloris 攻擊會以極慢的速度發送 HTTP 請求,但不斷保持 TCP 連線不被關閉,這會導致伺服器的連線池被耗盡,無法接受其他正常的請求。

對應的防禦方法

  • 增加 HTTP 連線的超時設置:如果 HTTP 連線超過一定的超時時間(例如 30 秒)未完成,則強制關閉連線。
  • WAF:通過 WAF 過濾這種異常的 HTTP 請求行為,並標記可疑的連線。
  • 限制單一 IP 的連線數量:為單一 IP 設定最大連線數量,避免單一 IP 佔用過多的資源。

3️⃣ API Abuse (L7 攻擊)
攻擊原理
攻擊者針對伺服器的 API 介面發送大量的 API 請求(例如 REST API 請求),這類請求通常會包含複雜的業務邏輯計算,從而耗盡伺服器的資源。這類攻擊常發生在 API 被暴露於公網的情境中。

對應的防禦方法

  • Rate Limiting:限制單一 IP、單一用戶的 API 請求數量,降低 API 被濫用的風險。
  • WAF 及 API Gateway:保護 API 介面,並根據身份驗證和授權來過濾請求,僅允許合法的 API 呼叫。
  • JSON Schema 驗證:檢查 API 請求的數據格式,過濾異常的請求,並拒絕不符合格式的請求。

🔍 總結 Layer 7 的防禦重點

  • Web Application Firewall (WAF):WAF 是防禦 HTTP Flood 和 API 攻擊的關鍵工具。
  • Rate Limiting:限制單一 IP 的請求數量,防止惡意 IP 過度使用 API 和 HTTP 請求。
  • 行為檢測與分析:透過行為檢測技術,基於請求頻率和請求特徵,標記和封鎖異常的流量。

結語

DDoS 攻擊的類型涵蓋了 OSI 模型的多個層級,尤其是 L3/L4(網路層與傳輸層)和 L7(應用層)的攻擊最為常見。L3/L4 攻擊主要目標是網路頻寬和伺服器連線資源,而 L7 攻擊則針對伺服器的應用資源(如 CPU 和記憶體)

為了有效抵禦這些 DDoS 攻擊,企業需要使用多層的防禦策略,包括Rate Limiting、WAF、SYN Cookies 和 DDoS 清洗服務。每一種技術都有其獨特的優勢,針對不同的攻擊場景進行部署,才能最大程度地降低 DDoS 攻擊帶來的風險。

--

--

Taiming
Taiming

Written by Taiming

Aquarius software engineer exploring web development, freelancing, startups, and career growth. Believes life’s beauty goes beyond code. eefozeo@gmail.com

No responses yet