跳到主要內容

發表文章

目前顯示的是有「TCP SYN flood」標籤的文章

TCP SYN Flood 攻擊原理深度解析:如何癱瘓伺服器的半開連線資源

在現代網路攻擊中, TCP SYN Flood 以低成本、高破壞力著稱。攻擊者利用 TCP 三向交握的設計缺陷,大量佔用伺服器資源,使合法用戶的連線請求石沉大海。 TCP 三向交握的致命弱點 正常的 TCP 連線需完成三個步驟:客戶端送出 SYN ,伺服器回應 SYN-ACK ,客戶端再送出 ACK 完成握手。問題在於伺服器送出 SYN-ACK 後,必須將此「半開連線(Half-Open Connection)」暫存於 Backlog Queue ,並等待 ACK 回應(預設逾時約 75 秒)。攻擊者正是利用這個等待視窗,以 偽造來源 IP 的 SYN 封包淹沒伺服器,讓 Backlog Queue 被大量半開連線塞滿,新的合法連線因此遭到拒絕。 主流防禦機制解析 目前最有效的防禦手段是 SYN Cookie 。啟用後,伺服器在送出 SYN-ACK 時不再佔用 Backlog Queue,而是將連線狀態編碼成一個加密雜湊值嵌入序號中;只有收到合法 ACK 且驗證通過,才建立真實連線。Linux 核心可透過 net.ipv4.tcp_syncookies=1 啟用此功能。此外, 縮短 SYN-ACK 逾時時間 、 擴大 Backlog Queue 容量 ,以及上游 ISP 的 流量清洗(Scrubbing) ,皆是常見的補充防禦層。 # Linux 啟用 SYN Cookie 防禦(立即生效) sysctl -w net.ipv4.tcp_syncookies=1 # 擴大半開連線佇列上限 sysctl -w net.ipv4.tcp_max_syn_backlog=4096 💡 重點整理 攻擊核心 :偽造來源 IP 的 SYN 封包填滿 Backlog Queue,阻斷合法連線。 SYN Cookie :將連線狀態移出佇列,從根本上化解 Queue 耗盡問題。 參數調整 :縮短逾時時間與擴大佇列為快速緩解的輔助手段。 DDoS 場景 :大規模攻擊需仰賴上游流量清洗或 CDN 防護層攔截。 TCP SYN Flood 的危害源於協定設計的信任假設。理解其原理是部署有效防禦的第一步;在生產環境中, SYN Cookie 搭配流量清洗 是目前最務實的...