TCP Flood 防禦:對抗連接耗盡
針對SYN Flood等傳輸層攻擊,防禦的核心在於區分合法連接與惡意連接,並在建立連接前進行驗證。
1. SYN Cookie 與 SYN Proxy
這是防禦SYN Flood最經典的技術。
- SYN Proxy (代理):防禦設備代替服務器與客户端完成三次握手。只有當客户端發送了合法的ACK包(完成握手)後,防禦設備才與後端服務器建立連接。這有效屏蔽了偽造源IP的半連接請求。
- SYN Cookie:當SYN隊列滿時,服務器不分配資源,而是根據源IP、端口等信息計算出一個Cookie值作為ISN(初始序列號)回覆給客户端。如果客户端回覆了包含正確確認號的ACK,服務器才認為連接有效並分配資源。
2. 首包丟棄 (First Packet Drop)
由於大多數DDoS攻擊工具為了追求發包速度,通常不會處理重傳邏輯。防禦設備可以策略性地丟棄該IP的第一個SYN包。正常客户端的TCP協議棧會超時重傳,而攻擊工具可能不會重傳。通過這種方式可以過濾掉大量簡單的攻擊流量。
UDP Flood 防禦:對抗寬帶擁塞
UDP無連接的特性使得防禦較為困難,通常依賴限流和特徵匹配。
1. 指紋識別 (Fingerprinting)
攻擊工具生成的UDP包往往具有特定的Payload特徵(如固定的字符串、全0填充等)。防禦設備通過深度包檢測(DPI)提取這些特徵生成指紋,並配置過濾規則丟棄匹配的流量。對於隨機填充的UDP包,可以統計其長度分佈、TTL分佈等異常特徵。
2. 限速與白名單
對於類似遊戲服務器等必須使用UDP的業務,可以實施精細化的限速策略。例如,限制單個源IP的UDP包速率。更安全的做法是採用白名單機制(如果客户端IP有限)或在應用層實現私有協議的認證。
網絡層防禦:ACL 與 BGP Flowspec
1. ACL (訪問控制列表)
在骨幹網路由器或防火牆上配置ACL,是最基礎的防禦手段。
- 封禁協議:如果業務不需要ICMP,直接阻斷所有ICMP流量。
- 封禁端口:僅開放業務必需的端口(如80/443),封禁其餘所有高危端口(如1900, 11211等易被反射利用的端口)。
2. BGP Flowspec
當攻擊流量極大,傳統ACL配置繁瑣且性能受限時,BGP Flowspec 技術就派上用場了。它允許管理員向網絡中的所有路由器分發細粒度的流量過濾規則(如源IP、目的IP、包長度、協議類型等)。路由器收到Flowspec路由後,可以直接在硬件轉發層面執行丟棄或限速操作,實現全網級的快速防禦。
3. RTBH (Remote Triggered Black Hole)
RTBH是一種利用BGP協議實現遠程觸發黑洞路由的技術。當檢測到針對某個IP的攻擊時,管理員在觸發路由器上注入一條指向該IP的黑洞路由,通過iBGP擴散到所有邊緣路由器。攻擊流量在到達目標之前就被邊緣丟棄。相比手動ACL,RTBH可以在數秒內全網生效。雖然犧牲了受攻擊IP的可用性,但有效保護了其他業務。
飛盾雲定製級有狀態防火牆的連接跟蹤
飛盾雲定製級有狀態防火牆通過維護連接狀態表(Connection Tracking Table)來判別流量合法性。每個經過防火牆的TCP連接都會被記錄其狀態(NEW/ESTABLISHED/RELATED),只有屬於已建立會話的數據包才被放行。這對防禦ACK Flood非常有效,因為沒有對應SYN記錄的ACK包會被直接丟棄。
但需注意,連接表本身也是攻擊目標。SYN Flood可以填滿連接表,導致防火牆拒絕新連接。因此,合理設置連接表大小和超時時間,並部署SYN Proxy在防火牆前端,是必要的配套措施。
總結
網絡層與傳輸層的防禦側重於"硬碰硬"的流量對抗和協議棧層面的驗證。通過SYN Cookie、ACL、BGP Flowspec和RTBH等技術的組合,可以有效過濾大規模的洪水攻擊,保障網絡基礎設施的存活。選擇合適的技術組合取決於網絡規模和業務可用性要求。