專利名稱::基于層次化跳躍索引的快速網(wǎng)絡(luò)流特征檢測(cè)方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種基于層次化跳躍索引的快速網(wǎng)絡(luò)流特征檢測(cè)方法,屬于網(wǎng)絡(luò)流量?jī)?nèi)容檢測(cè)
技術(shù)領(lǐng)域:
。
背景技術(shù):
:近年來(lái),互聯(lián)網(wǎng)中對(duì)數(shù)據(jù)流進(jìn)行完整性、私密性、可用性等方面的惡意攻擊快速增長(zhǎng),促進(jìn)了防火墻、虛擬專用網(wǎng)以及網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)(NIDS)和網(wǎng)絡(luò)入侵防御系統(tǒng)(NIPS)等技術(shù)的發(fā)展。為了防范這些攻擊,網(wǎng)絡(luò)設(shè)備在進(jìn)行協(xié)議分析和狀態(tài)分析的基礎(chǔ)上,其中一個(gè)非常重要的環(huán)節(jié)就是通過多模式匹配方法來(lái)檢測(cè)網(wǎng)包的負(fù)載中是否包含標(biāo)識(shí)誤用和攻擊的特征字符串(即模式)。多模式匹配方法主要研究從大量數(shù)據(jù)中快速匹配多個(gè)模式的技術(shù)。網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)和網(wǎng)絡(luò)入侵防御系統(tǒng)中的模式匹配是基于一個(gè)模式集的,其中每個(gè)模式標(biāo)識(shí)一種攻擊或者威脅。模式匹配方法根據(jù)對(duì)待檢測(cè)快速網(wǎng)絡(luò)流文本或者用戶設(shè)定的標(biāo)識(shí)網(wǎng)絡(luò)流特征的模式集進(jìn)行預(yù)處理分為索引方案和非索引方案。索引方案對(duì)文本進(jìn)行預(yù)處理,然后進(jìn)行模式匹配;非索引方案對(duì)模式集進(jìn)行預(yù)處理,然后進(jìn)行模式匹配。當(dāng)前網(wǎng)絡(luò)帶寬的發(fā)展速度遠(yuǎn)遠(yuǎn)快于計(jì)算機(jī)硬件的發(fā)展速度,而網(wǎng)絡(luò)環(huán)境的日益復(fù)雜化致使實(shí)時(shí)網(wǎng)絡(luò)信息檢測(cè)顯得尤為必要。在廣為人知的入侵檢測(cè)系統(tǒng)Snort中,約有31%的處理時(shí)間消耗在模式匹配上。而當(dāng)網(wǎng)絡(luò)流量包含大量敏感信息時(shí),這個(gè)比例可以上升至80%。實(shí)時(shí)網(wǎng)絡(luò)信息檢測(cè)速度的提升依賴于方法效率的提高和硬件水平的發(fā)展。當(dāng)前,千兆以上帶寬的網(wǎng)絡(luò)信息監(jiān)控、入侵檢測(cè)系統(tǒng)、入侵防御系統(tǒng)還沒有很好的解決方案。因此,研究軟件方法如何提高多模式匹配的速度依然是具有重大意義的課題。
發(fā)明內(nèi)容本發(fā)明的目的在于提出一種基于層次化跳躍索引的快速網(wǎng)絡(luò)流特征檢測(cè)方法,基于快速的多模式匹配,通過層次化的表格查找,可以盡量產(chǎn)生跳躍索引,避免不必要的匹配,從而達(dá)到快速檢測(cè)大量模式的目的。本發(fā)明提出的基于層次化跳躍索引的快速網(wǎng)絡(luò)流特征檢測(cè)方法,包括以下各步驟(1)對(duì)用戶設(shè)定的標(biāo)識(shí)網(wǎng)絡(luò)流特征的模式集的特定位置的具有特定長(zhǎng)度的兩個(gè)字塊,分別建立兩張字塊跳躍表格;(2)分別建立上述兩張字塊跳躍表格中跳躍值為零的記錄與上述用戶設(shè)定的標(biāo)識(shí)網(wǎng)絡(luò)流特征的模式之間的第一映射表和第二映射表,根據(jù)第一和第二映射表,通過“位與”操作,獲取深層跳躍表格與上述用戶設(shè)定的標(biāo)識(shí)網(wǎng)絡(luò)流特征的模式之間的第三映射表,根據(jù)第三映射表,采用雙倍寬度字塊重新掃描上述用戶設(shè)定的標(biāo)識(shí)網(wǎng)絡(luò)流特征的模式集,建立深層跳躍表格;(3)提取與上述深層跳躍表格對(duì)應(yīng)的第三映射表中的映射信息,建立潛在匹配表格,并釋放所有映射表;(4)在與上述兩張字塊跳躍表格的對(duì)應(yīng)位置,從待檢測(cè)快速網(wǎng)絡(luò)流傳送的數(shù)據(jù)流中提取索引信息,根據(jù)索引信息從兩張字塊跳躍表格中得到兩個(gè)跳躍值;(5)若兩個(gè)跳躍值中的較大值不為零,則將上述用戶設(shè)定的標(biāo)識(shí)網(wǎng)絡(luò)流特征的模式集按較大跳躍值向右移動(dòng),若兩個(gè)跳躍值均為零,則從上述深層跳躍表格中重新檢索跳躍值;(6)若上述重新檢索的跳躍值不為零,則將上述用戶設(shè)定的標(biāo)識(shí)網(wǎng)絡(luò)流特征的模式集按跳躍值向右移動(dòng),若上述重新檢索的跳躍值為零,則將潛在匹配表格給出的模式索引序列中的每個(gè)模式與待檢測(cè)快速網(wǎng)絡(luò)流傳送的數(shù)據(jù)流進(jìn)行比對(duì),若匹配不成功,則進(jìn)行步驟(7),若匹配成功,則給出警告后進(jìn)行步驟(7);(7)重復(fù)步驟(4)~(6),對(duì)待檢測(cè)快速網(wǎng)絡(luò)流傳送的數(shù)據(jù)流進(jìn)行連續(xù)檢測(cè)。本發(fā)明提出的基于層次化跳躍索引的快速網(wǎng)絡(luò)流特征檢測(cè)方法,通過深入挖掘模式集中的啟發(fā)信息,減少了檢測(cè)過程中不必要的比對(duì)操作。同時(shí)利用層次化的表格數(shù)據(jù)結(jié)構(gòu)使得方法性能穩(wěn)定,查找速度快。此外,此方法的空間內(nèi)存占用較少,支持大規(guī)模的模式集,增強(qiáng)了方法的可實(shí)施性。通過實(shí)驗(yàn)比較分析,本發(fā)明在綜合性能優(yōu)于現(xiàn)有的流行方法,如AC、AC_BM、Wu-Manner以及SetwiseBMH。使用本發(fā)明的方法,提高了內(nèi)容分析系統(tǒng)的性能。本發(fā)明適用于高性能防火墻、內(nèi)容檢測(cè)、入侵檢測(cè)、病毒防護(hù)和網(wǎng)絡(luò)信息監(jiān)控等領(lǐng)域。圖1是本發(fā)明方法中對(duì)數(shù)據(jù)流進(jìn)行檢測(cè)的流程框圖。具體實(shí)施例方式本發(fā)明提出的基于層次化跳躍索引的快速網(wǎng)絡(luò)流特征檢測(cè)方法,首先對(duì)用戶設(shè)定的標(biāo)識(shí)網(wǎng)絡(luò)流特征的模式集的特定位置的具有特定長(zhǎng)度的兩個(gè)字塊,分別建立兩張字塊跳躍表格;分別建立上述兩張字塊跳躍表格中跳躍值為零的記錄與上述用戶設(shè)定的標(biāo)識(shí)網(wǎng)絡(luò)流特征的模式之間的第一映射表和第二映射表,根據(jù)第一和第二映射表,通過“位與”操作,獲取深層跳躍表格與上述用戶設(shè)定的標(biāo)識(shí)網(wǎng)絡(luò)流特征的模式之間的第三映射表,根據(jù)第三映射表,采用雙倍寬度字塊重新掃描上述用戶設(shè)定的標(biāo)識(shí)網(wǎng)絡(luò)流特征的模式集,建立深層跳躍表格;提取與深層跳躍表格對(duì)應(yīng)的第三映射表中的映射信息,建立潛在匹配表格,并釋放所有映射表;在與兩張字塊跳躍表格的對(duì)應(yīng)位置,從待檢測(cè)快速網(wǎng)絡(luò)流傳送的數(shù)據(jù)流中提取索引信息,根據(jù)索引信息從兩張字塊跳躍表格中得到兩個(gè)跳躍值;若兩個(gè)跳躍值中的較大值不為零,則將上述用戶設(shè)定的標(biāo)識(shí)網(wǎng)絡(luò)流特征的模式集按較大跳躍值向右移動(dòng),若兩個(gè)跳躍值均為零,則從上述深層跳躍表格中重新檢索跳躍值;若重新檢索的跳躍值不為零,則將上述用戶設(shè)定的標(biāo)識(shí)網(wǎng)絡(luò)流特征的模式集按跳躍值向右移動(dòng),若上述重新檢索的跳躍值為零,則將潛在匹配表格給出的模式索引序列中的每個(gè)模式與待檢測(cè)快速網(wǎng)絡(luò)流傳送的數(shù)據(jù)流進(jìn)行比對(duì),若匹配成功,則給出警告,并重復(fù)檢測(cè)過程,若匹配不成功,同樣重復(fù)檢測(cè)過程。以下給出本發(fā)明的一個(gè)實(shí)施例本發(fā)明方法可以分為兩個(gè)階段,第一階段為建立三層跳躍表格即字塊跳躍表格、深層跳躍表格和潛在匹配表格,第二階段為根據(jù)建立的表格對(duì)待檢測(cè)快速網(wǎng)絡(luò)流進(jìn)行掃描檢測(cè)。在現(xiàn)實(shí)網(wǎng)絡(luò)信息監(jiān)控中,由于模式集相對(duì)固定,因此建立表格過程只需要進(jìn)行一次,但是可以在多次數(shù)據(jù)流檢測(cè)中重復(fù)使用。所以考慮方法性能時(shí),一般不以建立表格時(shí)間為主要標(biāo)準(zhǔn),若模式集不斷更新,則可以定時(shí)地重新建立表格。假設(shè)用∑表示字符集,用a表示字符集的大小,用B表示字塊的寬度,用m表示最短模式長(zhǎng)度,模式的數(shù)量用k來(lái)表示。t表示文本,ti...tj(i≤j)表示從i到j(luò)的文本。P表示模式集,pi(1≤i≤k)表示第i個(gè)模式。多模式匹配問題就是要在文本t中找出所有匹配pi的字符串。假定模式集為P={AT-THY-,ALLOY),設(shè)字符集的大小a=256,同時(shí)取字塊寬度B=2。首先建立兩張字塊跳躍表格。對(duì)應(yīng)模式集為P={AT-THY-,ALLOY},可以得到如下的兩張字塊跳躍表格。先將模式集中的所有模式右對(duì)齊,則字塊1對(duì)應(yīng)的表格中存儲(chǔ)的是根據(jù)所有模式右起第一和第二兩位字符所得到的跳躍值。由于字符集大小為256,而字塊1存儲(chǔ)的是右起兩位字符對(duì)應(yīng)的跳躍值,所以此表格的大小為2562=65536。從字塊1表格可以看出,對(duì)應(yīng){Y-,OY}處的記錄中存儲(chǔ)的跳躍值為O,對(duì)應(yīng){HY,LO}處的記錄中存儲(chǔ)的跳躍值為1,對(duì)應(yīng){TH,LL}處的記錄中存儲(chǔ)的跳躍值為2,對(duì)應(yīng){-T,AL}處的記錄中存儲(chǔ)的跳躍值為3,對(duì)應(yīng){T-}處的記錄中存儲(chǔ)的跳躍值為4,對(duì)應(yīng){AT}處的記錄中存儲(chǔ)的跳躍值為5,而其他所有未在模式集中出現(xiàn)的字塊對(duì)應(yīng)的跳躍值均為最短模式長(zhǎng)度m(此例中m=5)。同理,字塊2表格存儲(chǔ)的是右起第三和第四兩位字符對(duì)應(yīng)的跳躍值,表格大小同樣為65536。由于切除了所有模式的末兩位字符,因此對(duì)應(yīng)的跳躍值均減少2,而在模式集中未出現(xiàn)的字塊對(duì)應(yīng)的跳躍值均為最短模式長(zhǎng)度減2(即m-2,此例中為3)。然后建立一張深層跳躍表格。深層跳躍表格建立該表格是由于如下現(xiàn)象在設(shè)定的模式集P={AT-THY-,ALLOY}下,若文本中存在大量的字符串FINALLY-,那么僅僅利用字塊跳躍表格將頻繁地得到跳躍值零,這樣就需要在此處進(jìn)行一次對(duì)模式集的完全的匹配查找。然而通過觀察可知字符串FINALLY-實(shí)際上并不對(duì)應(yīng)任何模式,而只是因?yàn)槟﹥晌蛔址鸜-在p1AT-THY-中存在,而末三四位字符LL在p2ALLOY中存在??梢韵胂螅?dāng)模式集很大的時(shí)候,字符串的右起一二位和三四位匹配不同模式而導(dǎo)致字塊跳躍表格值均為零的概率將增加。為了建立深層跳躍表格,需要對(duì)兩張字塊跳躍表格中值為零的記錄記錄一條模式映射信息(Bitmap),例如字塊1中的OY,由于只有第二個(gè)模式與之匹配,可以對(duì)應(yīng)地給出它的映射信息00000010,對(duì)應(yīng)其中的Y-可以給出映射信息00000001;對(duì)應(yīng)字塊2中的LL可以給出映射信息00000010,對(duì)應(yīng)其中的TH可以給出映射信息00000001。深層跳躍表格同樣需要對(duì)應(yīng)一張映射表,這個(gè)表格中的每條記錄是兩張字塊跳躍表格對(duì)應(yīng)的映射表中的映射信息進(jìn)行“位與”操作的結(jié)果。如下所示第一映射表OYY-第二映射表LLTH第三映射表OYLLOYTHY-LLY-TH上述映射表3是映射表1和映射表2進(jìn)行“位與”操作的結(jié)果。根據(jù)映射表3,可以看到OYTH、Y-LL實(shí)際上是不對(duì)應(yīng)任何匹配的,因此本方法在深層跳躍表格中存儲(chǔ)利用雙倍寬度字塊重新掃描模式集得到的跳躍值。最后建立一張潛在匹配表格。潛在匹配表格OYTHY-LL潛在匹配表格通過抽取映射表3中的映射信息得出。此表格實(shí)質(zhì)上是一個(gè)結(jié)構(gòu)體數(shù)組,數(shù)組每條記錄的第一項(xiàng)為潛在匹配的模式數(shù)量,第二項(xiàng)為潛在匹配的模式索引的序列。之所以存為數(shù)組是為了加速匹配查找的速度。對(duì)應(yīng)映射表3可以得到如上所示的潛在匹配表格。在掃描檢測(cè)階段,首先需要把所有模式進(jìn)行右對(duì)齊,然后把最短的模式與文本進(jìn)行左對(duì)齊,如下所示模式1AT-THAY-模式2ALLOY文本W(wǎng)HICH-FINALLY-HALTS.AT-THAT-POINT↑數(shù)據(jù)流的檢測(cè)過程如圖1所示,步驟為在與兩張字塊跳躍表格的對(duì)應(yīng)位置,從待檢測(cè)快速網(wǎng)絡(luò)流傳送的數(shù)據(jù)流中提取索引信息,根據(jù)索引信息從兩張字塊跳躍表格中得到兩個(gè)跳躍值;若兩個(gè)跳躍值中的較大值不為零,則將上述用戶設(shè)定的標(biāo)識(shí)網(wǎng)絡(luò)流特征的模式集按較大跳躍值向右移動(dòng),若兩個(gè)跳躍值均為零,則從上述深層跳躍表格中重新檢索跳躍值;若重新檢索的跳躍值不為零,則將上述用戶設(shè)定的標(biāo)識(shí)網(wǎng)絡(luò)流特征的模式集按跳躍值向右移動(dòng),若上述重新檢索的跳躍值為零,則將潛在匹配表格給出的模式索引序列中的每個(gè)模式與待檢測(cè)快速網(wǎng)絡(luò)流傳送的數(shù)據(jù)流進(jìn)行比對(duì),若匹配成功,則給出警告,并重復(fù)檢測(cè)過程,若匹配不成功,同樣重復(fù)檢測(cè)過程。本發(fā)明中的層次化跳躍索引方法采用了字塊啟發(fā)信息來(lái)產(chǎn)生跳躍,這與BM方法中的不良字符啟發(fā)信息是不同的。本發(fā)明基于這樣一個(gè)觀察BM方法中的不良字符啟發(fā)信息在單模式匹配方法中效率非常高,但是在多模式的情形下,每個(gè)字符在某個(gè)特定位置的出現(xiàn)概率將大大增加,這樣隨著模式數(shù)量的增大產(chǎn)生跳躍的概率將減小。因此,本發(fā)明采用多字符的字塊來(lái)生成啟發(fā)信息,多字符在某個(gè)特定位置出現(xiàn)的概率相對(duì)于單字符要小得多,因此產(chǎn)生跳躍的概率將大得多。在本發(fā)明中,兩個(gè)字塊跳躍表格存儲(chǔ)著根據(jù)兩個(gè)特定位置的特定長(zhǎng)度的字塊來(lái)確定的最大跳躍值。由于針對(duì)的是多模式的情形,因此本發(fā)明對(duì)字塊的每一種可能組合都預(yù)先和所有的模式進(jìn)行比對(duì),最終將保證不漏檢的最大跳躍值存儲(chǔ)在字塊跳躍表格中。建立深層跳躍表格則是為了進(jìn)一步減少不必要的比對(duì)操作,在兩張字塊跳躍表格中的兩個(gè)字塊跳躍值均為零的情形下,利用雙字塊長(zhǎng)度來(lái)生成啟發(fā)信息,并將跳躍值存儲(chǔ)在深層跳躍表格中。潛在匹配表格則根據(jù)深層跳躍表格中值為零的記錄對(duì)應(yīng)的映射表生成可能匹配的模式的索引序列,從而避免在匹配的階段將文本和所有的模式進(jìn)行對(duì)比,而只需要與索引序列中存在的模式進(jìn)行對(duì)比。與本發(fā)明的層次化跳躍索引方法最接近的前人工作是Wu-Manner方法。Wu-Manner方法主要基于三個(gè)表格跳躍表格(SHIFTtable)、哈希表格(HASHtable)以及前綴表格(PREFIXtable)。跳躍表格與本發(fā)明的字塊跳躍表格相似,但是本發(fā)明與Wu-Manner方法的不同在于Wu-Manner方法只利用了一張?zhí)S表格,而在跳躍值為零的時(shí)候利用哈希表格和前綴表格來(lái)減少需要檢測(cè)的模式數(shù)量。而層次化跳躍索引方法利用兩張字塊跳躍表格,增大了產(chǎn)生跳躍的可能性;同時(shí)在跳躍值均為零的情況下,進(jìn)一步利用深層跳躍表格來(lái)挖掘啟發(fā)信息,增大了產(chǎn)生跳躍的可能性;最后利用潛在匹配表格替代哈希鏈表來(lái)存儲(chǔ)可能匹配模式的索引序列,加快了匹配檢測(cè)的速度。本方法整個(gè)層次化的表格結(jié)構(gòu)加大了對(duì)啟發(fā)信息的采集和利用,同時(shí)固定的數(shù)據(jù)結(jié)構(gòu)使得方法性能非常穩(wěn)定,而且方法的時(shí)間空間復(fù)雜度都能夠以充分的理論分析做保證。在具體實(shí)現(xiàn)層次化跳躍索引方法的時(shí)候,需要注意的是本方法假定所有的模式長(zhǎng)度均大于兩倍的字塊寬度,這是為了保證層次化結(jié)構(gòu)的可構(gòu)造性。若最短模式長(zhǎng)度小于兩倍的字塊寬度,本發(fā)明依然可以通過調(diào)整數(shù)據(jù)結(jié)構(gòu)達(dá)到層次化的效果。權(quán)利要求1.一種基于層次化跳躍索引的快速網(wǎng)絡(luò)流特征檢測(cè)方法,其特征在于該方法包括以下各步驟(1)對(duì)用戶設(shè)定的標(biāo)識(shí)網(wǎng)絡(luò)流特征的模式集的特定位置的具有特定長(zhǎng)度的兩個(gè)字塊,分別建立兩張字塊跳躍表格;(2)分別建立上述兩張字塊跳躍表格中跳躍值為零的記錄與上述用戶設(shè)定的標(biāo)識(shí)網(wǎng)絡(luò)流特征的模式之間的第一映射表和第二映射表,根據(jù)第一和第二映射表,通過“位與”操作,獲取深層跳躍表格與上述用戶設(shè)定的標(biāo)識(shí)網(wǎng)絡(luò)流特征的模式之間的第三映射表,根據(jù)第三映射表,采用雙倍寬度字塊重新掃描上述用戶設(shè)定的標(biāo)識(shí)網(wǎng)絡(luò)流特征的模式集,建立深層跳躍表格;(3)提取與上述深層跳躍表格對(duì)應(yīng)的第三映射表中的映射信息,建立潛在匹配表格,并釋放所有映射表;(4)在與上述兩張字塊跳躍表格的對(duì)應(yīng)位置,從待檢測(cè)快速網(wǎng)絡(luò)流傳送的數(shù)據(jù)流中提取索引信息,根據(jù)索引信息從兩張字塊跳躍表格中得到兩個(gè)跳躍值;(5)若兩個(gè)跳躍值中的較大值不為零,則將上述用戶設(shè)定的標(biāo)識(shí)網(wǎng)絡(luò)流特征的模式集按較大跳躍值向右移動(dòng),若兩個(gè)跳躍值均為零,則從上述深層跳躍表格中重新檢索跳躍值;(6)若上述重新檢索的跳躍值不為零,則將上述用戶設(shè)定的標(biāo)識(shí)網(wǎng)絡(luò)流特征的模式集按跳躍值向右移動(dòng),若上述重新檢索的跳躍值為零,則將潛在匹配表格給出的模式索引序列中的每個(gè)模式與待檢測(cè)快速網(wǎng)絡(luò)流傳送的數(shù)據(jù)流進(jìn)行比對(duì),若匹配不成功,則進(jìn)行步驟(7),若匹配成功,則給出警告后進(jìn)行步驟(7);(7)重復(fù)步驟(4)~(6),對(duì)待檢測(cè)快速網(wǎng)絡(luò)流傳送的數(shù)據(jù)流進(jìn)行連續(xù)檢測(cè)。全文摘要本發(fā)明涉及一種基于層次化跳躍索引的快速網(wǎng)絡(luò)流特征檢測(cè)方法,屬于網(wǎng)絡(luò)流量?jī)?nèi)容檢測(cè)
技術(shù)領(lǐng)域:
。首先對(duì)用戶設(shè)定的標(biāo)識(shí)網(wǎng)絡(luò)流特征的模式集的特定位置的具有特定長(zhǎng)度的兩個(gè)字塊,分別建立兩張字塊跳躍表格;分別建立兩張字塊跳躍表格與模式之間的第一、第二映射表,通過“位與”操作,獲取第三映射表,根據(jù)第三映射表建立深層跳躍表格,最后建立潛在匹配表格;根據(jù)建立的三種表格,對(duì)快速網(wǎng)絡(luò)流傳送的數(shù)據(jù)流進(jìn)行連續(xù)檢測(cè)。本發(fā)明的檢測(cè)方法,通過深入挖掘模式集中的啟發(fā)信息,減少了檢測(cè)過程中不必要的比對(duì)操作。同時(shí)利用層次化的表格數(shù)據(jù)結(jié)構(gòu)使得方法性能穩(wěn)定,查找速度快。適用于高性能防火墻、內(nèi)容檢測(cè)、入侵檢測(cè)、病毒防護(hù)和網(wǎng)絡(luò)信息監(jiān)控等領(lǐng)域。文檔編號(hào)H04L12/24GK1776683SQ20051012796公開日2006年5月24日申請(qǐng)日期2005年12月9日優(yōu)先權(quán)日2005年12月9日發(fā)明者徐波,李軍申請(qǐng)人:清華大學(xué)