萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 網路安全 >  >> 資訊安全防護

DoS 攻擊原理深度解析:從 TCP 協議弱點到常見攻擊手法

DoS(Denial of Service,拒絕服務)攻擊層出不窮,許多人知其名不知其理。本文從 TCP 協議核心機制切入,剖析 DoS 攻擊如何利用協議特性耗盡資源,並列舉常見攻擊變體,為防禦部署提供理論依據。

1. 什麼是 DoS 攻擊?

DoS 旨在使目標主機/服務停止提供正常功能或資源存取。譬若餐廳客滿拒客,攻擊者透過大量偽造或畸形請求,佔滿連線佇列、耗盡頻寬/CPU/記憶體,導致合法用戶無法獲得服務。注意:此處 DoS 與微軟舊作業系統 MS-DOS 無關。

2. TCP 協議關鍵特性回顧(RFC 793/1122/1323)

  • 可靠傳輸:序號、確認號、重傳機制、滑動視窗、流量控制。
  • 連線建立:三向交握
    Client → SYN (seq=x) → Server → SYN+ACK (seq=y, ack=x+1) → Client → ACK (ack=y+1) → ESTABLISHED。
  • 連線拆除:四向揮手:FIN/ACK 交換,進入 TIME_WAIT 狀態。
  • TCP 標頭關鍵欄位(20 Bytes 基礎 + 選項):
    Source/Destination Port (16-bit) | Sequence Number (32-bit) | Acknowledgment Number (32-bit) | Data Offset (4-bit) | Reserved (6-bit) | Flags (6-bit: URG, ACK, PSH, RST, SYN, FIN) | Window (16-bit) | Checksum (16-bit) | Urgent Pointer (16-bit) | Options | Padding | Data

3. 常見 DoS 攻擊手法與原理

① SYN Flood(SYN 洪水)

攻擊者大量發送 SYN 封包(常偽造來源 IP),Server 回 SYN+ACK 並分配半連線資源(TCB),等待最終 ACK。因來源 IP 偽造或攻擊者不回 ACK,半連線佇列填滿,合法連線被拒。利用點:三向交握中 Server 須預先分配資源、半連線佇列有限。

② ACK Flood / RST Flood

大量發送 ACK 或 RST 封包,強迫目標處理無效封包、消耗 CPU/頻寬,或干擾正常連線狀態機。

③ Smurf / Fraggle 攻擊

  • Smurf:攻擊者對廣播位址發送 ICMP Echo Request(偽造受害者為來源 IP),所有主機回應 Echo Reply 淹沒受害者。
  • Fraggle:同理但用 UDP Echo (Port 7) 或 UDP Chargen (Port 19)。

利用點:ICMP/UDP 回應機制 + 廣播放大 + IP 位址偽造。

④ 連線耗盡攻擊

建立大量完整 TCP 連線(完成三向交握)並保持閒置(或慢速傳送資料),佔滿 Server 連線表/檔案描述符/執行緒池。

⑤ 應用層 DoS(Layer 7)

針對特定應用(HTTP、DNS、資料庫)發送資源密集型請求(如大量複雜查詢、大檔下載、SSL 重新協商),以極低頻寬耗盡應用伺服器運算資源。

4. 防禦啟示

  • 協議層面:啟用 SYN Cookie、縮短半連線逾時、限制半連線佇列、啟用 TCP Intercept(Cisco)或同等機制。
  • 網路層面:入口/出口過濾(BCP 38/84 防 IP 偽造)、封鎖廣播 ICMP/UDP、部署 DDoS 清洗設備/服務。
  • 主機層面:調大連線佇列、限制單一 IP 連線數、啟用應用層 WAF/速率限制。
  • 架構層面:多層級負載平衡、任何業務可快速切換至備援節點、制定事件響應手冊。

理解協議弱點才能對症下藥;DoS 攻擊手法持續演進,防禦需持續演進。

copyright © 萬盛學電腦網 all rights reserved