一種用于tcp syn flood的防攻擊方法和裝置的制造方法
【技術領域】
[0001] 本發(fā)明涉及通信技術領域,特別涉及一種用于TCP SYN FLOOD的防攻擊方法和裝 置。
【背景技術】
[0002] 邊界網關協(xié)議(Border Gateway Protocol,BGP)鄰居關系建立過程為:本地路由 器先與鄰居路由器建立一個TCP連接(TCP三次握手),如果TCP連接建立成功,BGP發(fā)送一 個OPEN消息給鄰居路由器,并等待鄰居路由器發(fā)來的OPEN消息;收到鄰居路由器的OPEN 消息后,檢查該消息的所有字段,如果沒有發(fā)現(xiàn)錯誤,則向鄰居路由器發(fā)送KEEPALIVE消息 并啟動KEEPALIVE定時器;收到鄰居路由器的KEEPALIVE消息,則本地路由器和鄰居路由器 之間的鄰居關系建立。
[0003] 可以看出,BGP使用了 TCP的傳輸方式,因此也會引入TCP方面的問題,例如,TCP SYN Flood 攻擊。TCP SYN Flood 是一種遠程拒絕服務(Denial of Service,DOS)攻擊方 式,利用TCP協(xié)議缺陷,發(fā)送大量偽造的TCP連接請求,使被攻擊方資源耗盡(CPU滿負荷或 內存不足)。
【發(fā)明內容】
[0004] 有鑒于此,本發(fā)明的目的在于一種用于TCP SYN FLOOD的防攻擊方法和裝置,能夠 有效防御TCP SYN FLOOD攻擊。
[0005] 為了達到上述目的,本發(fā)明提供了如下技術方案:
[0006] 一種用于TCP SYN FLOOD的防攻擊方法,包括:
[0007] 在接口上檢測到TCP SYN FLOOD攻擊后,將在該接口接收到的TCP SYN報文加入 檢測隊列;
[0008] 對加入檢測隊列的TCP SYN報文進行識別,確定正常TCP SYN報文和異常TCP SYN 報文,將正常TCP SYN報文從檢測隊列移送至上送隊列以執(zhí)行上送CPU處理,并刪除檢測隊 列中的異常TCP SYN報文。
[0009] -種用于TCP SYN FLOOD的防攻擊裝置,包括:檢測單元、接收單元、處理單元;
[0010] 所述檢測單元,用于檢測是否在接口上發(fā)生了 TCP SYN FLOOD攻擊;
[0011] 所述接收單元,用于檢測單元在接口上檢測到TCP SYN FLOOD攻擊后,將在該接口 接收到的TCP SYN報文加入檢測隊列;
[0012] 所述處理單元,用于加入檢測隊列的TCP SYN報文進行識別,確定正常TCP SYN報 文和異常TCP SYN報文,將正常TCP SYN報文從檢測隊列移送至上送隊列以執(zhí)行上送CPU 處理,并刪除檢測隊列中的異常TCP SYN報文。
[0013] -種用于TCP SYN FLOOD的防攻擊裝置,包括:
[0014] 由上面的技術方案可知,本發(fā)明中,在接口上檢測到TCP FLOOD攻擊后,將在該接 口上接收到的TCP SYN報文放入檢測隊列,對進入檢測隊列的報文進行識別確定正常TCP SYN報文和異常TCP SYN報文,將正常TCP SYN報文移至上送隊列進行上送CPU處理,將異 常TCP SYN報文從檢測隊列中刪除。由于只有正常TCP SYN報文才能夠上送到CPU進行處 理,可以大大減少CPU處理壓力,因而可以有效防御TCP SYN FLOOD攻擊。
【附圖說明】
[0015] 圖1是本發(fā)明實施例用于TCP SYN FLOOD的防攻擊方法流程圖;
[0016] 圖2是本發(fā)明實施例用于TCP SYN FLOOD的防攻擊裝置的結構示意圖。
【具體實施方式】
[0017] 為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,下面結合附圖并據(jù)實施例, 對本發(fā)明的技術方案進行詳細說明。
[0018] 參見圖1,圖1是本發(fā)明實施例用于TCP SYN FLOOD的防攻擊方法流程圖,如圖1 所示,該方法主要包括以下步驟:
[0019] 步驟101、正常情況下,在接口上接收到TCP SYN報文時,將TCP SYN報文加入上送 隊列。
[0020] 這里,正常情況是指未在接口上檢測到TCP SYN FLOOD攻擊的情況。
[0021] 正常情況下,在接口上接收到的所有TCP SYN報文均進入上送隊列,上送隊列中的 TCP SYN報文將會被上送到CPU進行處理,也就是說進入上送隊列的TCP SYN報文都會作為 正常報文被上送到CPU進行處理。
[0022] 步驟102、在接口上檢測到TCP SYN FLOOD攻擊后,將在該接口接收到的TCP SYN 報文加入檢測隊列;
[0023] 在實際應用中,上送隊列設置有上送速率門限,上送隊列的上送速率不能超過上 送速率門限(每秒多少個報文)。正常情況下,由于TCP SYN報文不多,上送隊列的上送速 率不會超過上送速率門限。然而,當接口上發(fā)生TCP SYN FLOOD攻擊時,將會有大量的TCP SYN報文沖擊接口,導致大量TCP SYN報文進入上送隊列,上送隊列的上送速率迅速增加至 超過上送隊列的上送速率門限。
[0024] 因此,可以根據(jù)上送隊列的上送速率和上送速率門限來判斷是否在接口上發(fā)生了 TCP SYN FLOOD攻擊,如果上送隊列的上送速率超過了預設上送速率門限,則可以確定接口 上發(fā)生了 TCP SYN FLOOD攻擊,如果上送隊列的上送速率未超過了預設上送速率門限,則可 以確定接口上未發(fā)生TCP SYN FLOOD攻擊。
[0025] 當在接口上檢測到TCP SYN FLOOD攻擊后,在接口上接收到的TCP SYN報文不再 加入上送隊列進行上送CPU處理,而是加入檢測隊列進行正常報文(非攻擊報文,也即合法 用戶發(fā)送的TCP SYN報文)和異常報文(也即攻擊者偽造的TCP SYN報文)的識別。
[0026] 需要說明的是,本實施例中,每個接口對應一個上送隊列和一個檢測隊列,TCP SYN報文的接收、加入上送隊列、檢測隊列、以及是否發(fā)生TCP SYN FLOOD攻擊的檢測都是針 對一個接口而言的。
[0027] 步驟103、對加入檢測隊列的每一類型報文進行識別,確定正常TCP SYN報文和異 常TCP SYN報文,將正常TCP SYN報文從檢測隊列移送至上送隊列以執(zhí)行上送CPU處理,并 刪除檢測隊列中的異常TCP SYN報文。
[0028] 本實施例中,將具有相同源IP地址、源端口、目的IP地址、目的端口的TCP SYN報 文作為同一類型的報文。
[0029] 在實際應用中,TCP SYN報文重傳的時間間隔是有一定規(guī)律的,例如:設備首次發(fā) 送TCP SYN報文后,如果未收到回應報文,會間隔2秒后重新發(fā)送TCP SYN報文,如果第二 次發(fā)送TCP SYN報文后,仍未收到回應報文,則會間隔4秒再次發(fā)送TCP SYN報文,如果第 三次發(fā)送TCP SYN報文后,仍未收到回應報文,則會間隔8秒再次發(fā)送TCP SYN報文,直到 接收到回應報文或發(fā)送次數(shù)超過允許的最大重傳次數(shù)。通常情況下,允許的最大重傳次數(shù) 是3次,重傳的時間間隔也是有一定規(guī)律的。
[0030] 針對上述TCP SYN報文重傳的特點,本發(fā)明實施例提供的對TCP SYN報文的識別 方式可以包括:
[0031] 在第一預設時長內對檢測隊列中的TCP SYN報文進行記錄,包括:每一類型報文 的數(shù)量、最近一次接收該類型報文的時間、最近兩次接收該類型報文的時間差;
[0032]