SYN Flood(半開放攻擊)是一種拒絕服務(DDoS)攻擊,其目的是通過消耗所有可用的伺服器資源使伺服器不可用於合法流量。通過重複發送初始連接請求(SYN)數據包,攻擊者能夠壓倒目標伺服器機器上的所有可用埠,導致目標設備根本不響應合法流量。

SYN Flood攻擊如何工作?

通過利用TCP連接的握手過程,SYN Flood攻擊工作。在正常情況下,TCP連接顯示三個不同的進程以進行連接。

1.首先,客戶端向伺服器發送SYN數據包,以便啟動連接。

2.伺服器響應該初始包與SYN / ACK包,以確認通信。

3.最後,客戶端返回ACK數據包以確認從伺服器接收到的數據包。完成這個數據包發送和接收序列後,TCP連接打開並能發送和接收數據。

為了創建拒絕服務,攻擊者利用這樣的漏洞,即在接收到初始SYN數據包之後,伺服器將用一個或多個SYN / ACK數據包進行響應,並等待握手中的最後一步。這是它的工作原理:

攻擊者向目標伺服器發送大量SYN數據包,通常會使用欺騙性的IP地址。

然後,伺服器響應每個連接請求,並留下開放埠準備好接收響應。

當伺服器等待從未到達的最終ACK數據包時,攻擊者繼續發送更多的SYN數據包。每個新的SYN數據包的到達導致伺服器暫時維持新的開放埠連接一段時間,一旦所有可用埠被使用,伺服器就無法正常工作。

在網路中,當伺服器斷開連接但連接另一端的機器沒有連接時,連接被認為是半開的。在這種類型的DDoS攻擊中,目標伺服器不斷離開打開的連接,等待每個連接超時,然後埠再次可用。結果是這種攻擊可以被認為是「半開攻擊」。

SYN洪水可以以三種不同的方式發生:

直接攻擊IP地址不被欺騙的SYN Flood被稱為直接攻擊。在這次攻擊中,攻擊者根本不掩蓋其IP地址。由於攻擊者使用具有真實IP地址的單個源設備來創建攻擊,因此攻擊者極易受到發現和緩解的影響。為了在目標機器上創建半開狀態,黑客可以防止其機器響應伺服器的SYN-ACK數據包。這通常是通過阻止除SYN數據包之外的傳出數據包的防火牆規則來實現的,或者在到達惡意用戶機器之前過濾任何傳入的SYN-ACK數據包。實際上,這種方法很少使用(如果有的話),因為減輕是非常簡單的 – 只是阻止每個惡意系統的IP地址。

欺騙性攻擊:惡意用戶也可以欺騙他們發送的每個SYN數據包上的IP地址,以抑制緩解工作,使其身份更難發現。雖然數據包可能被欺騙,但這些數據包可能會被追溯到其來源。很難做這種偵探工作,但並不是不可能的,特別是如果互聯網服務提供商(ISP)願意幫助的話。

分散式攻擊(DDoS):如果使用殭屍網路創建攻擊,則將攻擊溯源到源的可能性很低。對於增加的混淆級別,攻擊者可能會使每個分散式設備也欺騙發送數據包的IP地址。如果攻擊者正在使用諸如未來殭屍網路的殭屍網路,他們通常不會關心被感染設備的IP掩蔽

通過使用SYN Flood攻擊,惡意攻擊者可以嘗試在目標設備或服務中創建拒絕服務,其流量大大低於其他DDoS攻擊。為了使目標周邊的網路基礎設施飽和,SYN攻擊只需要比目標操作系統中可用的積壓更大的體積攻擊。如果攻擊者能夠確定積壓的大小,並且在超時之前每個連接將被打開多長時間,攻擊者可以定位禁用系統所需的確切參數,從而將總流量減少到最小必要量以創建拒絕服務。

如何減輕SYN洪水攻擊?

長期以來已知SYN洪水脆弱性,並且已經採用了許多緩解途徑。幾種方法包括:

增加積壓隊列

目標設備上的每個操作系統都具有一定數量的半開放連接。對大量SYN數據包的一個響應是增加操作系統允許的可能半開連接的最大數量。為了成功增加最大積壓,系統必須預留額外的內存資源來處理所有新的請求。如果系統沒有足夠的內存來處理增加的積壓隊列大小,系統性能將受到負面影響,但仍然可能優於拒絕服務。

回收最早的半開TCP連接

一旦積壓已被填補,另一個緩解策略就是覆蓋最早的半開式連接。這種策略要求合法連接可以在比可以填充惡意SYN數據包的積壓時間更短的時間內完全建立。當攻擊量增加時,或者如果積壓量太小而不實際,這種特定的防禦就會失敗。

SYN cookie

這個策略涉及伺服器創建一個cookie。為了避免在積壓已經被填滿的情況下連接丟失的風險,伺服器使用SYN-ACK數據包對每個連接請求進行響應,然後從積壓中刪除SYN請求,從存儲器中刪除請求並使埠打開,準備建立新的連接。如果連接是合法請求,並且最終的ACK數據包從客戶端計算機發送回伺服器,則伺服器將重建(有一些限制)SYN積壓隊列條目。儘管這種緩解措施確實丟失了有關TCP連接的一些信息,但是優於允許合法用戶因攻擊而發生拒絕服務。

原文:什麼是SYN Flood攻擊? | 美國伺服器


推薦閱讀:
相关文章