隔第一預(yù)設(shè)時(shí)長(zhǎng)(假設(shè)為3秒)都會(huì)進(jìn)行 一次報(bào)文識(shí)別,假設(shè)在第一個(gè)預(yù)設(shè)時(shí)長(zhǎng)內(nèi)進(jìn)入檢測(cè)隊(duì)列的TCP SYN報(bào)文中包括以下三種類 型的TCP SYN報(bào)文,且其記錄結(jié)果如表一所示:
[0057] 表一
[0058] 則根據(jù)記錄結(jié)果可以知道,
[0059] 源IP地址、目的IP地址、源端口、目的端口分別為I. I. L 1、2. 2. 2. 2、5000、5000 的TCP SYN報(bào)文,在第一預(yù)設(shè)時(shí)長(zhǎng)內(nèi)統(tǒng)計(jì)得到的報(bào)文數(shù)量是1,因此不能確定其是正常TCP SYN報(bào)文或異常TCP SYN報(bào)文,將其作為待定報(bào)文在下一個(gè)第一預(yù)設(shè)時(shí)長(zhǎng)內(nèi)繼續(xù)參與報(bào)文 識(shí)別(下一第一預(yù)設(shè)時(shí)長(zhǎng)內(nèi)仍記錄該報(bào)文并根據(jù)記錄結(jié)果進(jìn)行識(shí)別);
[0060] 源IP地址、目的IP地址、源端口、目的端口分別為I. 1. 1·2、2·2·2·2、6000、5000 的TCP SYN報(bào)文,在第一預(yù)設(shè)時(shí)長(zhǎng)內(nèi)統(tǒng)計(jì)得到的報(bào)文數(shù)量是3,而最近兩次接收?qǐng)?bào)文的時(shí)間 差是4秒,顯然符合TCP SYN報(bào)文重傳的特點(diǎn),因此可以確定為正常TCP SYN報(bào)文,此時(shí)在 該接口上下發(fā)用于將該類型報(bào)文加入該接口對(duì)應(yīng)的上送隊(duì)列的第一 ACL,此后再在該接口 接收到該類型報(bào)文時(shí),就可以根據(jù)匹配的第一 ACL將報(bào)文加入到該接口對(duì)應(yīng)的上送隊(duì)列;
[0061] 源IP地址、目的IP地址、源端口、目的端口分別為I. I. L 3、2. 2. 2. 2、7000、5000 的TCP SYN報(bào)文,在第一預(yù)設(shè)時(shí)長(zhǎng)內(nèi)統(tǒng)計(jì)得到的報(bào)文數(shù)量是10,而最近兩次接收?qǐng)?bào)文的時(shí) 間差是〇. 2秒,無(wú)論是報(bào)文數(shù)量還是最近兩次接收?qǐng)?bào)文的時(shí)間差,顯然都不符合TCP SYN報(bào) 文重傳的特點(diǎn),因此可以確定為異常TCP SYN報(bào)文,此時(shí)在該接口上下發(fā)用于丟棄該類型報(bào) 文的第二ACL,此后再接收到該類型報(bào)文時(shí),就可以根據(jù)匹配的第二ACL丟棄報(bào)文。
[0062] 第二個(gè)第一預(yù)設(shè)時(shí)長(zhǎng)內(nèi)、第三個(gè)第一預(yù)設(shè)時(shí)長(zhǎng)內(nèi)、……第η個(gè)第一預(yù)設(shè)時(shí)長(zhǎng)內(nèi)的 報(bào)文識(shí)別過(guò)程與第一個(gè)第一預(yù)設(shè)市場(chǎng)內(nèi)的報(bào)文識(shí)別過(guò)程相同(相鄰兩個(gè)第一預(yù)設(shè)時(shí)長(zhǎng)之 間沒(méi)有時(shí)間間隔)。
[0063] 如果該接口在連續(xù)N個(gè)第一預(yù)設(shè)時(shí)長(zhǎng)內(nèi)接收TCP SYN報(bào)文的速率均小于預(yù)設(shè)上送 速率門限,則刪除在該接口下發(fā)的所有第一 ACL和第二ACL,并將此時(shí)(第N個(gè)第一預(yù)設(shè)時(shí) 長(zhǎng)結(jié)束后)檢測(cè)隊(duì)列中的所有TCP SYN報(bào)文移送至上送隊(duì)列進(jìn)行上送CPU處理。此后再在 該接口接收的TCP SYN報(bào)文將被加入上送隊(duì)列,直到再次在該接口上檢測(cè)到TCP SYN FLOOD 攻擊。
[0064] 以上對(duì)本發(fā)明實(shí)施例用于TCP SYN FLOOD的防攻擊方法進(jìn)行了詳細(xì)說(shuō)明,本發(fā)明 還提供了一種用于TCP SYN FLOOD的防攻擊裝置,下面結(jié)合圖2進(jìn)行詳細(xì)說(shuō)明。
[0065] 參見圖2,圖2是本發(fā)明實(shí)施例用于TCP SYN FLOOD的防攻擊裝置的結(jié)構(gòu)示意圖, 如圖2所示,該裝置包括:檢測(cè)單元201、接收單元202、處理單元203 ;其中,
[0066] 檢測(cè)單元201,用于檢測(cè)是否在接口上發(fā)生了 TCP SYN FLOOD攻擊;
[0067] 接收單元202,用于檢測(cè)單元201在接口上檢測(cè)到TCP SYN FLOOD攻擊后,將在該 接口接收到的TCP SYN報(bào)文加入檢測(cè)隊(duì)列;
[0068] 處理單元203,用于對(duì)加入檢測(cè)隊(duì)列的TCP SYN報(bào)文進(jìn)行識(shí)別,確定正常TCP SYN 報(bào)文和異常TCP SYN報(bào)文,將正常TCP SYN報(bào)文從檢測(cè)隊(duì)列移送至上送隊(duì)列以執(zhí)行上送CPU 處理,并刪除檢測(cè)隊(duì)列中的異常TCP SYN報(bào)文;其中,具有相同源IP地址、源端口、目的IP 地址、目的端口的TCP SYN報(bào)文屬于同一類型報(bào)文。
[0069] 圖2所示裝置中,
[0070] 所述接收單元202,在檢測(cè)單元201在接口上檢測(cè)到TCP SYN FLOOD攻擊之前,進(jìn) 一步用于:將在該接口接收到的TCP SYN報(bào)文加入上送隊(duì)列以執(zhí)行上送CPU處理;
[0071] 所述檢測(cè)單元201檢測(cè)接口上是否發(fā)生TCP SYN FLOOD攻擊時(shí),用于:如果上送隊(duì) 列的上送速率超過(guò)預(yù)設(shè)上送速率門限,則確定該接口上發(fā)生了 TCP SYN FLOOD攻擊,否則, 確定該接口上未發(fā)生TCP SYN FLOOD攻擊。
[0072] 圖2所示裝置中,
[0073] 所述處理單元203對(duì)加入檢測(cè)隊(duì)列的TCP SYN報(bào)文進(jìn)行識(shí)別,確定正常TCP SYN 報(bào)文和異常TCP SYN報(bào)文,包括:
[0074] 在第一預(yù)設(shè)時(shí)長(zhǎng)內(nèi)對(duì)檢測(cè)隊(duì)列中的TCP SYN報(bào)文進(jìn)行記錄,包括:每一類型報(bào)文 的數(shù)量、最近一次接收該類型報(bào)文的時(shí)間、最近兩次接收該類型報(bào)文的時(shí)間差;
[0075] 所述第一預(yù)設(shè)時(shí)長(zhǎng)結(jié)束時(shí),如果記錄的該類型報(bào)文的數(shù)量為1,則將該類型報(bào)文作 為待定報(bào)文在下一個(gè)第一預(yù)設(shè)時(shí)長(zhǎng)內(nèi)進(jìn)行記錄;如果記錄的該類型報(bào)文的數(shù)量大于1、且 不大于預(yù)設(shè)的TCP SYN報(bào)文最大重傳次數(shù)、且最近兩次接收該類型報(bào)文的時(shí)間差符合預(yù)設(shè) 的TCP SYN報(bào)文重傳時(shí)間間隔,則確定該類型報(bào)文為正常TCP SYN報(bào)文;如果記錄的該類型 報(bào)文的數(shù)量大于預(yù)設(shè)的TCP SYN報(bào)文最大重傳次數(shù),或者記錄的該類型報(bào)文的數(shù)量大于1、 且不大于預(yù)設(shè)的TCP SYN報(bào)文最大重傳次數(shù)、且最近兩次接收該類型報(bào)文的時(shí)間差不符合 預(yù)設(shè)的TCP SYN報(bào)文重傳時(shí)間間隔,則確定該類型報(bào)文為異常TCP SYN報(bào)文;其中,具有相 同源IP地址、源端口、目的IP地址、目的端口的TCP SYN報(bào)文屬于同一類型報(bào)文。
[0076] 圖2所示裝置中,
[0077] 所述處理單元203,確定該類型報(bào)文為正常TCP SYN報(bào)文后,進(jìn)一步用于:在該接 口下發(fā)第一 ACL,該第一 ACL包括:該類型報(bào)文的源IP地址、源端口、目的IP地址、目的端 P ;
[0078] 所述處理單元203,確定該類型報(bào)文為異常TCP SYN報(bào)文后,進(jìn)一步用于:在該接 口下發(fā)第二ACL,該第二ACL包括:該類型報(bào)文的源IP地址、源端口、目的IP地址、目的端 P ;
[0079] 所述接收單元202,在檢測(cè)單元201在接口上檢測(cè)到TCP SYN FLOOD攻擊之后,進(jìn) 一步用于:如果在該接口接收到的TCP SYN報(bào)文符合第一 ACL,則將該TCP SYN報(bào)文加入上 送隊(duì)列以執(zhí)行上送CPU處理,如果在該接口接收到的TCP SYN報(bào)文符合第二ACL,則丟棄該 TCP SYN報(bào)文,否則,將在該接口接收到的TCP SYN報(bào)文加入檢測(cè)隊(duì)列。
[0080] 圖2所示裝置中,
[0081] 所述處理單元203,在檢測(cè)單元201在接口上檢測(cè)到TCP SYN FLOOD攻擊之后,進(jìn) 一步用于:計(jì)算該接口在每個(gè)第一預(yù)設(shè)時(shí)長(zhǎng)內(nèi)接收TCP SYN報(bào)文的速率,如果該接口在連 續(xù)N個(gè)第一預(yù)設(shè)時(shí)長(zhǎng)內(nèi)接收TCP SYN報(bào)文的速率均小于所述預(yù)設(shè)最大上送速率門限,則刪 除所述第一 ACL規(guī)則和第二ACL規(guī)則,并將當(dāng)前檢測(cè)隊(duì)列中的所有TCP SYN報(bào)文移送至上 送隊(duì)列以執(zhí)行上送CPU處理;其中,N為一預(yù)設(shè)值。
[0082] 以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精 神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。
【主權(quán)項(xiàng)】
1. 一種TCP SYN FLOOD的防攻擊方法,其特征在于,該方法包括: 在接口上檢測(cè)到TCP SYN FLOOD攻擊后,將在該接口接收到的TCP SYN報(bào)文加入檢測(cè) 隊(duì)列; 對(duì)加入檢測(cè)隊(duì)列的TCP SYN報(bào)文進(jìn)行識(shí)別,確定正常T