[發明專利]一種用于防止TCP攻擊的連接管理方法有效
| 申請號: | 201510212942.0 | 申請日: | 2015-04-29 |
| 公開(公告)號: | CN104780178B | 公開(公告)日: | 2018-04-10 |
| 發明(設計)人: | 吳志剛;李楠寧;何躍鷹;羅浩;朱海龍;林紳文;常為領;張樹壯;杜雄杰;李應博;劉成;房婧 | 申請(專利權)人: | 北京郵電大學;國家計算機網絡與信息安全管理中心 |
| 主分類號: | H04L29/06 | 分類號: | H04L29/06 |
| 代理公司: | 北京聿宏知識產權代理有限公司11372 | 代理人: | 鐘日紅,朱繪 |
| 地址: | 100876 *** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 用于 防止 tcp 攻擊 連接 管理 方法 | ||
技術領域
本發明涉及網絡技術領域,具體地說,涉及一種用于防止TCP攻擊的連接管理方法。
背景技術
現有技術中,高性能的報文處理設備需要隨時處理海量網絡報文,并且需要對每一個到達的TCP連接分配相關的存儲資源,用于維持TCP連接、完成TCP統計及應用層報文分析。因此,TCP數據及連接狀態的高效存儲是決定設備性能的重要方面。
在實際的網絡環境中,除了正常流量報文外,還存在著大量的網絡攻擊報文。特別是諸如TCP同步洪泛(TCP SYN Flood)攻擊的TCP報文攻擊,其利用TCP協議的缺陷,發送大量偽造的TCP連接請求,從而使得被攻擊方資源耗盡。即采用偽造的海量地址在短時間向同一網絡地址和端口請求建立TCP連接。目標是快速耗盡服務端的物理資源,使得正常的TCP連接因服務端缺少資源而無法建立。
正常的TCP連接過程如圖1a所示。首先進行第一次握手,客戶端發送一個包含SYN標志的TCP報文,SYN即同步(Synchronize),同步報文指明客戶端使用的端口以及TCP連接的原始序號J。然后進行第二次握手,服務器在收到客戶端的SYN報文后,將返回一個SYN+ACK的報文,表示客戶端的請求被接受,同時TCP序號J被加一,ACK即確認(Acknowledgement)。最后完成第三次握手,客戶端返回一個確認報文ACK給服務器端,同樣TCP序列號K被加一,到此一個TCP連接完成。以上的連接過程在TCP協議中被稱為三次握手(Three-way Handshake)。
TCP SYN Flood攻擊的過程如圖1b所示。客戶端偽造大量網絡地址向服務器發送包含SYN標志的TCP報文(第一次握手報文)。服務器在發出SYN+ACK應答報文后,做為攻擊方的客戶端并不做出任何應答,客戶端并不發送ACK報文,因此第三次握手無法完成。這種情況下服務器端一般會重試(再次發送SYN+ACK給客戶端)并等待一段時間后丟棄這個未完成的連接。
在這種情況下,服務器端為了維護一個非常大的半連接列表而消耗非常多的資源,服務器端將忙于處理攻擊者偽造的TCP連接請求而無暇理睬客戶的正常請求,此時從正常客戶的角度看來,服務器失去響應。
因此,亟需一種能夠防止TCP攻擊的連接管理方法。
發明內容
本發明所要解決的技術問題在于防止現有技術中在進行TCP連接時出現的TCP報文攻擊。
本發明提供一種用于防止TCP攻擊的連接管理方法,包括:
獲取TCP連接中原始數據包的連接狀態和五元組信息,基于原始數據包的五元組信息生成第一層流表的鏈表,所述第一層流表的鏈表包括第一HASH索引節點和第一用戶節點,將原始數據包的五元組信息和連接狀態記錄在第一用戶節點中;
基于第一層流表選擇TCP連接中連接狀態為第三次握手的原始數據包之后的數據包作為安全數據包;
根據安全數據包的五元組信息和負載數據生成第二層流表的鏈表,所述第二層流表的鏈表包括第二HASH索引節點、第二用戶節點和數據節點,將安全數據包的五元組信息存儲在第二用戶節點中,將安全數據包的負載數據存儲在數據節點中。
在一個實施例中,當接收到安全數據包的FIN報文時,根據FIN報文中攜帶的五元組信息刪除第一層流表的第一用戶節點,并且刪除第二層流表的第二用戶節點和數據節點。
在一個實施例中,當TCP連接中原始數據包的連接狀態發生改變時,更新第一層流表的第一用戶節點中記錄的連接狀態,其中,所述連接狀態為第一次握手、第二次握手或者第三次握手。
在一個實施例中,還包括:
為原始數據包創建第一時間戳,在第一層流表的第一HASH索引節點和第一用戶節點中記錄第一時間戳;
當原始數據包的連接狀態或者負載數據發生改變時,更新第一時間戳。
在一個實施例中,在第一層流表的鏈表全部占用的情況下,根據第一時間戳刪除第一層流表中創建時間超過淘汰時間閾值的鏈表。
在一個實施例中,還包括:
為安全數據包創建第二時間戳,在第二層流表的第二HASH索引節點、第二用戶節點和數據節點中記錄第二時間戳;
當安全數據包的負載數據發生改變時,更新第二時間戳。
在一個實施例中,遍歷第一層流表和第二層流表,根據第一時間戳刪除第一層流表中創建時間超過超時時間閾值的鏈表的第一用戶節點,以及根據第二時間戳刪除第二層流表中創建時間超過超時時間閾值的鏈表的第二用戶節點和數據節點。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京郵電大學;國家計算機網絡與信息安全管理中心,未經北京郵電大學;國家計算機網絡與信息安全管理中心許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201510212942.0/2.html,轉載請聲明來源鉆瓜專利網。





