麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

一種利用內容加速卡實現內容檢測的裝置和方法

文檔序號:7974424閱讀:265來源:國知局
專利名稱:一種利用內容加速卡實現內容檢測的裝置和方法
技術領域
本發明涉及網絡技術領域,特別涉及一種利用內容加速卡實現內容檢測的裝置和方法。
背景技術
隨著網絡信息安全需求的不斷發展,傳統的作用于TCP/IP協議棧2層、3層的防火墻等安全產品已經無法滿足人們的需要。現在人們更關心在網絡上傳輸的是什么內容,這些內容是否會造成危害。因此,入侵防御系統(Intrusiorfrotection System, IPS)、殺毒 (Antivirus,AV)等基于內容檢測的安全產品漸漸成為主流。然而,一個關鍵的問題制約著此類產品的發展,那就是性能。內容檢測的核心是字符串模式匹配,模式匹配相當消耗CPU 計算資源,而且隨著模式串的增長,對CPU的消耗呈線性增長。因此,只有突破模式匹配的性能瓶頸,才能使基于內容檢測的安全產品得到進一步的發展。基于專用集成電路(ApplicationSpecific Integrated Circuit,ASIC)和PCI-E 技術的內容加速卡是為解決上述問題而發明的。內容加速卡利用了專用硬件的特點,具有處理能力強、處理速度不隨模式串的遞增而遞減、成本低廉等特點。內容加速卡通過PCI-E 接口連接到網絡安全設備上,因此也比較容易對現有的網絡安全設備進行擴展。內容檢測的核心字符串模式匹配工作可以使用內容加速卡硬件來提升性能,但是內容檢測是一個復雜的過程,包含很多步驟,字符串匹配只是其中之一,其它部分工作還需要CPU來處理,這就形成了 CPU處理一部分工作,交給內容加速卡處理,然后再返回給CPU 處理的工作過程,其中CPU與內容加速卡的交互過程直接影響了整個工作過程的效率,也是使用內容加速卡來提升內容檢測性能的關鍵。CPU與內容加速卡的交互過程通常如下CPU處理一部分,完成后交給內容加速卡處理,內容加速卡處理完成后再交回給CPU處理,整個處理過程是完整貫通的,是連續不中斷的,這種方式對檢測過程改動比較小,但是因為內容加速卡的延遲特性,CPU需要一段等待空耗時間,所以效率不高。

發明內容
本發明的目的在于,提供一種利用內容加速卡實現內容檢測的裝置,能夠最大限度的提升內容檢測安全產品的檢測效率和性能。本發明的另一目的在于,提供一種利用內容加速卡實現內容檢測的方法,能夠最大限度的提升內容檢測安全產品的檢測效率和性能。本發明的利用內容加速卡實現內容檢測的裝置,包括第一線程單元和第二線程單元,所述第一線程單元和第二線程單元同時工作,其中,第一線程單元,用于接收數據包,并進行預處理,將預處理后的數據報文發送給內容加速卡進行匹配,不等待結果,開始處理下一個報文;第二線程單元,用于從內容加速卡獲取匹配結果,并根據匹配結果執行相應處理。
其中,在所述第一線程單元中,包含預處理模塊,用于接收的數據包進行預處理, 所述預處理至少包括下列一種協議分析、對IP分片的報文進行重組、對TCP報文記錄連接信息,以及對應用層協議進行解析,拆解出需要檢測的報文頭部結構。其中,所述預處理模塊,進一步用于進行DDOS檢測。其中,所述預處理模塊,進一步用于在網絡層面進行處理,對于特定報文不進行檢測,直接轉發或提交,其中,所述特定報文,包括沒有數據內容的數據包、提交給設備本身的管理報文、路由交換信息報文以及二層廣播報文。其中,所述第二線程單元,根據匹配結果執行相應處理,包括檢查報文頭部、調用第三方插件、采取阻斷動作或者記錄日志。其中,第一線程單元將待檢測報文送到內容加速卡做模式匹配時,返回數據流ID, 該數據流ID是數據報文的唯一標識,在第二線程單元取得匹配結果時也帶有該數據流ID, 用于將一個數據報文和一個匹配結果進行對應。本發明的利用內容加速卡實現內容檢測的方法,包括第一線程接收數據包,并進行預處理,將預處理后的數據報文發送給內容加速卡進行匹配,不等待結果,開始處理下一個報文;第二線程從內容加速卡獲取匹配結果,并根據匹配結果執行相應處理;其中,所述第一線程和第二線程同時工作。其中,在所述第一線程中,對接收的數據包進行預處理,至少包括下列一種協議分析、對IP分片的報文進行重組、對TCP報文記錄連接信息,以及對應用層協議進行解析, 拆解出需要檢測的報文頭部結構。其中,在所述第二線程中,根據匹配結果執行相應處理,包括檢查報文頭部、調用第三方插件、采取阻斷動作或者記錄日志。其中,在第一線程將待檢測報文送到內容加速卡做模式匹配時,返回數據流ID,該數據流ID是數據報文的唯一標識,在第二線程取得匹配結果時也帶有該數據流ID,用于將一個數據報文和一個匹配結果進行對應。本發明的有益效果是依照本發明的利用內容加速卡實現內容檢測的裝置和方法,能夠消除CPU等待空耗時間,最大限度的提升內容檢測安全產品的檢測效率和性能,保證檢測過程的完整性。


