亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基于報文流數(shù)據(jù)的無緩存模式匹配方法

文檔序號:7693573閱讀:261來源:國知局
專利名稱:一種基于報文流數(shù)據(jù)的無緩存模式匹配方法
技術領域
本發(fā)明涉及一種基于報文流數(shù)據(jù)的無緩存模式匹配方法,該方法可以廣 泛的用于對網(wǎng)絡報文進行監(jiān)測的如網(wǎng)絡入侵檢測系統(tǒng)、審計系統(tǒng)等安全系統(tǒng) 中。
背景技術
作為任何一種監(jiān)測系統(tǒng),都希望能夠?qū)W(wǎng)絡上傳輸?shù)奈募?,進行內(nèi)容檢 査,以便發(fā)現(xiàn)其中包含的蠕蟲、惡意代碼等內(nèi)容。但由于完整的文件在網(wǎng)上 傳輸中,被分為一個個一定長度的報文,夾雜在其他各類報文中,因此,為
防止一個匹配模式跨越2個、或者多個網(wǎng)絡報文,必須緩存至少2個報文(緩 存數(shù)據(jù)的長度,至少等于匹配模式的長度),再進行報文重組,然后再進行 模式匹配,匹配后丟棄無用的數(shù)據(jù)(匹配模式數(shù)據(jù)長度以外的數(shù)據(jù))。這樣, 可以保障在連續(xù)進行模式匹配過程中,不會因為數(shù)據(jù)的斷續(xù)而出現(xiàn)漏報。但 也由于報文緩存,造成一定的時間、空間消耗,無法滿足系統(tǒng)性能的需求。 本方法提出一種基于報文流數(shù)據(jù)的無緩存模式匹配方法,采用匹配狀態(tài) 樹進行模式匹配,通過記憶每個報文匹配完成后的匹配狀態(tài)樹的位置,而不 用緩存報文數(shù)據(jù),就能夠保障數(shù)據(jù)模式匹配過程中沒有漏報。

發(fā)明內(nèi)容
本發(fā)明的目的是為了提高報文流數(shù)據(jù)的模式匹配速度,它按照匹配模式 建立匹配狀態(tài)樹,通過記錄每個報文匹配后狀態(tài)樹的位置,并按照該位置進 行下次的模式匹配,完成無報文緩沖情況下,網(wǎng)絡數(shù)據(jù)的完整匹配,并達到節(jié)省數(shù)據(jù)緩沖的時間、空間的目的。
一種基于報文流數(shù)據(jù)的無緩存模式匹配方法,包含下面二個大步驟
1) 初始化過程,分為下面幾個子步驟
a) 讀取匹配模式;
b) 把匹配模式轉(zhuǎn)換為匹配狀態(tài)樹; C)初始化匹配起始狀態(tài);
2) 實時數(shù)據(jù)匹配,分為下面幾個子步驟
d) 讀取待匹配數(shù)據(jù);
e) 按照當前的匹配狀態(tài),調(diào)用匹配程序進行模式匹配;
f) 記錄當前的匹配狀態(tài);
g) 如果匹配成功,上報匹配結果數(shù)據(jù);否則轉(zhuǎn)到讀取待匹配數(shù)據(jù) 步驟。
本發(fā)明具有的優(yōu)點能夠在不緩存報文數(shù)據(jù)的情況下,完成網(wǎng)絡數(shù)據(jù)的 完整數(shù)據(jù)模式匹配,從而大大節(jié)省由于數(shù)據(jù)緩存而引起的時間、空間消耗, 提高整體性能。
在網(wǎng)絡數(shù)據(jù)監(jiān)測系統(tǒng)中,待匹配數(shù)據(jù)是按照報文一個個到達的,如匹配 模式為"abcd",傳輸?shù)臄?shù)據(jù)中有"abcdefg",但在前、后2個報文中分別 傳輸?shù)谝粋€報文傳輸abc、第二個報文傳輸defg。為了解決跨報文模式匹 配的問題,目前的通用方法是建立一個足夠大的緩沖區(qū),保存連續(xù)的網(wǎng)絡報 文數(shù)據(jù)。系統(tǒng)在接收到一個報文后,先把接收的數(shù)據(jù)與已經(jīng)緩存的數(shù)據(jù)進行 拼接,組成一個連續(xù)的完整數(shù)據(jù),再進行模式匹配。對上面2個報文,先把 后面的數(shù)據(jù)"defg"拷貝到已經(jīng)在緩沖區(qū)的數(shù)據(jù)"abc"之后,然后再進行 模式匹配;之后,如果緩沖區(qū)過長,還要對緩沖區(qū)壓縮,丟棄前面的一段無 用的數(shù)據(jù),以便保障緩沖區(qū)的長度不超過極限值。這里的緩沖過程,既消耗 匹配時間、也消耗內(nèi)存空間。采用本方法后,由于無需進行報文拼接、緩存, 直接按照以前的匹配狀態(tài)進行匹配,在不影響匹配精確度的情況下,大大提高了匹配速度、減少的內(nèi)存空間。


