專(zhuān)利名稱(chēng):互聯(lián)網(wǎng)深度報(bào)文檢測(cè)方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及互聯(lián)網(wǎng)網(wǎng)絡(luò)入侵檢測(cè)技術(shù),特別是涉及互聯(lián)網(wǎng)深度報(bào)文檢測(cè)方法和裝置。
背景技術(shù):
伴隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)和互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,網(wǎng)絡(luò)攻擊和入侵事件與日俱 增,特別是近兩年,政府部門(mén)、軍事機(jī)構(gòu)、金融機(jī)構(gòu)、企業(yè)的計(jì)算機(jī)網(wǎng)絡(luò)頻遭黑客襲擊。隨著 網(wǎng)絡(luò)安全風(fēng)險(xiǎn)系數(shù)的不斷提高,曾經(jīng)作為最主要的安全防范手段的防火墻,已經(jīng)不能滿(mǎn)足 人們對(duì)網(wǎng)絡(luò)安全的需求,作為對(duì)防火墻及其有益的補(bǔ)充,網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)(NIDS Network Intrusion DetectionSystem)能夠幫助網(wǎng)絡(luò)系統(tǒng)快速發(fā)現(xiàn)網(wǎng)絡(luò)攻擊的發(fā)生,提高了信息安 全基礎(chǔ)結(jié)構(gòu)的完整性。NIDS利用互聯(lián)網(wǎng)深度報(bào)文檢測(cè)(DPI :Deep Packet Inspection)技術(shù)將網(wǎng)絡(luò)報(bào)文 的內(nèi)容與過(guò)濾規(guī)則庫(kù)中的特征字進(jìn)行匹配以檢測(cè)蠕蟲(chóng)、病毒和各種攻擊行為。為了適應(yīng)當(dāng) 前互聯(lián)網(wǎng)越來(lái)越快的網(wǎng)絡(luò)速率,開(kāi)發(fā)高速DPI系統(tǒng)已成為當(dāng)前技術(shù)研發(fā)的重中之重。開(kāi)發(fā) 高速DPI系統(tǒng)面臨的挑戰(zhàn)主要表現(xiàn)在(1)過(guò)濾規(guī)則里面的特征字越來(lái)越多,由于病毒、蠕 蟲(chóng)和各種攻擊行為的增加,目前DPI系統(tǒng)需要將每個(gè)報(bào)文和數(shù)千個(gè)特征字進(jìn)行匹配;(2)特 征字在報(bào)文中出現(xiàn)的位置不固定,需要采取逐字節(jié)比較的方法,這一點(diǎn)是和淺度報(bào)文檢測(cè) (SPI Shallow Packet Inspection)只檢測(cè)網(wǎng)絡(luò)報(bào)文頭部是完全不同的,SPI中需要檢測(cè)的 報(bào)文頭部具有確定的位置和固定的結(jié)構(gòu);(3)特征字越來(lái)越復(fù)雜,有精確字符串特征字、組 合特征字等,需要利用正則表達(dá)式來(lái)表示特征模式;(4)網(wǎng)絡(luò)接口速率也越來(lái)越高,千兆接 口已經(jīng)普及到網(wǎng)絡(luò)的邊緣,網(wǎng)絡(luò)的匯聚和核心已經(jīng)到lOGbps甚至更高。因此,傳統(tǒng)基于軟 件的特征字匹配方法無(wú)法滿(mǎn)足目前高速接口線(xiàn)速DPI處理的要求,而基于硬件ASIC和FPGA 的特征字匹配方法雖然可以滿(mǎn)足高速接口線(xiàn)速DPI的要求,但是,卻面臨規(guī)則庫(kù)擴(kuò)展升級(jí) 困難的問(wèn)題。針對(duì)上述問(wèn)題,基于 TCAM(Ternary Content Addressable Memory)三態(tài)內(nèi)容尋 址存儲(chǔ)器的特征字匹配算法成為目前網(wǎng)絡(luò)入侵檢測(cè)最主要的技術(shù)?;赥CAM的特征字匹 配算法將特征字按照特征字長(zhǎng)度降序存儲(chǔ)在TCAM中,特征字長(zhǎng)度不足TCAM位寬的,在尾 部補(bǔ)通配狀態(tài)*,匹配時(shí),在一個(gè)TCAM時(shí)鐘周期內(nèi),選取和TCAM寬度相同的報(bào)文內(nèi)容作為 檢測(cè)窗口,將檢測(cè)窗口內(nèi)的內(nèi)容輸入TCAM進(jìn)行匹配,輸出匹配的最長(zhǎng)的特征字,同時(shí)檢測(cè) 窗口向報(bào)文尾部方向滑動(dòng)一個(gè)字節(jié),如果TCAM時(shí)鐘周期以4ns計(jì)算,則可以達(dá)到8bit/4ns =2Gbps的DPI檢測(cè)速率。上述方法對(duì)于特征字長(zhǎng)度不大于TCAM位寬是合適的,對(duì)于大于 TCAM位寬的長(zhǎng)特征字和組合特征字,需要采取特征字切割的方法,并且對(duì)存放在TCAM中的 特征字進(jìn)行分類(lèi)簡(jiǎn)單特征字、前綴特征字、后綴特征字,根據(jù)匹配的特征字類(lèi)型和之前存 儲(chǔ)的部分匹配結(jié)果來(lái)做出是否為完整的特征字匹配的結(jié)論。在此基礎(chǔ)上,檢測(cè)窗口跳躍技術(shù)進(jìn)一步提高了基于TCAM深度報(bào)文檢測(cè)的速率,該 技術(shù)中,每次檢測(cè)窗口不是向報(bào)文尾部滑動(dòng)一個(gè)字節(jié),而是跳躍若干個(gè)字節(jié),這是一種空間換時(shí)間的實(shí)現(xiàn)方法,具體實(shí)現(xiàn)方法為,設(shè)定每次跳躍的字節(jié)數(shù)為j,每個(gè)特征字P被擴(kuò)展為j 個(gè)特征字P0、P1、…?彳-丨,其中P0 = P,P1為P右移一個(gè)字節(jié)并且在左邊補(bǔ)上通配*,將這 j個(gè)擴(kuò)展的特征字放置在TCAM中,匹配時(shí)如果P出現(xiàn)在檢測(cè)窗口偏移為0到j(luò)-1的位置都 可被檢測(cè)到,因此,下次檢測(cè)窗口可以直接跳躍j個(gè)字節(jié)開(kāi)始下一輪的匹配,這樣,每個(gè)字 節(jié)是8比特,檢測(cè)速率可到(8bitXj)/4ns,如果j取5,則可以到lOGbps的DPI檢測(cè)速率。同基于ASIC和FPGA特征字匹配方法相比,基于TCAM的特征字匹配方法在匹配速 率、實(shí)現(xiàn)難度等方面具有很大的優(yōu)勢(shì),但是,這種方法也存在一些缺點(diǎn)。⑴、成本較高,TCAM 的每比特三態(tài)特性存儲(chǔ)和比較需要采用16個(gè)晶體管,而SRAM只需要6個(gè);(2)、功耗較高, TCAM的每次比較需要驅(qū)動(dòng)所有存儲(chǔ)單元的電路實(shí)現(xiàn)并行比較,因此造成功耗居高不下,相 同容量的TCAM功耗約為SRAM的150倍,而在采用了檢測(cè)窗口跳躍技術(shù)后,表項(xiàng)將擴(kuò)張到原 先的j倍,功耗進(jìn)一步加大,從而使跳躍字節(jié)數(shù)j受到一定的限制。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問(wèn)題是解決互聯(lián)網(wǎng)深度報(bào)文檢測(cè)裝置成本較高、功耗較高 的問(wèn)題。為了解決上述技術(shù)問(wèn)題,本發(fā)明所采用的技術(shù)方案是提供一種互聯(lián)網(wǎng)深度報(bào)文檢 測(cè)方法,包括以下步驟A100、通過(guò)布魯姆過(guò)濾器對(duì)互聯(lián)網(wǎng)報(bào)文的報(bào)文內(nèi)容依次分段進(jìn)行過(guò)濾,當(dāng)在當(dāng)前 段報(bào)文內(nèi)容中發(fā)現(xiàn)疑似攻擊報(bào)文的可疑內(nèi)容部分時(shí),則將該報(bào)文送給匹配單元進(jìn)行匹配 認(rèn)定,否則對(duì)下一段報(bào)文內(nèi)容進(jìn)行過(guò)濾,到最后一段仍沒(méi)有發(fā)現(xiàn)可疑內(nèi)容則直接轉(zhuǎn)發(fā)該報(bào) 文;A200、將疑似攻擊報(bào)文中的可疑部分分別同匹配單元中的TCAM中存儲(chǔ)的若干特 征字進(jìn)行并行匹配,從而獲得該疑似攻擊報(bào)文是否為攻擊報(bào)文的判斷結(jié)果,當(dāng)判斷結(jié)果表 明該可疑的攻擊報(bào)文為非攻擊性的報(bào)文時(shí),則轉(zhuǎn)步驟A100對(duì)其余的報(bào)文內(nèi)容進(jìn)行分段過(guò) 濾;否則丟棄該報(bào)文并生成告警。上述方法中,步驟A100包括以下步驟A101、將已知的用于表征攻擊報(bào)文的n個(gè)特征字,根據(jù)特征字長(zhǎng)度,分成L個(gè)不同 的子集,每個(gè)子集內(nèi)特征字長(zhǎng)度相同,每個(gè)子集的特征字個(gè)數(shù)為rv對(duì)每個(gè)子集通過(guò)k個(gè)哈 希函數(shù)計(jì)算分別生成對(duì)應(yīng)的L個(gè)布魯姆過(guò)濾器,每個(gè)布魯姆過(guò)濾器均具有mi個(gè)比特位,其 中叫 > 叫;A102、以用于表征攻擊報(bào)文的特征字中最長(zhǎng)的特征字長(zhǎng)度作為布魯姆過(guò)濾器的過(guò) 濾窗口大?。籄103、設(shè)置一個(gè)長(zhǎng)度為L(zhǎng)個(gè)比特的匹配向量數(shù)組,并將其所有比特位初始化為0 ;A104、確定過(guò)濾窗口在報(bào)文中的偏移位置;A105、對(duì)過(guò)濾窗口中的報(bào)文內(nèi)容進(jìn)行檢測(cè),具體為,對(duì)每種特征字長(zhǎng)度,用步驟 A101中的k個(gè)哈希函數(shù)對(duì)過(guò)濾窗口 Wb中報(bào)文內(nèi)容進(jìn)行計(jì)算,并分別將計(jì)算結(jié)果與步驟A101 生成的布魯姆過(guò)濾器中的每一個(gè)bit位進(jìn)行比對(duì),若二者相同則將匹配向量中對(duì)應(yīng)該長(zhǎng)度 的的相應(yīng)位置1 ;A106、以匹配向量中的所有比特位是否均為0為依據(jù)獲得該過(guò)濾窗口中的報(bào)文內(nèi)容是否為疑似攻擊報(bào)文中的可疑內(nèi)容部分的判斷結(jié)果,當(dāng)判斷結(jié)果表明其為可疑內(nèi)容部分 時(shí),轉(zhuǎn)A108 ;否則轉(zhuǎn)A107 ;A107、過(guò)濾窗口向報(bào)文尾部滑動(dòng)一個(gè)或多個(gè)字節(jié),同時(shí)偏移起始位置增加相應(yīng)的 一個(gè)或多個(gè)字節(jié),通過(guò)判斷該偏移起始位置是否等于報(bào)文長(zhǎng)度減去過(guò)濾窗口的值,而獲得 過(guò)濾窗口是否到達(dá)報(bào)文末尾的判斷結(jié)果,當(dāng)判斷結(jié)果表明過(guò)濾窗口到達(dá)報(bào)文末尾時(shí),則將 該報(bào)文直接轉(zhuǎn)發(fā),否則轉(zhuǎn)步驟A104 ;A108、將該報(bào)文輸出至匹配單元進(jìn)行匹配認(rèn)定。上述方法中,步驟A200包括以下步驟A201、將過(guò)濾窗口中的報(bào)文內(nèi)容與匹配單元中的TCAM中存儲(chǔ)的若干特征字進(jìn)行 并行匹配;A202、判斷是否成功匹配某個(gè)特征字,若成功匹配,則轉(zhuǎn)A203 ;否則轉(zhuǎn)步驟A107 ;A203、丟棄該報(bào)文并生成告警。步驟A200中,如果存在多個(gè)包含關(guān)系的特征字時(shí),最長(zhǎng)的特征字在TCAM中的存放 地址位于其他特征字的前面,并選擇最長(zhǎng)的特征字進(jìn)行匹配。本發(fā)明還提供了一種互聯(lián)網(wǎng)深度報(bào)文檢測(cè)裝置,包括報(bào)文截取單元、第一過(guò)濾單 元、第一仲裁單元、第二匹配單元、第一執(zhí)行單元和第二執(zhí)行單元。報(bào)文截取單元通過(guò)預(yù)設(shè)的過(guò)濾窗口截取互聯(lián)網(wǎng)報(bào)文中的一段內(nèi)容;第一過(guò)濾單元中設(shè)有k個(gè)哈希函數(shù)計(jì)算單元、L個(gè)布魯姆過(guò)濾器、第一比較單元和 第一仲裁單元,每個(gè)魯姆過(guò)濾器均具有m個(gè)比特位,用于表征攻擊報(bào)文的已知n個(gè)特征字按 照長(zhǎng)度不同被分成L個(gè)子集,每個(gè)子集的特征字個(gè)數(shù)為ni,通過(guò)k個(gè)哈希函數(shù)計(jì)算單元計(jì)算 后,分別將對(duì)應(yīng)布魯姆過(guò)濾器中的相應(yīng)比特位置1,其中nii > n,;報(bào)文截取單元的過(guò)濾窗口 截取出的互聯(lián)網(wǎng)報(bào)文中的一段內(nèi)容,對(duì)每種特征字長(zhǎng)度,分別通過(guò)k個(gè)哈希函數(shù)計(jì)算單元 進(jìn)行計(jì)算,第一比較單元分別將該計(jì)算結(jié)果與布魯姆過(guò)濾器中的每個(gè)比特位進(jìn)行比對(duì),如 果計(jì)算結(jié)果與某個(gè)布魯姆過(guò)濾器中的所有比特位相同,則將匹配向量中對(duì)應(yīng)該長(zhǎng)度的比特 位置1;第一仲裁單元,以匹配向量中的所有比特位是否均為0,獲得該過(guò)濾窗口中的報(bào)文 內(nèi)容是否為疑似攻擊報(bào)文中的可疑內(nèi)容部分的判斷結(jié)果,當(dāng)判斷結(jié)果表明其為可疑內(nèi)容部 分時(shí),即存在非0值時(shí),將該報(bào)文送往第二匹配單元;否則將該報(bào)文送往第一執(zhí)行單元;第二匹配單元中設(shè)有TCAM存儲(chǔ)單元、第二比較單元和第二仲裁單元,TCAM存儲(chǔ)單 元中存放有用于表征攻擊報(bào)文的多個(gè)不同長(zhǎng)度特征字,第二比較單元將報(bào)文截取器截取出 的互聯(lián)網(wǎng)報(bào)文中的一段內(nèi)容分別與TCAM存儲(chǔ)單元中的特征字進(jìn)行匹配,第二仲裁單元根 據(jù)匹配結(jié)果是否一致獲得該報(bào)文是否為攻擊報(bào)文的判斷結(jié)果,當(dāng)判斷結(jié)果表明該報(bào)文為非 攻擊報(bào)文時(shí),將該報(bào)文送往第一執(zhí)行單元;否則,將該報(bào)文送往第二執(zhí)行單元。第一執(zhí)行單元,用于將其收到的報(bào)文直接轉(zhuǎn)發(fā);第二執(zhí)行單元,用于將收到的報(bào)文丟棄并生成告警信息。上述裝置中,第一過(guò)濾單元中還設(shè)有報(bào)文截取單元滑動(dòng)裝置、過(guò)濾窗口偏移累加 器和第三比較單元,過(guò)濾窗口偏移累加器的初始值為0,報(bào)文截取單元滑動(dòng)裝置在匹配向量 生成后,將過(guò)濾窗口向報(bào)文尾部滑動(dòng)一個(gè)或多個(gè)字節(jié)時(shí)相應(yīng)地增加一個(gè)或多個(gè)字節(jié),同時(shí), 過(guò)濾窗口偏移累加器相應(yīng)地增加一個(gè)或多個(gè)字節(jié);第三比較單元以過(guò)濾窗口偏移累加器的值與報(bào)文長(zhǎng)度減去過(guò)濾窗口之后的值是否相等為依據(jù),獲得過(guò)濾窗口是否滑動(dòng)到報(bào)文末尾 的判斷結(jié)果,當(dāng)判斷結(jié)果表明滑動(dòng)到報(bào)文末尾時(shí),將該報(bào)文送往第一執(zhí)行單元,否則將過(guò)濾 窗口向報(bào)文尾部滑動(dòng)一個(gè)或多個(gè)字節(jié),同時(shí)過(guò)濾窗口偏移累加器相應(yīng)地增加一個(gè)或多個(gè)字 節(jié)。上述裝置中,所述過(guò)濾窗口的大小等于用于表征攻擊報(bào)文的特征字中最長(zhǎng)的特征
字長(zhǎng)度。上述裝置中,具有包含關(guān)系的多個(gè)特征字中,最長(zhǎng)的特征字在TCAM中的存放地址 位于其他特征字的前面。上述裝置中,所述第一過(guò)濾單元采用SRAM來(lái)實(shí)現(xiàn)布魯姆過(guò)濾器。本發(fā)明的優(yōu)勢(shì)在于通過(guò)布魯姆過(guò)濾器對(duì)非攻擊報(bào)文和攻擊報(bào)文的非特征字內(nèi)容 進(jìn)行過(guò)濾,只將可疑的攻擊報(bào)文的可疑部分送給匹配單元進(jìn)行匹配檢測(cè),由于布魯姆過(guò)濾 器采用哈希運(yùn)算,因此,要求的存儲(chǔ)空間很小,硬件實(shí)現(xiàn)容易,可以采用功耗低、容量小、速 度快的片內(nèi)多端口 SRAM實(shí)現(xiàn),在整個(gè)網(wǎng)絡(luò)流量中,攻擊特征字在網(wǎng)絡(luò)報(bào)文中出現(xiàn)的概率是 非常小的,因此絕大部分正常報(bào)文在第一過(guò)濾單元被過(guò)快速的過(guò)濾掉,只有少量可疑報(bào)文 被送給第二匹配單元的TCAM進(jìn)行處理,從而加快特征字匹配速率,大大降低功耗。
圖1為布魯姆過(guò)濾器的表示和查詢(xún)方法;圖2為本發(fā)明互聯(lián)網(wǎng)深度報(bào)文檢測(cè)裝置的結(jié)構(gòu)示意圖;圖3為本發(fā)明互聯(lián)網(wǎng)深度報(bào)文檢測(cè)方法的流程圖。
具體實(shí)施例方式針對(duì)基于TCAM的特征字匹配方法存在跳躍字節(jié)數(shù)受限和功耗高的問(wèn)題,本發(fā)明 提供了一種互聯(lián)網(wǎng)深度報(bào)文檢測(cè)方法和裝置,該方法采用布魯姆過(guò)濾器(Bloom Filter)結(jié) 合TCAM進(jìn)行互聯(lián)網(wǎng)深度報(bào)文的檢測(cè)。本發(fā)明出發(fā)點(diǎn)是網(wǎng)絡(luò)報(bào)文中的大部分報(bào)文為不包含 攻擊特征字的普通報(bào)文,可以直接跳過(guò)無(wú)需進(jìn)行TCAM特征字檢測(cè),即使是攻擊報(bào)文,大部 分報(bào)文內(nèi)容也是非特征字內(nèi)容,這部分內(nèi)容也可以直接跳過(guò)而無(wú)需進(jìn)行TCAM特征字檢測(cè), 通過(guò)布魯姆過(guò)濾器對(duì)非攻擊報(bào)文和攻擊報(bào)文的非特征字內(nèi)容進(jìn)行過(guò)濾,只將可疑的攻擊報(bào) 文的可疑部分送TCAM進(jìn)行檢測(cè),一方面可以加速特征字匹配跳躍,另一方面可以大大的降 低功耗。布魯姆過(guò)濾器是一種非常簡(jiǎn)潔的信息表示和查詢(xún)方法,可以用于表示集合并且 完成元素是否在集合的查詢(xún)。布魯姆過(guò)濾器需要的空間很小,每個(gè)元素只需要幾個(gè)比特 就可完成表示,并且和元素本身長(zhǎng)度無(wú)關(guān),因此可以用低功耗、容量小、速度快的片內(nèi)多端 口 SRAM實(shí)現(xiàn)。對(duì)于元素是否在集合的查詢(xún),布魯姆過(guò)濾器有可能會(huì)產(chǎn)生假陽(yáng)性(False Positive)判斷,也就是將不是集合的元素判斷為在集合中,因此需要在后續(xù)做進(jìn)一步的判 定,布魯姆過(guò)濾器不會(huì)產(chǎn)生假陰性(False Negative)判斷,也就是不會(huì)將本該屬于集合的 元素判斷為不在集合中而產(chǎn)生漏檢。布魯姆過(guò)濾器的優(yōu)勢(shì)在于,在保持存儲(chǔ)空間非常小的 情形下假陽(yáng)性的概率非常小。對(duì)于n個(gè)元素的集合S= {X1,X2,…,xn},布魯姆過(guò)濾器采用 m比特的數(shù)組BW. .m-1]來(lái)表示,初始時(shí),所有比特位都為0,對(duì)每個(gè)元素x采用k個(gè)獨(dú)立的哈希函數(shù)hi、h2、…h(huán)k作用于x產(chǎn)生分布在0到m-1的k個(gè)哈希位置,相應(yīng)位置的比特位被 置為1,如圖1所示,元素Xl、x2被哈希映射到3個(gè)比特位,注意比特位3同時(shí)被Xl和x2所置位。在查詢(xún)某個(gè)元素是否在集合內(nèi)時(shí),同樣將k個(gè)哈希函數(shù)作用在于該元素產(chǎn)生k個(gè) 比特位置,如果某個(gè)比特位置為0,則此元素肯定不在該集合內(nèi),如圖1中的y2,如果k個(gè)比 特位置都為1,則判斷此元素在此集合中,如圖1中的yl由于比特位置有可能被其他元素所 置位,有可能是一個(gè)假陽(yáng)性判斷,假陽(yáng)性的概率f計(jì)算公式為f = (l-e"kn/m)k (1)給定n,通過(guò)選擇m和k可以使得假陽(yáng)性概率減到最小,當(dāng)k = (m/n) In 2時(shí),f取 最小值f = (l/2)k,比值(m/n)可以理解為每個(gè)元素占據(jù)的比特位數(shù),m只和需要表示的元 素的個(gè)數(shù)相關(guān),而和元素本身的長(zhǎng)度無(wú)關(guān),可以看出隨著哈希函數(shù)的增加,假陽(yáng)性的概率呈 指數(shù)遞減。哈希函數(shù)和元素長(zhǎng)度相關(guān),在本發(fā)明中對(duì)于某個(gè)長(zhǎng)度的特征字集合,我們需要一 個(gè)相應(yīng)的布魯姆過(guò)濾器,如果有L個(gè)不同的特征字長(zhǎng)度,則需要L個(gè)布魯姆過(guò)濾器。圖1為布魯姆過(guò)濾器的表示和查詢(xún)方法,采用m比特初始為0的數(shù)組BW. .m-1] 來(lái)表示n個(gè)元素的集合S= {xl, x2,…,xn},對(duì)集合里面的每個(gè)元素&,調(diào)用k個(gè)獨(dú)立的 哈希函數(shù)hi、h2、…、hk得到k個(gè)比特位置、(xt)、h2 (xt)、…、hk(xt),相應(yīng)位置的比特位被 置位,對(duì)集合里面所有的元素完成哈希函數(shù)和置位,就完成了集合的表示。對(duì)元素的查詢(xún)同樣需要進(jìn)行k個(gè)哈希函數(shù)的計(jì)算,如果某比特位為0,則該元素肯 定不在該集合中,如果所有k個(gè)比特位都為1,則元素被判定為在集合中,但有可能是一個(gè) 假陽(yáng)性判斷,需要額外進(jìn)一步確認(rèn)?;谏鲜鲈?,本發(fā)明提出的互聯(lián)網(wǎng)深度報(bào)文檢測(cè)方法包括以下兩個(gè)步驟A100、通過(guò)布魯姆過(guò)濾器對(duì)互聯(lián)網(wǎng)報(bào)文的報(bào)文內(nèi)容依次分段進(jìn)行過(guò)濾,當(dāng)在當(dāng)前 段報(bào)文內(nèi)容中發(fā)現(xiàn)疑似攻擊報(bào)文的可疑內(nèi)容部分時(shí),則將該報(bào)文送給匹配單元進(jìn)行匹配 認(rèn)定,否則對(duì)下一段報(bào)文內(nèi)容進(jìn)行過(guò)濾,到最后一段仍沒(méi)有發(fā)現(xiàn)可疑內(nèi)容則直接轉(zhuǎn)發(fā)該報(bào) 文;A200、將疑似攻擊報(bào)文中的可疑部分分別同匹配單元中的TCAM中存儲(chǔ)的若干特 征字進(jìn)行并行匹配,從而獲得該疑似攻擊報(bào)文是否為攻擊報(bào)文的判斷結(jié)果,當(dāng)判斷結(jié)果表 明該可疑的攻擊報(bào)文為非攻擊性的報(bào)文時(shí),則轉(zhuǎn)步驟A100對(duì)其余的報(bào)文內(nèi)容進(jìn)行分段過(guò) 濾;否則丟棄該報(bào)文并生成告警。下面結(jié)合圖3對(duì)互聯(lián)網(wǎng)深度報(bào)文檢測(cè)方法進(jìn)行詳細(xì)的說(shuō)明步驟A100包括以下步驟A101、將已知的用于表征攻擊報(bào)文的n個(gè)特征字(比如病毒特征字、攻擊特征字), 根據(jù)特征字長(zhǎng)度,分成L個(gè)不同的子集,每個(gè)子集內(nèi)特征字長(zhǎng)度相同,對(duì)每個(gè)子集通過(guò)k個(gè) 哈希函數(shù)計(jì)算分別生成對(duì)應(yīng)的L個(gè)布魯姆過(guò)濾器,每種長(zhǎng)度的攻擊特征字都需要一個(gè)單獨(dú) 的布魯姆過(guò)濾器,每個(gè)布魯姆過(guò)濾器均具有m個(gè)比特位,其中m > n。A102、以用于表征攻擊報(bào)文的特征字中最長(zhǎng)的特征字長(zhǎng)度作為布魯姆過(guò)濾器的過(guò) 濾窗口大小Wb ;A103、設(shè)置一個(gè)長(zhǎng)度為L(zhǎng)個(gè)比特的匹配向量數(shù)組MatCh_VeCtor
,并 將其所有比特位初始化為0 ;
A104、確定過(guò)濾窗口 Wb在報(bào)文中的偏移起始位置0fTsetb,初始時(shí),偏移起始位置 0ffsetb在報(bào)文的起始處,偏移值為0 ;A105、對(duì)過(guò)濾窗口 Wb中的報(bào)文內(nèi)容進(jìn)行檢測(cè),具體為,對(duì)每種特征字長(zhǎng)度,用步驟 A101中的k個(gè)哈希函數(shù)對(duì)過(guò)濾窗口 Wb中報(bào)文內(nèi)容進(jìn)行計(jì)算,并分別將計(jì)算結(jié)果與步驟A101 生成的布魯姆過(guò)濾器中的每一個(gè)bit位進(jìn)行比對(duì),若二者相同則將匹配向量中對(duì)應(yīng)該長(zhǎng)度 的Match_Vector
中的相應(yīng)位置1 ;A106、以匹配向量Match_Vector
中的所有比特位是否均為0為依 據(jù)獲得該過(guò)濾窗口中的報(bào)文內(nèi)容是否為疑似攻擊報(bào)文中的可疑內(nèi)容部分的判斷結(jié)果,當(dāng)判 斷結(jié)果表明其為可疑內(nèi)容部分時(shí),轉(zhuǎn)A108 ;否則轉(zhuǎn)A107 ;A107、過(guò)濾窗口 Wb向報(bào)文尾部滑動(dòng)一個(gè)或多個(gè)字節(jié),同時(shí)偏移起始位置Offsetb增 加相應(yīng)的一個(gè)或多個(gè)字節(jié),通過(guò)判斷該偏移起始位置0ffsetb是否等于報(bào)文長(zhǎng)度減去過(guò)濾 窗口 Wb的值,而獲得過(guò)濾窗口 Wb是否到達(dá)報(bào)文末尾的判斷結(jié)果,當(dāng)判斷結(jié)果表明過(guò)濾窗口 Wb到達(dá)報(bào)文末尾時(shí),則將該報(bào)文直接轉(zhuǎn)發(fā),否則轉(zhuǎn)步驟A104 ;A108、將該報(bào)文輸出至匹配單元進(jìn)行匹配認(rèn)定。匹配單元的匹配認(rèn)定包括以下步驟A201、將過(guò)濾窗口 Wb中的報(bào)文內(nèi)容與匹配單元中的TCAM中存儲(chǔ)的若干特征字進(jìn) 行并行匹配;A202、判斷是否成功匹配某個(gè)特征字,若成功匹配,則轉(zhuǎn)A203 ;否則轉(zhuǎn)步驟A107 ;在該步驟中,TCAM中可能存在多個(gè)不同長(zhǎng)度的特征字,可能都會(huì)匹配,比如報(bào)文內(nèi) 容為abc,有2個(gè)攻擊特征字abc、ab存放在TCAM中,則abc和ab都會(huì)匹配,需要進(jìn)行仲裁判 斷選擇,一般選擇最長(zhǎng)匹配結(jié)果,也就是位于TCAM低地址位的匹配結(jié)果,比如,特征字abc 的存放地址會(huì)在特征字ab的存放地址的前面,優(yōu)先選擇abc,因?yàn)閍bc包含ab,匹配abc肯 定匹配ab,反之則不一定。A203、丟棄該報(bào)文并生成告警。本發(fā)明還提供了一種互聯(lián)網(wǎng)深度報(bào)文檢測(cè)裝置,如圖2所示,該檢測(cè)裝置包括報(bào) 文截取單元、第一過(guò)濾單元、第二匹配單元和第一、第二執(zhí)行單元。報(bào)文截取單元通過(guò)預(yù)設(shè)的過(guò)濾窗口 Wb截取互聯(lián)網(wǎng)報(bào)文中的一段內(nèi)容,該過(guò)濾窗口 Wb的大小等于用于表征攻擊報(bào)文的特征字中最長(zhǎng)的特征字長(zhǎng)度;第一過(guò)濾單元中設(shè)有k個(gè)哈希函數(shù)計(jì)算單元、L個(gè)布魯姆過(guò)濾器、第一比較單元和 第一仲裁單元。每個(gè)魯姆過(guò)濾器均具有mi個(gè)比特位,用于表征攻擊報(bào)文的已知n個(gè)特征字, 根據(jù)特征字長(zhǎng)度,分成L個(gè)不同的子集,每個(gè)子集內(nèi)特征字長(zhǎng)度相同,每個(gè)子集的特征字個(gè) 數(shù)為h,對(duì)每個(gè)子集通過(guò)k個(gè)哈希函數(shù)計(jì)算單元計(jì)算后,分別將對(duì)應(yīng)布魯姆過(guò)濾器中的相應(yīng) 比特位置1,其中叫>叫。報(bào)文截取單元的過(guò)濾窗口 Wb截取出的互聯(lián)網(wǎng)報(bào)文中的一段內(nèi)容,對(duì)每種特征字長(zhǎng) 度,分別通過(guò)k個(gè)哈希函數(shù)計(jì)算單元進(jìn)行計(jì)算,第一比較單元分別將該計(jì)算結(jié)果與布魯姆 過(guò)濾器中的每個(gè)比特位進(jìn)行比對(duì),如果計(jì)算結(jié)果與布魯姆過(guò)濾器中的所有比特位相同,則 將匹配向量中Match_Vector
對(duì)應(yīng)該長(zhǎng)度的比特位置1。第一仲裁單元以匹配向量MatCh_VeCtor
中的所有比特位是否均為 0,獲得該過(guò)濾窗口中的報(bào)文內(nèi)容是否為疑似攻擊報(bào)文中的可疑內(nèi)容部分的判斷結(jié)果,當(dāng)判斷結(jié)果表明其為可疑內(nèi)容部分時(shí)(存在非0值),將該報(bào)文送往第二匹配單元;否則將該報(bào) 文送往第一執(zhí)行單元。第一過(guò)濾單元中還設(shè)有報(bào)文截取單元滑動(dòng)裝置、過(guò)濾窗口偏移累加器和第三比 較單元,過(guò)濾窗口偏移累加器的初始值為0,報(bào)文截取單元滑動(dòng)裝置在匹配向量Match_ Vector
生成后,將過(guò)濾窗口 Wb向報(bào)文尾部滑動(dòng)一個(gè)或多個(gè)字節(jié)時(shí)相應(yīng)地增 加一個(gè)或多個(gè)字節(jié),同時(shí),過(guò)濾窗口偏移累加器相應(yīng)地增加一個(gè)或多個(gè)字節(jié)。第三比較單元 以過(guò)濾窗口偏移累加器的值與報(bào)文長(zhǎng)度減去過(guò)濾窗口之后的值是否相等為依據(jù),獲得過(guò)濾 窗口是否滑動(dòng)到報(bào)文末尾的判斷結(jié)果,當(dāng)判斷結(jié)果表明滑動(dòng)到報(bào)文末尾時(shí),將該報(bào)文送往 第一執(zhí)行單元,否則將過(guò)濾窗口 Wb向報(bào)文尾部滑動(dòng)一個(gè)或多個(gè)字節(jié),同時(shí)過(guò)濾窗口偏移累 加器相應(yīng)地增加一個(gè)或多個(gè)字節(jié)。第二匹配單元中設(shè)有TCAM存儲(chǔ)單元、第二比較單元和第二仲裁單元,TCAM存儲(chǔ)單 元中存放有用于表征攻擊報(bào)文的多個(gè)不同長(zhǎng)度特征字,第二比較單元將報(bào)文截取器截取出 的互聯(lián)網(wǎng)報(bào)文中的一段內(nèi)容分別與TCAM存儲(chǔ)單元中的特征字進(jìn)行匹配,第二仲裁單元根 據(jù)匹配結(jié)果是否一致獲得該報(bào)文是否為攻擊報(bào)文的判斷結(jié)果,當(dāng)判斷結(jié)果表明該報(bào)文為非 攻擊報(bào)文時(shí),將該報(bào)文送往第一執(zhí)行單元;否則,將該報(bào)文送往第二執(zhí)行單元。第一執(zhí)行單元將其收到的報(bào)文直接轉(zhuǎn)發(fā),第二執(zhí)行單元將收到的報(bào)文丟棄并生成告警信息。本發(fā)明不局限于上述最佳實(shí)施方式,任何人應(yīng)該得知在本發(fā)明的啟示下作出的結(jié) 構(gòu)變化,凡是與本發(fā)明具有相同或相近的技術(shù)方案,均落入本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
互聯(lián)網(wǎng)深度報(bào)文檢測(cè)方法,其特征在于包括以下步驟A100、通過(guò)布魯姆過(guò)濾器對(duì)互聯(lián)網(wǎng)報(bào)文的報(bào)文內(nèi)容依次分段進(jìn)行過(guò)濾,當(dāng)在當(dāng)前段報(bào)文內(nèi)容中發(fā)現(xiàn)疑似攻擊報(bào)文的可疑內(nèi)容部分時(shí),則將該報(bào)文送給匹配單元進(jìn)行匹配認(rèn)定,否則對(duì)下一段報(bào)文內(nèi)容進(jìn)行過(guò)濾,到最后一段仍沒(méi)有發(fā)現(xiàn)可疑內(nèi)容則直接轉(zhuǎn)發(fā)該報(bào)文;A200、將疑似攻擊報(bào)文中的可疑部分分別同匹配單元中的TCAM中存儲(chǔ)的若干特征字進(jìn)行并行匹配,從而獲得該疑似攻擊報(bào)文是否為攻擊報(bào)文的判斷結(jié)果,當(dāng)判斷結(jié)果表明該可疑的攻擊報(bào)文為非攻擊性的報(bào)文時(shí),則轉(zhuǎn)步驟A100對(duì)其余的報(bào)文內(nèi)容進(jìn)行分段過(guò)濾;否則丟棄該報(bào)文并生成告警。
2.如權(quán)利要求1所述的互聯(lián)網(wǎng)深度報(bào)文檢測(cè)方法,其特征在于步驟A100包括以下步驟A101、將已知的用于表征攻擊報(bào)文的n個(gè)特征字,根據(jù)特征字長(zhǎng)度,分成L個(gè)不同的子 集,每個(gè)子集內(nèi)特征字長(zhǎng)度相同,每個(gè)子集的特征字個(gè)數(shù)為ni,對(duì)每個(gè)子集通過(guò)k個(gè)哈希函 數(shù)計(jì)算分別生成對(duì)應(yīng)的L個(gè)布魯姆過(guò)濾器,每個(gè)布魯姆過(guò)濾器均具有mi個(gè)比特位,其中mi > rij ;A102、以用于表征攻擊報(bào)文的特征字中最長(zhǎng)的特征字長(zhǎng)度作為布魯姆過(guò)濾器的過(guò)濾窗 口大小;A103、設(shè)置一個(gè)長(zhǎng)度為L(zhǎng)個(gè)比特的匹配向量數(shù)組,并將其所有比特位初始化為0 ;A104、確定過(guò)濾窗口在報(bào)文中的偏移位置;A105、對(duì)過(guò)濾窗口中的報(bào)文內(nèi)容進(jìn)行檢測(cè),具體為,對(duì)每種特征字長(zhǎng)度,用步驟A101中 的k個(gè)哈希函數(shù)對(duì)過(guò)濾窗口 Wb中報(bào)文內(nèi)容進(jìn)行計(jì)算,并分別將計(jì)算結(jié)果與步驟A101生成 的布魯姆過(guò)濾器中的每一個(gè)bit位進(jìn)行比對(duì),若二者相同則將匹配向量中對(duì)應(yīng)該長(zhǎng)度的的 相應(yīng)位置1 ;A106、以匹配向量中的所有比特位是否均為0為依據(jù)獲得該過(guò)濾窗口中的報(bào)文內(nèi)容是 否為疑似攻擊報(bào)文中的可疑內(nèi)容部分的判斷結(jié)果,當(dāng)判斷結(jié)果表明其為可疑內(nèi)容部分時(shí), 轉(zhuǎn)A108 ;否則轉(zhuǎn)A107 ;A107、過(guò)濾窗口向報(bào)文尾部滑動(dòng)一個(gè)或多個(gè)字節(jié),同時(shí)偏移起始位置增加相應(yīng)的一個(gè) 或多個(gè)字節(jié),通過(guò)判斷該偏移起始位置是否等于報(bào)文長(zhǎng)度減去過(guò)濾窗口的值,而獲得過(guò)濾 窗口是否到達(dá)報(bào)文末尾的判斷結(jié)果,當(dāng)判斷結(jié)果表明過(guò)濾窗口到達(dá)報(bào)文末尾時(shí),則將該報(bào) 文直接轉(zhuǎn)發(fā),否則轉(zhuǎn)步驟A104;A108、將該報(bào)文輸出至匹配單元進(jìn)行匹配認(rèn)定。
3.如權(quán)利要求1所述的互聯(lián)網(wǎng)深度報(bào)文檢測(cè)方法,其特征在于,步驟A200包括以下步驟A201、將過(guò)濾窗口中的報(bào)文內(nèi)容與匹配單元中的TCAM中存儲(chǔ)的若干特征字進(jìn)行并行 匹配;A202、判斷是否成功匹配某個(gè)特征字,若成功匹配,則轉(zhuǎn)A203 ;否則轉(zhuǎn)步驟A107 ;A203、丟棄該報(bào)文并生成告警。
4.如權(quán)利要求3所述的互聯(lián)網(wǎng)深度報(bào)文檢測(cè)方法,其特征在于,步驟A200中,如果存在 多個(gè)包含關(guān)系的特征字時(shí),最長(zhǎng)的特征字在TCAM中的存放地址位于其他特征字的前面,并 選擇最長(zhǎng)的特征字進(jìn)行匹配。
5.互聯(lián)網(wǎng)深度報(bào)文檢測(cè)裝置,其特征在于包括報(bào)文截取單元,通過(guò)預(yù)設(shè)的過(guò)濾窗口截取互聯(lián)網(wǎng)報(bào)文中的一段內(nèi)容;第一過(guò)濾單元,該第一過(guò)濾單元中設(shè)有k個(gè)哈希函數(shù)計(jì)算單元、L個(gè)布魯姆過(guò)濾器、第 一比較單元和第一仲裁單元,每個(gè)魯姆過(guò)濾器均具有mi個(gè)比特位,用于表征攻擊報(bào)文的已 知n個(gè)特征字按照長(zhǎng)度不同被分成L個(gè)子集,每個(gè)子集的特征字個(gè)數(shù)為ni,通過(guò)k個(gè)哈希函 數(shù)計(jì)算單元計(jì)算后,分別將對(duì)應(yīng)布魯姆過(guò)濾器中的相應(yīng)比特位置1,其中mi > n,;報(bào)文截取 單元的過(guò)濾窗口截取出的互聯(lián)網(wǎng)報(bào)文中的一段內(nèi)容,對(duì)每種特征字長(zhǎng)度,分別通過(guò)k個(gè)哈 希函數(shù)計(jì)算單元進(jìn)行計(jì)算,第一比較單元分別將該計(jì)算結(jié)果與布魯姆過(guò)濾器中的每個(gè)比特 位進(jìn)行比對(duì),如果計(jì)算結(jié)果與某個(gè)布魯姆過(guò)濾器中的所有比特位相同,則將匹配向量中對(duì) 應(yīng)該長(zhǎng)度的比特位置1 ;第一仲裁單元,以匹配向量中的所有比特位是否均為0,獲得該過(guò)濾窗口中的報(bào)文內(nèi) 容是否為疑似攻擊報(bào)文中的可疑內(nèi)容部分的判斷結(jié)果,當(dāng)判斷結(jié)果表明其為可疑內(nèi)容部分 時(shí),即存在非0值時(shí),將該報(bào)文送往第二匹配單元;否則將該報(bào)文送往第一執(zhí)行單元;第二匹配單元,該第二匹配單元中設(shè)有TCAM存儲(chǔ)單元、第二比較單元和第二仲裁單 元,TCAM存儲(chǔ)單元中存放有用于表征攻擊報(bào)文的多個(gè)不同長(zhǎng)度特征字,第二比較單元將報(bào) 文截取器截取出的互聯(lián)網(wǎng)報(bào)文中的一段內(nèi)容分別與TCAM存儲(chǔ)單元中的特征字進(jìn)行匹配, 第二仲裁單元根據(jù)匹配結(jié)果是否一致獲得該報(bào)文是否為攻擊報(bào)文的判斷結(jié)果,當(dāng)判斷結(jié)果 表明該報(bào)文為非攻擊報(bào)文時(shí),將該報(bào)文送往第一執(zhí)行單元;否則,將該報(bào)文送往第二執(zhí)行單兀。第一執(zhí)行單元,用于將其收到的報(bào)文直接轉(zhuǎn)發(fā);第二執(zhí)行單元,用于將收到的報(bào)文丟棄并生成告警信息。
6.如權(quán)利要求5所述的互聯(lián)網(wǎng)深度報(bào)文檢測(cè)裝置,其特征在于,第一過(guò)濾單元中還設(shè) 有報(bào)文截取單元滑動(dòng)裝置、過(guò)濾窗口偏移累加器和第三比較單元,過(guò)濾窗口偏移累加器的 初始值為0,報(bào)文截取單元滑動(dòng)裝置在匹配向量生成后,將過(guò)濾窗口向報(bào)文尾部滑動(dòng)一個(gè)或 多個(gè)字節(jié)時(shí)相應(yīng)地增加一個(gè)或多個(gè)字節(jié),同時(shí),過(guò)濾窗口偏移累加器相應(yīng)地增加一個(gè)或多 個(gè)字節(jié);第三比較單元以過(guò)濾窗口偏移累加器的值與報(bào)文長(zhǎng)度減去過(guò)濾窗口之后的值是否相 等為依據(jù),獲得過(guò)濾窗口是否滑動(dòng)到報(bào)文末尾的判斷結(jié)果,當(dāng)判斷結(jié)果表明滑動(dòng)到報(bào)文末 尾時(shí),將該報(bào)文送往第一執(zhí)行單元,否則將過(guò)濾窗口向報(bào)文尾部滑動(dòng)一個(gè)或多個(gè)字節(jié),同時(shí) 過(guò)濾窗口偏移累加器相應(yīng)地增加一個(gè)或多個(gè)字節(jié)。
7.如權(quán)利要求5所述的互聯(lián)網(wǎng)深度報(bào)文檢測(cè)裝置,其特征在于,所述過(guò)濾窗口的大小 等于用于表征攻擊報(bào)文的特征字中最長(zhǎng)的特征字長(zhǎng)度。
8.如權(quán)利要求5所述的互聯(lián)網(wǎng)深度報(bào)文檢測(cè)裝置,其特征在于具有包含關(guān)系的多個(gè)特 征字中,最長(zhǎng)的特征字在TCAM中的存放地址位于其他特征字的前面。
9.如權(quán)利要求5、6、7或8所述的互聯(lián)網(wǎng)深度報(bào)文檢測(cè)裝置,其特征在于所述第一過(guò)濾 單元采用SRAM來(lái)實(shí)現(xiàn)布魯姆過(guò)濾器。
全文摘要
本發(fā)明公開(kāi)了一種互聯(lián)網(wǎng)深度報(bào)文檢測(cè)方法和裝置,該方法首先通過(guò)布魯姆過(guò)濾器對(duì)互聯(lián)網(wǎng)報(bào)文的報(bào)文內(nèi)容依次分段進(jìn)行過(guò)濾,發(fā)現(xiàn)疑似攻擊報(bào)文的可疑內(nèi)容部分時(shí),送給匹配單元進(jìn)行匹配;疑似攻擊報(bào)文中的可疑部分分別同匹配單元中的TCAM中存儲(chǔ)的若干特征字進(jìn)行并行匹配,并獲得是否為攻擊報(bào)文的判斷結(jié)果,當(dāng)判斷結(jié)果表明為非攻擊性的報(bào)文時(shí),則繼續(xù)通過(guò)布魯姆過(guò)濾器對(duì)其余的報(bào)文內(nèi)容進(jìn)行分段過(guò)濾;否則丟棄該報(bào)文并生成告警。本發(fā)明,通過(guò)布魯姆過(guò)濾器對(duì)非攻擊報(bào)文和攻擊報(bào)文的非特征字內(nèi)容進(jìn)行過(guò)濾,只將可疑的攻擊報(bào)文的可疑部分送給匹配單元進(jìn)行匹配檢測(cè),從而加快特征字匹配速率,大大降低功耗。
文檔編號(hào)H04L29/06GK101848222SQ20101018563
公開(kāi)日2010年9月29日 申請(qǐng)日期2010年5月28日 優(yōu)先權(quán)日2010年5月28日
發(fā)明者朱國(guó)勝 申請(qǐng)人:武漢烽火網(wǎng)絡(luò)有限責(zé)任公司