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