拒絕服務攻擊時,攻擊者想非法占用被攻擊者的一些資源,比如如:帶寬,CPU,內存等等,使得被攻擊者無法響應正常用戶的請求。
講泛洪攻擊之前,我們先了解一下DoS攻擊和DDoS攻擊,這兩個攻擊大體相同,前者的意思是:拒絕服務攻擊;后者的意思是:分布式拒絕服務攻擊。不要看這兩個攻擊前一個比后一個多了一個字母,后一個攻擊比前你一個攻擊少了"分布式"三個字,其實他們具體的來說還是有所區分的。
DDoS是DoS攻擊中的一種方法。下面我們來詳細看一下區分:
DoS(拒絕服務):不是DOS操作系統,造成DoS的攻擊行為被稱為DoS攻擊,它的目的是使得計算機或者網絡我無法提供正常服務。最常見的DOS攻擊有計算機網絡帶寬攻擊和連通性的攻擊。
DDoS(分布式拒絕服務);這個的攻擊借助於客戶/服務器技術,將多個計算機聯合起來作為一個攻擊平台,對一個或者是多個目標發動攻擊,從而成倍的提高就裁決服務攻擊的威力。
簡單地說,DDoS的攻擊威力要大於DoS的攻擊威力,DDoS主要是發動群體攻擊。

以上的內容就是對DoS和DDoS攻擊文字上的一個概念。為了更加直觀地表達出來,我在下面附一張圖:

這幅圖呢就是TCP的通信的三次握手,如果說攻擊端,發送完第一次握手的數據后,然后就"消失"了,那么服務器就會不斷的發送第二次握手的數據,可是攻擊端的人找不到了。於是,服務器的資源大量被消耗,直到死機為止。當然了,如果要完全弄懂機制,需要對TCP有相當深入的了解。
現在回到我們的原題:SYN泛洪攻擊,其實這個攻擊主要利用的就是TCP三次握手機制的缺陷。
TCP SYN泛洪主要發生在OSI的第四層,(關於這個OSI我會在后面的文章給大家講述。)利用了這個TCP三次握手的特性。
A(攻擊者)發送TCP SYN,SYN是TCP三次握手中的第一個數據包,而當這個服務器返回ACK以后,A不再進行確認,那這個連接就處在了一個掛起的狀態,也就是半連接的意思,那么服務器收不到再確認的一個消息,還會重復發送ACK給A。這樣一來就會更加浪費服務器的資源。A就對服務器發送非法大量的這種TCP連接,由於每一個都沒法完成握手的機制,所以它就會消耗服務器的內存最后可能導致服務器死機,就無法正常工作了。更進一步說,如果這些半連接的握手請求是惡意程序發出,並且持續不斷,那么就會導致服務端較長時間內喪失服務功能——這樣就形成了DoS攻擊。這種攻擊方式就稱為SYN泛洪攻擊。
那么我們如何去防范這種SYN攻擊呢?
其實最常用的一個手段就是優化主機系統設置。比如降低SYN timeout時間,使得主機盡快釋放半連接的占用或者采用SYN cookie設置,如果短時間內收到了某個IP的重復SYN請求,我們就認為受到了攻擊。我們合理的采用防火牆設置等外部網絡也可以進行攔截。