SYN Flood
SYN Flood是互聯網上最原始、最經典的DDoS攻擊之一。它利用了TCP協議的三次握手機制,攻擊者通常向服務器發送海量的變源IP地址或變源端口的TCP SYN報文,服務器響應了這些報文后就會生成大量的半連接,當系統資源被耗盡后,服務器將無法提供正常的服務。
增加服務器性能,提供更多的連接能力對于SYN Flood的海量報文來說杯水車薪,防御SYN Flood的關鍵在于判斷哪些連接請求來自于真實源,屏蔽非真實源的請求以保障正常的業務請求能得到服務。
SYN Flood是如何發生的
SYN Flood顧名思義就是用洪水一樣的SYN報文進行攻擊。SYN報文指的是TCP協議中的Synchronize報文,是TCP三次握手過程中的首個報文。正常的TCP三次握手過程如下:
在連接超時之前,服務器會一直等待ACK報文,此時該連接狀態為半開放連接(也稱半連接)。半連接會占用服務器的連接數,當連接數被占滿時,服務器將無法提供正常的服務。黑客正是通過這個機制來實現SYN Flood。黑客通常通過偽造的源IP地址或端口,向服務器發送大量的SYN報文,請求建立TCP連接。
由于源IP地址或端口是偽造的,服務器發送的SYN-ACK報文永遠不會被真實的客戶端接收和回應。極少數情況下,黑客也會使用真實源IP地址,但他們只是通過攻擊工具發送海量SYN報文,工具并不會響應來自服務器SYN-ACK報文。無論如何服務器都接收不到ACK報文,產生了大量的半連接。
此時服務器需要維持一張巨大的等待列表,不停地重試發送SYN-ACK報文,同時大量的資源無法釋放。當服務器被這些惡意的半連接占滿時,就不會再響應新的SYN報文,從而導致正常的用戶無法建立TCP連接。
如何識別和防御SYN Flood
對于服務器自身來說,最直接的做法就是提高服務能力,比如組建集群/升級硬件。但是這種方式成本巨大,且對于海量的攻擊報文來說并沒有太大的作用。因此必須在這些攻擊報文到達服務器之前就進行攔截。
然而對于防火墻這類安全設備而言,SYN報文是正常的業務報文,防火墻的安全策略必須允許其通過,否則服務器就無法對外提供服務。管理員無法預知哪些是虛假源,也無法做到快速、自動地配置或取消安全策略來應對不可預期的攻擊流量。
此時就需要Anti-DDoS系統的能力,它部署在網絡入口處,在服務器之前處理SYN報文,識別出虛假源,屏蔽來自這些地址的報文,只將合法的SYN報文傳遞給服務器。Anti-DDoS系統處理SYN報文主要有兩種手段,源認證和首包丟棄。
源認證:Anti-DDoS系統攔截客戶端發送的SYN報文,代替服務器向客戶端發送SYN-ACK報文,如果客戶端不應答,則認為該客戶端為虛假源;如果客戶端應答,則Anti-DDoS系統認為該客戶端為真實源,并將其IP地址加入白名單,在一段時間允許該源發送的所有SYN報文通過,也不做代答。
首包丟棄:Anti-DDoS系統利用首包丟棄來解決大量反彈的SYN-ACK報文會對網絡造成一定壓力的問題。正常情況下客戶端發送SYN報文后如果在一定時間沒有收到服務器的SYN-ACK應答,客戶端會重新發送SYN報文。Anti-DDoS系統會丟棄掉收到的第一個SYN報文。SYN Flood攻擊時,黑客發送的絕大多數是變源的SYN報文,所有的SYN報文對于Anti-DDoS系統來說都是首包,都將被直接丟棄。如果客戶端重傳了SYN報文,Anti-DDoS系統再對該報文進行源認證。
編輯:jq
-
DDoS
+關注
關注
3文章
171瀏覽量
23064 -
服務器
+關注
關注
12文章
9123瀏覽量
85331 -
防火墻
+關注
關注
0文章
417瀏覽量
35608 -
TCP
+關注
關注
8文章
1353瀏覽量
79055
原文標題:什么是SYN Flood?
文章出處:【微信號:huaweidoc,微信公眾號:華為產品資料】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論