- 相關推薦
Syn Flood攻擊是利用TCP/IP協議的什么漏洞
在現實社會中,協議的使用頻率呈上升趨勢,簽訂協議可以使雙方受到法律的保護。協議到底怎么寫才合適呢?下面是小編收集整理的Syn Flood攻擊是利用TCP/IP協議的什么漏洞,希望能夠幫助到大家。
Syn Flood攻擊是利用TCP/IP協議的什么漏洞1
答:客戶端通過發送在TCP報頭中SYN標志置位的數據分段到服務端來請求建立連接。通常情況下,服務端會按照IP報頭中的來源地址來返回SYN/ACK置位的數據包給客戶端,客戶端再返回ACK到服務端來完成一個完整的連接(Figure-1)。
在攻擊發生時,客戶端的來源IP地址是經過偽造的(spoofed),現行的IP路由機制僅檢查目的IP地址并進行轉發,該IP包到達目的主機后返回路徑無法通過路由達到的,于是目的主機無法通過TCP三次握手建立連接。在此期間因為TCP緩存隊列已經填滿,而拒絕新的連接請求。目的主機一直嘗試直至超時(大約75秒)。這就是該攻擊類型的基本機制。
發動攻擊的主機只要發送較少的,來源地址經過偽裝而且無法通過路由達到的SYN連接請求至目標主機提供TCP服務的端口,將目的主機的TCP緩存隊列填滿,就可以實施一次成功的'攻擊。實際情況下,發動攻擊時往往是持續且高速的。
SYN Flood攻擊
1、攻擊原理
SYN Flood是拒絕服務攻擊的一種,所謂拒絕服務攻擊,即想辦法讓目標機器停止提供服務。
這是一種利用TCP協議缺陷,發送大量偽造的TCP連接請求,使被攻擊方資源耗盡(CPU滿負荷或內存不足)的攻擊方式。
如果一個計算機系統崩潰或其帶寬耗盡或其硬盤被填滿,導致其不能提供正常的服務,就構成拒絕服務。
TCP的三次握手
由客戶端向服務器發送一個包含SYN標志的數據包,表明請求與服務器進行通信,此時同服務器建立了第一次握手。
服務器會返回一個SYN+ACK的報文,表示客戶端的請求被接受,此時同服務器建立了第二次握手。
最后客戶端在發送一個確認報文ACK,此時同服務器建立了第三次握手,TCP連接成功。
如果發生了SYN Flood攻擊,攻擊者會在短時間內偽造并不存在的IP地址,向服務器不斷的發送SYN包,并且建立第一次握手,服務器則會回復ACK確認報文,建立第二次握手,在進行第三次握手時,服務器等待攻擊者的確認,但此時攻擊者并不會回復,服務器就會不斷重發直至超時,這些偽造的SYN包將長時間占用未連接隊列,其他客戶的正常的SYN請求不能被接收,目標系統運行緩慢,造成網絡擁堵。
2、SYN Flood攻擊簡單示例
同一局域網下
攻擊者:Kali Linux IP:192.168.220.136
被攻擊者:Windows XP IP:192.168.220.142
1)查看兩虛擬機的IP地址,判斷是否在同一網段下
Kali Linux:ifconfig
Windows XP:ipconfig
2)測試連通性(用ping指令)
3)在Windows XP上打開任務管理器——性能(監控CPU的利用率)
4)開始SYN Flood攻擊
Kali Linux:hping3 -q -n -a 偽造源IP地址 -S -s 53 --keep -p 445 --flood 目標IP地址
5)查看結果
查看Windows XP 的任務管理器,發現在被攻擊的同時,很快Windows XP的性能使用率就已達到100%(居高不下)
表明攻擊成功。
6)wireshark抓包觀察
可以發現有大量的源地址為偽造地址(1.1.1.1)的TCP包。
目的主機處理不過來,以致于資源逐步被耗盡,最終導致系統崩潰。
Syn Flood攻擊是利用TCP/IP協議的什么漏洞2
一、syn flood攻擊原理是什么?
syn flood攻擊利用了TCP協議實現上的一個缺陷,通過向網絡服務所在端口發送大量的偽造源地址的攻擊報文,就可能造成目標服務器中的半開連接隊列被占滿,從而阻止其他合法用戶進行訪問。這種攻擊早在1996年就被發現,但至今仍然顯示出強大的生命力。很多操作系統,甚至防火墻、路由器都無法有效地防御這種攻擊,而且由于它可以方便地偽造源地址,追查起來非常困難。
客戶端發起連接的報文即為syn報文。當攻擊者發送大量的偽造IP端口的syn報文時,服務端接收到syn報文后,新建一共表項插入到半連接隊列,并發送syn ack。但由于這些syn報文都是偽造的,發出去的syn ack報文將沒有回應。TCP是可靠協議,這時就會重傳報文,默認重試次數為5次,重試的間隔時間從1s開始每次都番倍,分別為1s + 2s + 4s + 8s +16s = 31s,第5次發出后還要等32s才知道第5次也超時了,所以一共是31 + 32 = 63s。
也就是說一共假的syn報文,會占用TCP準備隊列63s之久,而半連接隊列默認為1024,系統默認不同,可 cat /proc/sys/net/ipv4/tcp max syn backlog c查看。也就是說在沒有任何防護的情況下,每秒發送200個偽造syn包,就足夠撐爆半連接隊列,從而使真正的`連接無法建立,無法響應正常請求。
一臺普通的每秒就可以輕松偽造100w個syn包。因此即使把隊列大小調大最大也無濟于事。
二、如何防范syn flood攻擊?
針對syn flood攻擊有2種比較通用的防范機制:
1.cookie源認證:
原理是syn報文首先由DDOS防護系統來響應syn ack。帶上特定的sequence number (記為cookie)。真實的客戶端會返回一個ack 并且Acknowledgment number 為cookie+1。而偽造的客戶端,將不會作出響應。這樣我們就可以知道那些IP對應的客戶端是真實的,將真實客戶端IP加入白名單。下次訪問直接通過,而其他偽造的syn報文就被攔截。防護示意圖如下:
2.reset認證:
Reset認證利用的是TCP協議的可靠性,也是首先由DDOS防護系統來響應syn。防護設備收到syn后響應syn ack,將Acknowledgement number (確認號)設為特定值(記為cookie)。當真實客戶端收到這個報文時,發現確認號不正確,將發送reset報文,并且sequence number 為cookie + 1。
而偽造的源,將不會有任何回應。這樣我們就可以將真實的客戶端IP加入白名單。
通常在實際應用中還會結合首包丟棄的方式結合源認證一起使用,首包丟棄原理為:在DDOS防護設備收到syn報文后,記錄5元組,然后丟棄。正常用戶將重傳syn報文,防護設備在收到報文命中5元組,并且在規定時間內,則轉發。當重傳syn報文到達一定閥值時,在啟用上述的源認證。這樣就能減少反射syn ack報文的數量,緩解網絡擁堵,同時對防護不產生影響。
【Syn Flood攻擊是利用TCP/IP協議的什么漏洞】相關文章:
TCP/IP安全性研究03-08
在TMS320VC5402上實現的嵌入式TCP/IP協議棧03-19
嵌入式TCP/IP協議單片機技術在網絡通信中的應用03-07
利用ASP獲取客戶端真實IP地址03-18
TCP協議族擁塞控制機制分析與研究03-08
法律漏洞與司法適用03-09