圖1為本發明的利用內容加速卡實現內容檢測的裝置的結構示意圖;圖2為本發明實施例的利用內容加速卡實現內容檢測的方法流程圖。
具體實施例方式以下,參考附圖1 2詳細描述本發明的利用內容加速卡實現內容檢測的裝置和方法。圖1為本發明的利用內容加速卡實現內容檢測的裝置的結構示意圖。如圖1所示, 本發明的裝置包括第一線程單元和第二線程單元。其中,在第一線程單元中,包括接收數據包模塊和預處理模塊,接收數據包模塊, 用于從網絡模塊獲取數據包;預處理模塊,用于對數據包進行預處理,預處理完成后,調用內容加速卡提供的接口函數將數據報文交給內容加速卡,然后不等待結果,立即開始處理下一個報文。其中,預處理包括協議分析,對IP分片的報文進行重組,對TCP報文記錄連接信息,以便在一個流中檢測數據內容;并對常用的協議進行解析(例如http、p0p3、smtp、 ftp等常用應用層協議),拆解出需要檢測的報文頭部結構。生成與該數據包相關的私有信息。該私有信息必須包含以下內容連接結構的句柄該連接結構的唯一標識,一個句柄對應一個連接結構,不同句柄對應不同的連接結構,句柄同時也作為查找連接結構的索引值。匹配到的策略id 根據用戶配置,每一個連接可能具有不同的策略,比如有的連接需要檢查全部規則,而有些連接只檢查部分規則,有的連接發現異常需要阻斷,而有些連接需要記錄日志等等,通過這個id可以找到該連接對應的策略,從而就可以做到用戶配置所要求的功能。策略匹配的方向決定策略應用到數據流的哪個方向,從客戶端到服務器方向,還是從服務器到客戶端方向,抑或雙向。快速路經標記根據前面步驟分析的結果,如果不需要做內容檢測就標記出來,這樣這個數據流可以走快速路經,加快報文處理速度,提高性能。TCP連接建立標記標記是正在建立過程中的連接,還是已經建立的連接,這兩種狀態的連接有不同的處理方法。綁定cpu 根據連接的hash值計算得到的cpu序號,表明這個連接的所有數據報文必須送給這個CPU進行檢測。統計數據分別記錄從客戶端向服務器方向上檢測的數據報文個數,以及從服務器向客戶端方向上檢測的數據報文個數。例如,生成的私有信息如下struct ips ;ips加在連接上的私有數據,每個連接1個。
struct ips {
_u32 session; —u32 policy—id[2] _u8 policy—dir; _u8 ids:l;
5
/*連接結構的句柄*/ ;/*policy_id
匹配到的策略 id, */ /* 策略匹配的方向,l:c->s;2:s->c; 3: c<->s */ /* IDS Mode*/u8 fastpath:!; /*走快速路徑,不伯文任何檢測*/
u8 anyany:!;
u8 established: 1; /* TCP連接已經建立標記*/ u8 nat:l;/* 連接做了 NAT */
u8 check—nat:l;
_u8 handle_cpu; /*按報文分發策略確定的cpu,此連接所有報文必須送給這個cpu */
u32 natportp];
u32 nataddr[2]; /* NAT時要替換的地址*/
ul6 packets[2];/*分別記錄在方向1和方向2上已經檢測的數椐包數*/另外,預處理模塊,還可以進一步用于進行DDOS(Distributed Denial ofkrvice,分布式拒絕服務攻擊)檢測。DDOS檢測主要采用統計訪問頻率并預設閥值方法,超出閥值則判定為DDOS攻擊行為。DDOS檢測通過則繼續后面的數據內容檢測,如果不通過則即刻阻斷攻擊源,以盡最大努力減少對被防護網絡的沖擊。這是由于,在實際應用時,DDOS攻擊通常表現為flood形式,即不同的源同時大量地向目標主機發起請求,使得目標主機資源負載超出負荷從而無法處理正常的訪問請求。DDOS需要在模式匹配之前進行檢測,一個原因是DDOS占用帶寬比較大,對安全設備本身也構成威脅,需要在程序的最開始處盡可能早地發現并及時阻斷。另一個原因是如果將DDOS報文送到內容加速卡做模式匹配,會大大降低內容加速卡的工作效率,同時也使得內容加速卡大量地進行無謂的工作,因為DDOS攻擊是無法通過匹配檢測出來的。另外,預處理模塊,還進一步用于在網絡層面進行處理,對沒有數據內容的數據包無需檢測,可以直接轉發;對于提交給設備本身的管理報文也無需檢測,可以直接提交;還有一些路由交換信息報文,二層廣播報文等,處理的原則是不需要檢測的報文盡可能不送給后續檢測程序處理,以減輕檢測程序的壓力。第一線程單元調用內容加速卡驅動提供的接口函數,將待檢測報文送到內容加速卡做模式匹配,調用時同時提供流id參數,這樣內容加速卡會針對數據流而非單個報文進行匹配,即在匹配了一個報文之后,將報文尾部的一段數據(長度可以配置)留存下來,下次匹配時與同一個數據流的第2個報文頭接在一起匹配,這樣可以發現攻擊特征正好跨越兩個報文之間的情況。本發明的第一線程單元和第二線程單元合起來完成一個完整的數據報文內容檢測過程。但是兩個單元的工作是同時進行的,相互不干擾也不必等待,第一線程單元完成預處理后調用內容加速卡提供的接口函數將數據報文交給內容加速卡,然后不等待結果,立即開始處理下一個報文。第二線程單元,用于調用內容加速卡提供的接口函數從內容加速卡獲取匹配結果,如果取到,就根據匹配結果繼續處理,如檢查報文頭部、調用其它第三方插件、采取阻斷動作或者記錄日志等,如果沒有取到結果,則說明匹配還沒有結束,此時不用作任何處理。這里需要說明的是,內容加速卡通常具有多個檢測通道,可以容納多個報文同時提交匹配,下半部分取到的結果可能是多個,即多個報文匹配工作同時結束,同時生成結果,此時下半部分需要連續處理,待多個結果處理完畢后再取結果。第一線程單元在將數據報文提交內容加速卡進行模式匹配時,都會返回一個數據流id,該id是數據報文的唯一標識,在第二線程單元取得匹配結果時也帶了這個標識,主要是用于將一個數據報文和一個匹配結果一一對應起來,特別是在同時產生多個匹配結果時,用來唯一標識這種對應關系。內容加速卡中多個匹配通道的工作是同時進行的,相對CPU檢測性能大幅度提高,但是針對不同的數據報文其匹配速度是不同的,即使是按順序逐個通道提交待匹配的數據報文,也可能后提交的數據報文先匹配完成,生成結果,即不是符合“先進先出”規則。 這主要是報文長短不同,報文內容復雜程度不同導致的。不同廠商的內容加速卡都有自己的規范,主要是能夠支持的正則表達式的子集, 本申請可以使用是NetLogic加速卡,這種加速卡采用單芯片結構,PCI-E接口,具有2G的模式匹配能力,能夠支持完整的PCRE。在初始化時需要使用加速卡廠商提供的編譯軟件對規則庫中的規則進行編譯,使其轉換為可以被內容加速卡識別的模式特征,然后調用廠商提供的接口函數將編譯好的模式特征加載到內容加速卡上。如果特征比較復雜且比較多,加載過程會比較長。通常情況下加載是一次性的,除非規則庫更新,否則不用重新加載。如圖2所示,本發明的利用內容加速卡實現內容檢測的方法,包括第一線程接收數據包,并進行預處理,將預處理后的數據報文發送給內容加速卡進行匹配,不等待結果, 開始處理下一個報文;第二線程從內容加速卡獲取匹配結果,并根據匹配結果執行相應處理;其中,所述第一線程和第二線程同時工作。其中,在第一線程中,對接收的數據包進行預處理,至少包括下列一種協議分析、 對IP分片的報文進行重組、對TCP報文記錄連接信息,以及對應用層協議進行解析,拆解出需要檢測的報文頭部結構。在第二線程中,根據匹配結果執行相應處理,包括檢查報文頭部、調用其它第三方插件、采取阻斷動作或者記錄日志。(第二線程找到該數據包對應的私有信息,私有信息包括連接結構的句柄、匹配到的策略id、策略匹配的方向、快速路經標記、TCP連接建立標記、 綁定CPU和統計數據等內容。繼續未完的處理(包括查找策略,根據策略以及策略匹配的方向得到需要采取的動作,統計檢測報文個數,記錄日志等等),第二線程根據處理的結果, 將報文交還給網絡模塊做發送或者丟棄等處理,然后繼續針對下一個匹配結果進行相應處理)另外,在第一線程將待檢測報文送到內容加速卡做模式匹配時,返回數據流ID,該數據流ID是數據報文的唯一標識,在第二線程取得匹配結果時也帶有該數據流ID,用于將一個數據報文和一個匹配結果進行對應。在具體實現時,依照本發明的方法,從網卡接收上來數據包,經過網絡模塊,交給用戶進程,用戶進程調用內容加速卡做完模式匹配,最后交還給網絡模塊從網卡發送出去。 利用內容加速卡實現異步檢測還有一個優勢,就是在增加一些檢測規則的情況下,性能幾乎可以保持不變,而使用傳統的CPU同步檢測方式,隨著檢測規則數量的增加檢測性能會大幅度下降,甚至當規則數量增加到一定程度時能夠導致設備性能不足,無法繼續處理數據報文。網絡攻擊曾出不窮,檢測規則庫也是每周更新一次,規則數量不斷增加,隨著對內容安全檢測產品的需求越來越多,產品性能問題也會越來越突出,使用本法是其中的解決方法之一。綜上所述,依照本發明的利用內容加速卡實現內容檢測的裝置和方法,能夠消除 CPU等待空耗時間,最大限度的提升內容檢測安全產品的檢測效率和性能,保證檢測過程的完整性。以上是為了使本領域普通技術人員理解本發明,而對本發明所進行的詳細描述, 但可以想到,在不脫離本發明的權利要求所涵蓋的范圍內還可以做出其它的變化和修改, 這些變化和修改均在本發明的保護范圍內。
權利要求
1.一種利用內容加速卡實現內容檢測的裝置,其特征在于,包括第一線程單元和第二線程單元,所述第一線程單元和第二線程單元同時工作,其中,第一線程單元,用于接收數據包,并進行預處理,將預處理后的數據報文發送給內容加速卡進行匹配,不等待結果,開始處理下一個報文;第二線程單元,用于從內容加速卡獲取匹配結果,并根據匹配結果執行相應處理。
2.如權利要求1所述的利用內容加速卡實現內容檢測的裝置,其特征在于,在所述第一線程單元中,包含預處理模塊,用于接收的數據包進行預處理,所述預處理至少包括下列一種協議分析、對IP分片的報文進行重組、對TCP報文記錄連接信息,以及對應用層協議進行解析,拆解出需要檢測的報文頭部結構。
3.如權利要求2所述的利用內容加速卡實現內容檢測的裝置,其特征在于,所述預處理模塊,進一步用于進行DDOS檢測。
4.如權利要求2所述的利用內容加速卡實現內容檢測的裝置,其特征在于,所述預處理模塊,進一步用于在網絡層面進行處理,對于特定報文不進行檢測,直接轉發或提交,其中,所述特定報文,包括沒有數據內容的數據包、提交給設備本身的管理報文、路由交換信息報文以及二層廣播報文。
5.如權利要求1至4中任一項所述的利用內容加速卡實現內容檢測的裝置,其特征在于,所述第二線程單元,根據匹配結果執行相應處理,包括檢查報文頭部、調用第三方插件、 采取阻斷動作或者記錄日志。
6.如權利要求1至4中任一項所述的利用內容加速卡實現內容檢測的裝置,其特征在于,第一線程單元將待檢測報文送到內容加速卡做模式匹配時,返回數據流ID,該數據流 ID是數據報文的唯一標識,在第二線程單元取得匹配結果時也帶有該數據流ID,用于將一個數據報文和一個匹配結果進行對應。
7.一種利用內容加速卡實現內容檢測的方法,其特征在于,包括第一線程接收數據包,并進行預處理,將預處理后的數據報文發送給內容加速卡進行匹配,不等待結果,開始處理下一個報文;第二線程從內容加速卡獲取匹配結果,并根據匹配結果執行相應處理;其中,所述第一線程和第二線程同時工作。
8.如權利要求7所述的利用內容加速卡實現內容檢測的方法,其特征在于,在所述第一線程中,對接收的數據包進行預處理,至少包括下列一種協議分析、對IP分片的報文進行重組、對TCP報文記錄連接信息,以及對應用層協議進行解析,拆解出需要檢測的報文頭部結構。
9.如權利要求7或8所述的利用內容加速卡實現內容檢測的方法,其特征在于,在所述第二線程中,根據匹配結果執行相應處理,包括檢查報文頭部、調用第三方插件、采取阻斷動作或者記錄日志。
10.如權利要求7或8所述的利用內容加速卡實現內容檢測的方法,其特征在于,在第一線程將待檢測報文送到內容加速卡做模式匹配時,返回數據流ID,該數據流ID是數據報文的唯一標識,在第二線程取得匹配結果時也帶有該數據流ID,用于將一個數據報文和一個匹配結果進行對應。
全文摘要
本發明提供一種利用內容加速卡實現內容檢測的裝置及方法,其中,該裝置包括第一線程單元和第二線程單元,所述第一線程單元和第二線程單元同時工作,其中,第一線程單元,用于接收數據包,并進行預處理,將預處理后的數據報文發送給內容加速卡進行匹配,不等待結果,開始處理下一個報文;第二線程單元,用于從內容加速卡獲取匹配結果,并根據匹配結果執行相應處理。本發明能夠消除CPU等待空耗時間,最大限度的提升內容檢測安全產品的檢測效率和性能,保證檢測過程的完整性。
文檔編號H04L29/06GK102404169SQ20111036202
公開日2012年4月4日 申請日期2011年11月15日 優先權日2011年11月15日
發明者劉彤 申請人:北京天融信科技有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 鄂伦春自治旗| 泸州市| 固阳县| 台东市| 连江县| 珠海市| 苏尼特左旗| 栾川县| 申扎县| 德清县| 玛多县| 无锡市| 保山市| 绥棱县| 湘潭市| 江城| 赣州市| 雷山县| 酉阳| 临沭县| 富民县| 肥乡县| 吉林市| 永安市| 昆山市| 寿光市| 黔江区| 防城港市| 治多县| 会理县| 泸水县| 改则县| 香港 | 新巴尔虎左旗| 元谋县| 于田县| 霍州市| 绥化市| 秦皇岛市| 东乡县| 容城县|