圖l是本發(fā)明的系統(tǒng)處理流程圖2是網(wǎng)絡數(shù)據(jù)傳輸中,由于數(shù)據(jù)按照網(wǎng)絡報文傳輸而引起的數(shù)據(jù)碎片示 意圖3是匹配狀態(tài)樹的生成和數(shù)據(jù)匹配過程示意圖。 下面結合附圖和具體實施例來詳細描述本發(fā)明。
具體實施例方式
實施例l: 如圖1所示,描述了本系統(tǒng)的處理步驟。分為系統(tǒng)初始化 和實時數(shù)據(jù)匹配兩個部分;有如下七個步驟
讀取模式數(shù)據(jù)步驟從配置文件中,讀取需要匹配的模式數(shù)據(jù)。示例 中為defghi;
按照模式數(shù)據(jù)生成匹配狀態(tài)樹步驟把讀取的模式數(shù)據(jù),轉(zhuǎn)換為實時 匹配中使用的匹配狀態(tài)樹。
初始化匹配起始狀態(tài)步驟完成匹配狀態(tài)樹起始位置的設置;
讀取讀取從外部讀取匹配數(shù)據(jù);
調(diào)用匹配程序步驟調(diào)用匹配程序,按照當前匹配狀態(tài)樹的位置,進
行數(shù)據(jù)匹配工作,并返回當前報文匹配結束時匹配狀態(tài)樹的位置;
記錄當前匹配狀態(tài)樹位置步驟記錄報文匹配結束后匹配狀態(tài)樹的位 置,以備后續(xù)報文匹配時使用;
上報匹配結果步驟如果匹配成功,上報匹配結果;完成結果處理后, 繼續(xù)循環(huán)處理后續(xù)數(shù)據(jù)。
圖2描述了一個數(shù)據(jù)文件在網(wǎng)絡傳輸過程中,被打碎為多個報文的情 況。 一個完整的文件,包含字符串"abcdefghijk",但在傳輸過程中,分為多個報文傳輸,該字符串被分割為分別包含"abcdef"和"ghijk"兩部分。 當對應的匹配模式為"defghi"時,按照一般匹配方法,2個報文都無法獲 得成功的匹配;如果防止漏報,必須保存前一個報文,在匹配前把2個報文 進行拼接,組成一個連續(xù)數(shù)據(jù)再進行匹配。
圖3描述了按照模式"defghi"生成的匹配狀態(tài)樹,以及基于狀態(tài)的 匹配過程。該模式的匹配狀態(tài)樹共7個節(jié)點,分別為節(jié)點1至節(jié)點7,其中第 七個節(jié)點是成功匹配節(jié)點;每個節(jié)點都根據(jù)當前的匹配數(shù)據(jù),進入下一個節(jié) 點,如節(jié)點2,當當前字符為"e"時,進入節(jié)點3,當前字符為"d"時,進 入節(jié)點2,其他字符進入節(jié)點l。系統(tǒng)匹配的起始狀態(tài)是節(jié)點l。
系統(tǒng)在處理第n個報文時,無論處于任何狀態(tài),都回由于數(shù)據(jù)"abc" 而進入狀態(tài)節(jié)點l;在處理"def"后,進入節(jié)點4;此時本報文匹配結束, 系統(tǒng)記錄下當前狀態(tài)位置4,可以進行其他工作。系統(tǒng)以后再接收到報文n+l 后,如果從狀態(tài)節(jié)點l匹配,則無法獲得成功的結果。此時,應該從前一個 報文結束匹配的位置已經(jīng)記錄的狀態(tài)節(jié)點4繼續(xù)匹配,連續(xù)通過狀態(tài)節(jié)點5、 6、 7,獲得一次成功匹配。其他任何報文的匹配,只要不包含完整的模式數(shù) 據(jù),都在節(jié)點1一6之間循環(huán)。
實施例2:
一種基于報文流數(shù)據(jù)的無緩存模式匹配方法,該方法包含如下步驟
1、 讀取匹配模式;
2、 把匹配模式轉(zhuǎn)換為匹配狀態(tài)樹;
3、 初始化匹配起始狀態(tài);
4、 讀取待匹配的數(shù)據(jù);
5、 按照當前的匹配狀態(tài),調(diào)用匹配程序進行模式匹配;
6、 記錄當前的匹配狀態(tài);
7、 如果匹配成功,上報匹配結果;否則轉(zhuǎn)步驟4繼續(xù)。匹配模式指一個明文字符串,當 一個或者多個報文中包含該字符串時,
將產(chǎn)生報警信息;這里的多個報文,指一個匹配模式可能跨越一個、或者多 個報文;模式匹配指在待匹配數(shù)據(jù)中查找匹配模式的過程。
按照匹配模式生成用于模式匹配的匹配狀態(tài)樹;這里的匹配狀態(tài)樹指 按照匹配模式生成的、用于模式匹配的有窮狀態(tài)自動機。
初始化起始狀態(tài)指把當前匹配狀態(tài)樹的位置,設置為起始位置,使數(shù) 據(jù)的匹配可以從匹配狀態(tài)樹的起點開始。
讀取待匹配數(shù)據(jù),指網(wǎng)絡報文數(shù)據(jù)的讀取,以便進行模式匹配。
按照當前的匹配狀態(tài)(匹配狀態(tài)樹的位置),調(diào)用匹配程序進行模式 匹配,就是說,匹配程序至少需要2個入口參數(shù)當前匹配狀態(tài)、被匹配數(shù) 據(jù);匹配狀態(tài)指匹配狀態(tài)樹的位置,也就是用于模式匹配的有窮狀態(tài)自動機 的節(jié)點序號。
當數(shù)據(jù)匹配完成后,無論匹配結果如何,記錄當前的匹配完成狀態(tài)(匹 配狀態(tài)樹的位置),便于后續(xù)的數(shù)據(jù)匹配。
如果匹配成功,上報匹配結果數(shù)據(jù);否則轉(zhuǎn)至第上述第4步驟"讀取待 匹配的數(shù)據(jù)",循環(huán)進行。
權利要求
1.一種基于報文流數(shù)據(jù)的無緩存模式匹配方法,其特征在于包含下面二個大步驟1)初始化過程,分為下面幾個子步驟a)讀取匹配模式;b)把匹配模式轉(zhuǎn)換為匹配狀態(tài)樹;c)初始化匹配起始狀態(tài);2)實時數(shù)據(jù)匹配,分為下面幾個子步驟d)讀取待匹配數(shù)據(jù);e)按照當前的匹配狀態(tài),調(diào)用匹配程序進行模式匹配;f)記錄當前的匹配狀態(tài);g)如果匹配成功,上報匹配結果數(shù)據(jù);否則轉(zhuǎn)到讀取待匹配數(shù)據(jù)步驟。
2. 根據(jù)權利要求1所述的一種基于報文流數(shù)據(jù)的無緩存模 式匹配方法,其特征在于匹配模式指一個明文字符串,當一個或者 多個報文中包含該字符串時,將產(chǎn)生報警信息;這里的多個報文,指 一個匹配模式可能跨越一個、或者多個報文;模式匹配指在待匹配數(shù) 據(jù)中查找匹配模式的過程。
3. 根據(jù)權利要求1所述的一種基于報文流數(shù)據(jù)的無緩存模 式匹配方法,其特征在于按照匹配模式生成用于模式匹配的匹配狀 態(tài)樹;這里的匹配狀態(tài)樹指按照匹配模式生成的、用于模式匹配的有 窮狀態(tài)自動機。
4. 根據(jù)權利要求1所述的一種基于報文流數(shù)據(jù)的無緩存模 式匹配方法,其特征在于初始化起始狀態(tài)指把當前匹配狀態(tài)樹的位 置,設置為起始位置,使數(shù)據(jù)的匹配可以從匹配狀態(tài)樹的起點開始。
5. 根據(jù)權利要求1所述的一種基于報文流數(shù)據(jù)的無緩存模 式匹配方法,其特征在于讀取待匹配數(shù)據(jù),指網(wǎng)絡報文數(shù)據(jù)的讀取, 以便進行模式匹配。
6. 根據(jù)權利要求1所述的一種基于報文流數(shù)據(jù)的無緩存模 式匹配方法,其特征在于按照當前的匹配狀態(tài),調(diào)用匹配程序進行 模式匹配,就是說,匹配程序至少需要2個入口參數(shù)當前匹配狀態(tài)、 被匹配數(shù)據(jù);匹配狀態(tài)指匹配狀態(tài)樹的位置,也就是用于模式匹配的 有窮狀態(tài)自動機的節(jié)點序號。
7. 根據(jù)權利要求1所述的一種基于報文流數(shù)據(jù)的無緩存模 式匹配方法,其特征在于當數(shù)據(jù)匹配完成后,無論匹配結果如何, 記錄當前的匹配狀態(tài),便于后續(xù)的數(shù)據(jù)匹配。
8. 根據(jù)權利要求1所述的一種基于報文流數(shù)據(jù)的無緩存模 式匹配方法,其特征在于如果匹配成功,上報匹配結果數(shù)據(jù);否則 轉(zhuǎn)至權利要求l的第2) a)步驟循環(huán)進行。
全文摘要
本發(fā)明涉及一種基于報文流數(shù)據(jù)的無緩存模式匹配方法,該方法在處理多報文數(shù)據(jù)時,無需進行報文緩存,即可完成跨報文的模式匹配工作。該方法包含如下步驟讀取匹配模式;把匹配模式轉(zhuǎn)換為匹配狀態(tài)樹;初始化匹配起始狀態(tài);讀取待匹配的數(shù)據(jù);按照當前的匹配狀態(tài),調(diào)用匹配程序進行模式匹配;記錄當前的匹配狀態(tài);如果匹配成功,上報匹配結果;否則轉(zhuǎn)讀取待匹配的數(shù)據(jù)步驟繼續(xù)。本發(fā)明具有的優(yōu)點能夠在不緩存報文數(shù)據(jù)的情況下,完成網(wǎng)絡數(shù)據(jù)的完整數(shù)據(jù)模式匹配,從而大大節(jié)省由于數(shù)據(jù)緩存而引起的時間、空間消耗,提高整體性能。
文檔編號H04L29/06GK101562604SQ20081010432
公開日2009年10月21日 申請日期2008年4月17日 優(yōu)先權日2008年4月17日
發(fā)明者虹 王, 許金鵬, 趙東賓, 煒 鄧 申請人:北京啟明星辰信息技術股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
<dfn id="eyge7"><big id="eyge7"></big></dfn>
    • <form id="eyge7"><meter id="eyge7"><s id="eyge7"></s></meter></form>