TCP Keepalive技術可以用來防止DDOS嗎?

TCP Keepalive技術可以用來防止DDOS嗎?

我正在學習 DDOS 以及緩解它的技術。 TCP Keepalive 用於檢查對方主機是否仍在執行,如果主機不確認 tcp keepalive 訊息,則連線將終止。

我想知道這些訊息是否可以用來減輕 DDOS 攻擊。受到攻擊的伺服器可以減少它與客戶端聯繫的時間,無論它是否仍在運行。伺服器可以使用單播反向路徑轉送來防止 IP 欺騙,如果攻擊是從使用殭屍網路的合法主機發起的,伺服器是否可以使用 tcp 的 keepalive 訊息技術來關閉死連線並防止自身被 DDOS 攻擊?有沒有辦法偵測 TCP 半開連線並使用 tcp keep active 關閉它們?

答案1

DDOS 是一個非常廣泛的術語,包括多種攻擊。 TCP 保持活動僅與已建立的 TCP 連線相關,這通常首先排除使用 IP 欺騙的攻擊。這意味著它與大多數 DDOS 攻擊無關,這些攻擊是使用高頻寬的攻擊(例如使用欺騙 IP 位址的放大攻擊)或 SYN 洪氾。

這使得攻擊像斯洛洛里斯嘗試透過保持許多連線開啟來綁定伺服器上的資源,或從使用者空間應用程式進行正確的 TCP 握手,然後放棄連接而不關閉的攻擊。 TCP 維持活動不會對第一個起作用,因為有一個適當的用戶端會如預期回覆 TCP 維持活動。在第二種情況下,它可能有助於簡單的實現,但也可以對其進行修改以處理 TCP 保持活動狀態,而無需使用更多記憶體。

簡而言之:它可能對非常特定和罕見的 DDOS 類型有所幫助。但即使對於這種 DDOS,使用連線上的空閒逾時並根據開啟的連線數量和連線的特定狀態動態調整逾時可能會更有效。這可能會涵蓋更多類型的攻擊。

答案2

您的機器無法知道封包的來源 IP 位址是否被欺騙。初步估計,RPF 僅適用於路由器。如果您有多個介面連接多個上游供應商,則流量會減少 N 倍,當然,其中 N 是介面數量;有多少上游你有?

TCP KEEPALIVE 與此無關。您可能正在考慮 tcp syn cookie,您可以使用適當的 sysctl 選項來啟用它。

無論如何,所有這些基本上都是無關緊要的,除非你的威脅模型是幾個無所事事的孩子。長期以來,DDOS 攻擊只是堵塞您的傳入管道。如果您的機器沒有剩餘的連結容量來接收任何有用的流量,那麼它們是否可以保持運作並不重要!

如果您真的擔心頑固的攻擊者,您將需要上游提供者的保護,在更嚴重的情況下,需要專門的反 ddos​​ 服務(很容易找到,我不想推廣任何特定的服務)。

希望這可以幫助。

相關內容