TCP協議下的洪水攻擊

1. SYN Flood(半連接攻擊)

這是最經典、最有效的DDoS攻擊方式之一,利用了TCP三次握手的漏洞。攻擊者向目標發送大量偽造源IP地址的SYN請求報文。目標服務器接收到SYN報文後,會回覆SYN-ACK報文,並分配資源(如TCB控制塊)等待客户端的ACK確認。然而,由於源IP是偽造的,目標服務器永遠收不到ACK確認,這些半連接會一直佔用服務器資源直至超時。當半連接隊列佔滿時,新的正常連接請求將被拒絕。

防禦策略:雖然可以通過調整內核參數(如減小超時時間、增大最大半連接數)來緩解,但最有效的防禦是使用SYN Cookie技術或專業的抗DDoS設備進行源認證。

2. ACK Flood

攻擊者發送大量只有ACK標誌位的TCP數據包。由於這些ACK包並不屬於任何已建立的連接,服務器收到後會消耗CPU資源去查找連接表(Connection Table),最終回覆RST報文。海量的ACK包不僅佔用帶寬,更會耗盡服務器的CPU資源。

防禦策略:利用載荷檢查或首包丟棄等策略,結合連接狀態表進行驗證。

UDP協議下的攻擊

1. UDP Flood

UDP是一種無連接的協議。攻擊者向目標服務器的隨機端口發送大量的UDP數據包。目標服務器在收到UDP包後,會檢查該端口是否有應用程序監聽。如果沒有,它會回覆一個ICMP Port Unreachable消息。大量的UDP包會迅速佔滿目標的網絡帶寬,使其無法處理正常流量。

防禦策略:UDP Flood主要通過限流(Rate Limiting)和指紋識別來進行清洗。對於不需要UDP服務的服務器,可以直接在防火牆上丟棄所有UDP流量。

ICMP協議與IP攻擊

1. ICMP Flood(Ping Flood)

攻擊者在短時間內向目標發送大量的ICMP Echo Request(Ping)報文。目標系統必須對每個請求進行回覆(Echo Reply),這會消耗大量帶寬和系統資源。

防禦策略:直接在防火牆或路由器上禁止ICMP入站請求通常是有效且低風險的防禦手段。

2. IP碎片攻擊(IP Fragmentation Attack)

攻擊者發送大量設定了惡意參數的IP分片包(如Teardrop攻擊,利用重疊的偏移量),或者發送大量的分片包但不發送首片。目標主機在嘗試重組這些分片時,可能會因為邏輯錯誤導致崩潰(如藍屏死機)或消耗大量CPU資源進行重組等待。

防禦策略:現代操作系統和防火牆通常具備對非法分片的檢測和丟棄能力。配置路由設備丟棄分片包或進行重組檢查是常見防禦手段。

3. TCP RST Flood 與 FIN Flood

除了SYN和ACK之外,攻擊者還會利用TCP的RST(重置)包和FIN(結束)包進行攻擊。RST Flood向服務器發送大量攜帶RST標誌的報文,迫使服務器斷開已建立的合法連接。FIN Flood則利用四次揮手的過程,發送大量FIN包消耗服務器資源。這些攻擊單獨使用時效果有限,但常與SYN Flood配合使用,形成混合攻擊。

各類攻擊特徵對比

攻擊類型 協議層 典型包大小 攻擊目標 主要危害
SYN Flood 傳輸層 (L4) 40-60字節 TCP半連接隊列 連接資源耗盡
ACK Flood 傳輸層 (L4) 40-1500字節 連接表 / CPU CPU資源耗盡
UDP Flood 網絡層 (L3) 隨機(大包為主) 網絡帶寬 帶寬擁塞
ICMP Flood 網絡層 (L3) 64-1500字節 帶寬 / CPU 帶寬消耗
IP碎片 網絡層 (L3) 不定 協議棧 系統崩潰 / CPU耗盡

危害對比

網絡層和傳輸層的攻擊通常以“量”取勝,通過巨大的流量(Volumetric Attacks)來堵塞帶寬或耗盡基礎設施資源(如防火牆會話表)。相較於應用層攻擊,這類攻擊特徵明顯,但攻擊流量通常巨大,往往需要依靠上游運營商或專業的雲清洗中心來應對。