本發(fā)明涉及計算機網(wǎng)絡(luò)技術(shù)領(lǐng)域,尤其涉及一種SYN FLOOD攻擊的清洗方法及系統(tǒng)。
背景技術(shù):
拒絕服務(wù)攻擊(DoS, Denial of Service)是指利用各種服務(wù)請求耗盡被攻擊網(wǎng)絡(luò)的系統(tǒng)資源,從而使被攻擊網(wǎng)絡(luò)無法處理合法用戶的請求。而隨著僵尸網(wǎng)絡(luò)的興起,同時由于攻擊方法簡單、影響較大、難以追查等特點,又使得分布式拒絕服務(wù)攻擊(DDoS,Distributed Denial of Service)得到快速壯大和日益泛濫。成千上萬主機組成的僵尸網(wǎng)絡(luò)為DDoS攻擊提供了所需的帶寬和主機,形成了規(guī)模巨大的攻擊和網(wǎng)絡(luò)流量,對被攻擊網(wǎng)絡(luò)造成了極大的危害。
隨著DDoS攻擊技術(shù)的不斷提高和發(fā)展,ISP、ICP、IDC等運營商面臨的安全和運營挑戰(zhàn)也不斷增多,運營商必須在DDoS威脅影響關(guān)鍵業(yè)務(wù)和應(yīng)用之前,對流量進行檢測并加以清洗,確保網(wǎng)絡(luò)正常穩(wěn)定的運行以及業(yè)務(wù)的正常開展。同時,對DDoS攻擊流量的檢測和清洗也可以成為運營商為用戶提供的一種增值服務(wù),以獲得更好的用戶滿意度。
而多種DDoS攻擊方式,又以SYN_FLOOD最為普遍,也是危害比較大的攻擊之一,很少的攻擊流量就足以能讓一臺服務(wù)器崩潰,要讓服務(wù)器穩(wěn)定地運行,必須有效地清洗處理SYN FLOOD攻擊流量。
目前的SYN FLOOD攻擊清洗方法一般有兩種,其一使用源驗證的方法,通過給發(fā)出SYN請求的客戶端回復帶有COOKIE碼的SYN/ACK回復包,來驗證客戶的合法性;其二是通過為每一個請求建立連接標識,丟棄第一個SYN請求包,根據(jù)TCP協(xié)議重傳特性來檢驗客戶端的合法性。
以上兩種方法都有明顯的缺點,第一種方法因為需要給客戶端回復驗證報文,在系統(tǒng)的網(wǎng)絡(luò)架構(gòu)部署上帶來很大的復雜和麻煩,為每一個SYN請求都生成COOKIE和回復報文,效率上也非常的低下;第二種方法需要為每一個SYN請求建立連接標識,效率也比較低下,大流量的SYN攻擊往往能夠達到每秒幾百萬個報文,其次有些小流量的SYN攻擊,可能會偽造重傳行為,間隔一段時間,使用相同的地址和端口重新發(fā)送SYN報文,只檢驗重傳合法性,就會漏殺這部分流量。
技術(shù)實現(xiàn)要素:
為了解決上述技術(shù)問題,本發(fā)明的目的是提供一種能有效阻止偽造連接,且準確性較高的一種SYN FLOOD攻擊的清洗方法及系統(tǒng)。
本發(fā)明所采取的技術(shù)方案是:
一種SYN FLOOD攻擊的清洗方法,包括以下步驟:
A、建立標識狀態(tài)數(shù)組;
B、當接收到報文時,獲取該報文的總長度和報文的五元組信息;
C、判斷該報文的類型是否為SYN報文且報文的總長度是否大于預設(shè)的長度閾值,若是,則丟棄該報文;反之,則執(zhí)行步驟D;
D、判斷該報文是否為首個報文,若是,則執(zhí)行步驟E;反之,則執(zhí)行步驟F;
E、判斷該報文的類型是否為SYN報文,若是,則將重復建立次數(shù)設(shè)為0,將最后連接時間設(shè)為當前時間,并丟棄該報文;反之,則丟棄該報文;
F、判斷該報文的類型是否為SYN報文,若是,則進行SYN重傳檢測;反之,則放行該報文。
作為所述的一種SYN FLOOD攻擊的清洗方法的進一步改進,所述步驟D具體包括:
D1、根據(jù)報文的五元組信息,對其進行哈希計算,得到該報文對應(yīng)的哈希值;
D2、判斷該哈希值是否在標識狀態(tài)數(shù)組中,若是,則將該哈希值存入標識狀態(tài)數(shù)組中,并執(zhí)行步驟E;反之,則執(zhí)行步驟F。
作為所述的一種SYN FLOOD攻擊的清洗方法的進一步改進,所述步驟F中的SYN重傳檢測,其具體包括:
F1、判斷當前時間與最后連接時間之差是否大于預設(shè)的間隔時間且重復建立次數(shù)是否少于預設(shè)的連接次數(shù),若是,則執(zhí)行步驟F2;反之,則執(zhí)行步驟F3;
F2、將重復建立次數(shù)進行自加1,并將最后連接時間更新為當前時間,并放行該報文;
F3、將最后連接時間更新為當前時間,并丟棄該報文。
作為所述的一種SYN FLOOD攻擊的清洗方法的進一步改進,所述的五元組信息包括源地址、目標地址、源端口、目標端口和IP協(xié)議號。
本發(fā)明所采用的另一技術(shù)方案是:
一種SYN FLOOD攻擊的清洗系統(tǒng),包括:
數(shù)組建立單元,用于建立標識狀態(tài)數(shù)組;
信息獲取單元,用于當接收到報文時,獲取該報文的總長度和報文的五元組信息;
長度判斷單元,用于判斷該報文的類型是否為SYN報文且報文的總長度是否大于預設(shè)的長度閾值,若是,則丟棄該報文;反之,則執(zhí)行首報文判斷單元;
首報文判斷單元,用于判斷該報文是否為首個報文,若是,則執(zhí)行首報文處理單元;反之,則執(zhí)行SYN重傳處理單元;
首報文處理單元,用于判斷該報文的類型是否為SYN報文,若是,則將重復建立次數(shù)設(shè)為0,將最后連接時間設(shè)為當前時間,并丟棄該報文;反之,則丟棄該報文;
SYN重傳處理單元,用于判斷該報文的類型是否為SYN報文,若是,則進行SYN重傳檢測;反之,則放行該報文。
作為所述的一種SYN FLOOD攻擊的清洗系統(tǒng)的進一步改進,所述首報文判斷單元具體包括:
哈希值計算單元,用于根據(jù)報文的五元組信息,對其進行哈希計算,得到該報文對應(yīng)的哈希值;
哈希值判斷單元,用于判斷該哈希值是否在標識狀態(tài)數(shù)組中,若是,則將該哈希值存入標識狀態(tài)數(shù)組中,并執(zhí)行首報文處理單元;反之,則執(zhí)行SYN重傳處理單元。
作為所述的一種SYN FLOOD攻擊的清洗系統(tǒng)的進一步改進,所述SYN重傳處理單元中的SYN重傳檢測,其具體包括:
重傳判斷單元,用于判斷當前時間與最后連接時間之差是否大于預設(shè)的間隔時間且重復建立次數(shù)是否少于預設(shè)的連接次數(shù),若是,則執(zhí)行SYN重傳處理單元;反之,則執(zhí)行SYN非重傳處理單元;
SYN重傳處理單元,用于將重復建立次數(shù)進行自加1,并將最后連接時間更新為當前時間,并放行該報文;
SYN非重傳處理單元,用于將最后連接時間更新為當前時間,并丟棄該報文。
作為所述的一種SYN FLOOD攻擊的清洗系統(tǒng)的進一步改進,所述的五元組信息包括源地址、目標地址、源端口、目標端口和IP協(xié)議號。
本發(fā)明的有益效果是:
本發(fā)明一種SYN FLOOD攻擊的清洗方法及系統(tǒng)通過過濾長度過大的SYN報文,能夠極大的減輕在連接建立分析時的壓力,其次在連接標識建立之后的分析,除了判斷SYN的重傳時間外,再加上重傳次數(shù)的限制,能夠防止攻擊者模仿重傳行為偽造成合法流量。
附圖說明
下面結(jié)合附圖對本發(fā)明的具體實施方式作進一步說明:
圖1是本發(fā)明一種SYN FLOOD攻擊的清洗方法的步驟流程圖;
圖2是本發(fā)明一種SYN FLOOD攻擊的清洗方法中首報文判斷的步驟流程圖;
圖3是本發(fā)明一種SYN FLOOD攻擊的清洗方法中SYN重傳檢測的步驟流程圖;
圖4是本發(fā)明一種SYN FLOOD攻擊的清洗系統(tǒng)的模塊方框圖。
具體實施方式
參考圖1,本發(fā)明一種SYN FLOOD攻擊的清洗方法,包括以下步驟:
A、建立標識狀態(tài)數(shù)組;
B、當接收到報文時,獲取該報文的總長度和報文的五元組信息;
C、判斷該報文的類型是否為SYN報文且報文的總長度是否大于預設(shè)的長度閾值,若是,則丟棄該報文;反之,則執(zhí)行步驟D;
D、判斷該報文是否為首個報文,若是,則執(zhí)行步驟E;反之,則執(zhí)行步驟F;
E、判斷該報文的類型是否為SYN報文,若是,則將重復建立次數(shù)設(shè)為0,將最后連接時間設(shè)為當前時間,并丟棄該報文;反之,則丟棄該報文;
F、判斷該報文的類型是否為SYN報文,若是,則進行SYN重傳檢測;反之,則放行該報文。
其中,本發(fā)明先是通過檢測報文長度從而避免變種的大流量SYN攻擊,因為SYN攻擊往往為了達到較大的流量,會制造較長的SYN報文,大流量的SYN攻擊通常能夠達到每秒幾百萬個報文,這種情況下通過判斷SYN長度至少能過濾掉80%以上的SYN報文,然后再通過丟棄首報文的SYN連接認證方式并且限制SYN重發(fā)的間隔時間和SYN重發(fā)次數(shù)的基礎(chǔ)上,來建立正常的五元組連接標識后,根據(jù)已經(jīng)建立的連接標識來識別SYN報文并允許或禁止其通過。
參考圖2,進一步作為優(yōu)選的實施方式,所述步驟D具體包括:
D1、根據(jù)報文的五元組信息,對其進行哈希計算,得到該報文對應(yīng)的哈希值;
D2、判斷該哈希值是否在標識狀態(tài)數(shù)組中,若是,則將該哈希值存入標識狀態(tài)數(shù)組中,并執(zhí)行步驟E;反之,則執(zhí)行步驟F。
參考圖3,進一步作為優(yōu)選的實施方式,所述步驟F中的SYN重傳檢測,其具體包括:
F1、判斷當前時間與最后連接時間之差是否大于預設(shè)的間隔時間且重復建立次數(shù)是否少于預設(shè)的連接次數(shù),若是,則執(zhí)行步驟F2;反之,則執(zhí)行步驟F3;
F2、將重復建立次數(shù)進行自加1,并將最后連接時間更新為當前時間,并放行該報文;
F3、將最后連接時間更新為當前時間,并丟棄該報文。
進一步作為優(yōu)選的實施方式,所述的五元組信息包括源地址、目標地址、源端口、目標端口和IP協(xié)議號。
本發(fā)明實施例中,預設(shè)的長度閾值為100,預設(shè)的間隔時間為1s,預設(shè)的連接次數(shù)為10次,
S1、建立標識狀態(tài)數(shù)組;
S2、當接收到報文時,獲取該報文的總長度和報文的五元組信息;
S3、判斷該報文的類型是否為SYN報文且報文的總長度是否大于100,若是,則丟棄該報文;反之,則執(zhí)行步驟S4;
S4、根據(jù)報文的五元組信息,對其進行哈希計算,得到該報文對應(yīng)的哈希值;
S5、判斷該哈希值是否在標識狀態(tài)數(shù)組中,若是,則將該哈希值存入標識狀態(tài)數(shù)組中,并執(zhí)行步驟S6;反之,則執(zhí)行步驟S7;
S6、判斷該報文的類型是否為SYN報文,若是,則將重復建立次數(shù)設(shè)為0,將最后連接時間設(shè)為當前時間,并丟棄該報文;反之,則丟棄該報文;
S7、判斷該報文的類型是否為SYN報文,若是,則進行SYN重傳檢測;反之,則放行該報文。
所述SYN重傳檢測的實施例如下:
S71、判斷當前時間與最后連接時間之差是否大于預設(shè)的間隔時間且重復建立次數(shù)是否少于10次,若是,則執(zhí)行步驟S72;反之,則執(zhí)行步驟S73;
S72、將重復建立次數(shù)進行自加1,并將最后連接時間更新為當前時間,并放行該報文;
S73、將最后連接時間更新為當前時間,并丟棄該報文。
參考圖4,本發(fā)明一種SYN FLOOD攻擊的清洗系統(tǒng),包括:
數(shù)組建立單元,用于建立標識狀態(tài)數(shù)組;
信息獲取單元,用于當接收到報文時,獲取該報文的總長度和報文的五元組信息;
長度判斷單元,用于判斷該報文的類型是否為SYN報文且報文的總長度是否大于預設(shè)的長度閾值,若是,則丟棄該報文;反之,則執(zhí)行首報文判斷單元;
首報文判斷單元,用于判斷該報文是否為首個報文,若是,則執(zhí)行首報文處理單元;反之,則執(zhí)行SYN重傳處理單元;
首報文處理單元,用于判斷該報文的類型是否為SYN報文,若是,則將重復建立次數(shù)設(shè)為0,將最后連接時間設(shè)為當前時間,并丟棄該報文;反之,則丟棄該報文;
SYN重傳處理單元,用于判斷該報文的類型是否為SYN報文,若是,則進行SYN重傳檢測;反之,則放行該報文。
進一步作為優(yōu)選的實施方式,所述首報文判斷單元具體包括:
哈希值計算單元,用于根據(jù)報文的五元組信息,對其進行哈希計算,得到該報文對應(yīng)的哈希值;
哈希值判斷單元,用于判斷該哈希值是否在標識狀態(tài)數(shù)組中,若是,則將該哈希值存入標識狀態(tài)數(shù)組中,并執(zhí)行首報文處理單元;反之,則執(zhí)行SYN重傳處理單元。
進一步作為優(yōu)選的實施方式,所述SYN重傳處理單元中的SYN重傳檢測,其具體包括:
重傳判斷單元,用于判斷當前時間與最后連接時間之差是否大于預設(shè)的間隔時間且重復建立次數(shù)是否少于預設(shè)的連接次數(shù),若是,則執(zhí)行SYN重傳處理單元;反之,則執(zhí)行SYN非重傳處理單元;
SYN重傳處理單元,用于將重復建立次數(shù)進行自加1,并將最后連接時間更新為當前時間,并放行該報文;
SYN非重傳處理單元,用于將最后連接時間更新為當前時間,并丟棄該報文。
進一步作為優(yōu)選的實施方式,所述的五元組信息包括源地址、目標地址、源端口、目標端口和IP協(xié)議號。
從上述內(nèi)容可知,本發(fā)明一種SYN FLOOD攻擊的清洗方法及系統(tǒng)先是通過過濾長度過大的SYN報文,能夠極大的減輕在連接建立分析時的壓力,其次在連接標識建立之后的分析,除了判斷SYN的重傳時間外,再加上重傳次數(shù)的限制,能夠防止攻擊者模仿重傳行為偽造成合法流量。
以上是對本發(fā)明的較佳實施進行了具體說明,但本發(fā)明創(chuàng)造并不限于所述實施例,熟悉本領(lǐng)域的技術(shù)人員在不違背本發(fā)明精神的前提下還可做作出種種的等同變形或替換,這些等同的變形或替換均包含在本申請權(quán)利要求所限定的范圍內(nèi)。