CN101562604B - 一种基于报文流数据的无缓存模式匹配方法 - Google Patents
一种基于报文流数据的无缓存模式匹配方法 Download PDFInfo
- Publication number
- CN101562604B CN101562604B CN2008101043210A CN200810104321A CN101562604B CN 101562604 B CN101562604 B CN 101562604B CN 2008101043210 A CN2008101043210 A CN 2008101043210A CN 200810104321 A CN200810104321 A CN 200810104321A CN 101562604 B CN101562604 B CN 101562604B
- Authority
- CN
- China
- Prior art keywords
- matching
- data
- pattern
- message
- matched
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于报文流数据的无缓存模式匹配方法,该方法在处理多报文数据时,无需进行报文缓存,即可完成跨报文的模式匹配工作。该方法包含如下步骤:读取匹配模式;把匹配模式转换为匹配状态树;初始化匹配起始状态;读取待匹配的数据;按照当前的匹配状态,调用匹配程序进行模式匹配;记录当前的匹配状态;如果匹配成功,上报匹配结果;否则转读取待匹配的数据步骤继续。本发明具有的优点:能够在不缓存报文数据的情况下,完成网络数据的完整数据模式匹配,从而大大节省由于数据缓存而引起的时间、空间消耗,提高整体性能。
Description
技术领域
本发明涉及一种基于报文流数据的无缓存模式匹配方法,该方法可以广泛的用于对网络报文进行监测的如网络入侵检测系统、审计系统等安全系统中。
背景技术
作为任何一种监测系统,都希望能够对网络上传输的文件,进行内容检查,以便发现其中包含的蠕虫、恶意代码等内容。但由于完整的文件在网上传输中,被分为一个个一定长度的报文,夹杂在其他各类报文中,因此,为防止一个匹配模式跨越2个、或者多个网络报文,必须缓存至少2个报文(缓存数据的长度,至少等于匹配模式的长度),再进行报文重组,然后再进行模式匹配,匹配后丢弃无用的数据(匹配模式数据长度以外的数据)。这样,可以保障在连续进行模式匹配过程中,不会因为数据的断续而出现漏报。但也由于报文缓存,造成一定的时间、空间消耗,无法满足系统性能的需求。
本方法提出一种基于报文流数据的无缓存模式匹配方法,采用匹配状态树进行模式匹配,通过记忆每个报文匹配完成后的匹配状态树的位置,而不用缓存报文数据,就能够保障数据模式匹配过程中没有漏报。
发明内容
本发明的目的是为了提高报文流数据的模式匹配速度,它按照匹配模式建立匹配状态树,通过记录每个报文匹配后状态树的位置,并按照该位置进行下次的模式匹配,完成无报文缓冲情况下,网络数据的完整匹配,并达到节省数据缓冲的时间、空间的目的。
一种基于报文流数据的无缓存模式匹配方法,包含下面二个大步骤:
1)初始化过程,分为下面几个子步骤:
a)读取匹配模式;
b)把匹配模式转换为匹配状态树;
c)初始化匹配起始状态;
2)实时数据匹配,分为下面几个子步骤:
d)读取待匹配数据;
e)按照当前的匹配状态,调用匹配程序进行模式匹配;
f)记录当前的匹配状态;
g)如果匹配成功,上报匹配结果数据;否则转到读取待匹配数据步骤。
本发明具有的优点:能够在不缓存报文数据的情况下,完成网络数据的完整数据模式匹配,从而大大节省由于数据缓存而引起的时间、空间消耗,提高整体性能。
在网络数据监测系统中,待匹配数据是按照报文一个个到达的,如匹配模式为“abcd”,传输的数据中有“abcdefg”,但在前、后2个报文中分别传输:第一个报文传输abc、第二个报文传输defg。为了解决跨报文模式匹配的问题,目前的通用方法是建立一个足够大的缓冲区,保存连续的网络报文数据。系统在接收到一个报文后,先把接收的数据与已经缓存的数据进行拼接,组成一个连续的完整数据,再进行模式匹配。对上面2个报文,先把后面的数据“defg”拷贝到已经在缓冲区的数据“abc”之后,然后再进行模式匹配;之后,如果缓冲区过长,还要对缓冲区压缩,丢弃前面的一段无用的数据,以便保障缓冲区的长度不超过极限值。这里的缓冲过程,既消耗匹配时间、也消耗内存空间。采用本方法后,由于无需进行报文拼接、缓存,直接按照以前的匹配状态进行匹配,在不影响匹配精确度的情况下,大大提高了匹配速度、减少的内存空间。
附图说明
图1是本发明的系统处理流程图;
图2是网络数据传输中,由于数据按照网络报文传输而引起的数据碎片示意图;
图3是匹配状态树的生成和数据匹配过程示意图。
下面结合附图和具体实施例来详细描述本发明。
具体实施方式
实施例1:如图1所示,描述了本系统的处理步骤。分为系统初始化和实时数据匹配两个部分;有如下七个步骤:
读取模式数据步骤:从配置文件中,读取需要匹配的模式数据。示例中为:defghi;
按照模式数据生成匹配状态树步骤:把读取的模式数据,转换为实时匹配中使用的匹配状态树。
初始化匹配起始状态步骤:完成匹配状态树起始位置的设置;
读取读取:从外部读取匹配数据;
调用匹配程序步骤:调用匹配程序,按照当前匹配状态树的位置,进行数据匹配工作,并返回当前报文匹配结束时匹配状态树的位置;
记录当前匹配状态树位置步骤:记录报文匹配结束后匹配状态树的位置,以备后续报文匹配时使用;
上报匹配结果步骤:如果匹配成功,上报匹配结果;完成结果处理后,继续循环处理后续数据。
图2描述了一个数据文件在网络传输过程中,被打碎为多个报文的情况。一个完整的文件,包含字符串“abcdefghijk”,但在传输过程中,分为多个报文传输,该字符串被分割为分别包含“abcdef”和“ghijk”两部分。当对应的匹配模式为“defghi”时,按照一般匹配方法,2个报文都无法获得成功的匹配;如果防止漏报,必须保存前一个报文,在匹配前把2个报文进行拼接,组成一个连续数据再进行匹配。
图3描述了按照模式“defghi”生成的匹配状态树,以及基于状态的匹配过程。该模式的匹配状态树共7个节点,分别为节点1至节点7,其中第七个节点是成功匹配节点;每个节点都根据当前的匹配数据,进入下一个节点,如节点2,当当前字符为“e”时,进入节点3,当前字符为“d”时,进入节点2,其他字符进入节点1。系统匹配的起始状态是节点1。
系统在处理第n个报文时,无论处于任何状态,都回由于数据“abc”而进入状态节点1;在处理“def”后,进入节点4;此时本报文匹配结束,系统记录下当前状态位置4,可以进行其他工作。系统以后再接收到报文n+1后,如果从状态节点1匹配,则无法获得成功的结果。此时,应该从前一个报文结束匹配的位置:已经记录的状态节点4继续匹配,连续通过状态节点5、6、7,获得一次成功匹配。其他任何报文的匹配,只要不包含完整的模式数据,都在节点1-6之间循环。
实施例2:
一种基于报文流数据的无缓存模式匹配方法,该方法包含如下步骤:
1、读取匹配模式;
2、把匹配模式转换为匹配状态树;
3、初始化匹配起始状态;
4、读取待匹配的数据;
5、按照当前的匹配状态,调用匹配程序进行模式匹配;
6、记录当前的匹配状态;
7、如果匹配成功,上报匹配结果;否则转步骤4继续。
匹配模式指一个明文字符串,当一个或者多个报文中包含该字符串时,将产生报警信息;这里的多个报文,指一个匹配模式可能跨越一个、或者多个报文;模式匹配指在待匹配数据中查找匹配模式的过程。
按照匹配模式生成用于模式匹配的匹配状态树;这里的匹配状态树指按照匹配模式生成的、用于模式匹配的有穷状态自动机。
初始化起始状态指把当前匹配状态树的位置,设置为起始位置,使数据的匹配可以从匹配状态树的起点开始。
读取待匹配数据,指网络报文数据的读取,以便进行模式匹配。
按照当前的匹配状态(匹配状态树的位置),调用匹配程序进行模式匹配,就是说,匹配程序至少需要2个入口参数:当前匹配状态、被匹配数据;匹配状态指匹配状态树的位置,也就是用于模式匹配的有穷状态自动机的节点序号。
当数据匹配完成后,无论匹配结果如何,记录当前的匹配完成状态(匹配状态树的位置),便于后续的数据匹配。
如果匹配成功,上报匹配结果数据;否则转至第上述第4步骤“读取待匹配的数据”,循环进行。
Claims (5)
1.一种基于报文流数据的无缓存模式匹配方法,其特征在于:包含下面二个大步骤:
1)初始化过程,分为下面几个子步骤:
a)读取匹配模式;
b)把匹配模式转换为匹配状态树;
c)初始化匹配起始状态;
2)实时数据匹配,分为下面几个子步骤:
d)读取待匹配数据;
e)按照当前的匹配状态,调用匹配程序进行模式匹配;
f)记录当前的匹配状态;
g)如果匹配成功,上报匹配结果数据;否则转到读取待匹配数据步骤;
匹配模式指一个明文字符串,当一个或者多个报文中包含该字符串时,将产生报警信息;这里的多个报文,指一个匹配模式可能跨越一个、或者多个报文;模式匹配指在待匹配数据中查找匹配模式的过程;
按照匹配模式生成用于模式匹配的匹配状态树;这里的匹配状态树指按照匹配模式生成的、用于模式匹配的有穷状态自动机。
2.根据权利要求1所述的一种基于报文流数据的无缓存模式匹配方法,其特征在于:初始化起始状态指把当前匹配状态树的位置,设置为起始位置,使数据的匹配可以从匹配状态树的起点开始。
3.根据权利要求1所述的一种基于报文流数据的无缓存模式匹配方法,其特征在于:读取待匹配数据,指网络报文数据的读取,以便进行模式匹配。
4.根据权利要求1所述的一种基于报文流数据的无缓存模式匹配方法,其特征在于:按照当前的匹配状态,调用匹配程序进行模式匹配,就是说,匹配程序至少需要2个入口参数:当前匹配状态、被匹配数据;匹配状态指匹配状态树的位置,也就是用于模式匹配的有穷状态自动机的节点序号。
5.根据权利要求1所述的一种基于报文流数据的无缓存模式匹配方法,其特征在于:当数据匹配完成后,无论匹配结果如何,记录当前的匹配状态,便于后续的数据匹配。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101043210A CN101562604B (zh) | 2008-04-17 | 2008-04-17 | 一种基于报文流数据的无缓存模式匹配方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101043210A CN101562604B (zh) | 2008-04-17 | 2008-04-17 | 一种基于报文流数据的无缓存模式匹配方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101562604A CN101562604A (zh) | 2009-10-21 |
CN101562604B true CN101562604B (zh) | 2012-08-08 |
Family
ID=41221224
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101043210A Expired - Fee Related CN101562604B (zh) | 2008-04-17 | 2008-04-17 | 一种基于报文流数据的无缓存模式匹配方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101562604B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103023883A (zh) * | 2012-11-26 | 2013-04-03 | 清华大学 | 基于ac自动机和后缀树的字符串匹配方法 |
CN113765877B (zh) * | 2021-02-08 | 2024-09-24 | 北京沃东天骏信息技术有限公司 | 会话识别方法、装置、电子设备和计算机可读介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1450757A (zh) * | 2002-10-11 | 2003-10-22 | 北京启明星辰信息技术有限公司 | 网络入侵监测的方法和系统 |
-
2008
- 2008-04-17 CN CN2008101043210A patent/CN101562604B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1450757A (zh) * | 2002-10-11 | 2003-10-22 | 北京启明星辰信息技术有限公司 | 网络入侵监测的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN101562604A (zh) | 2009-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11163850B2 (en) | System, method and computer program product for data transfer management | |
CN110096541B (zh) | 一种数据库间的数据交换方法及装置 | |
CN110851680B (zh) | 网络爬虫识别方法和装置 | |
CN112817602A (zh) | 一种json格式数据发送、接收方法、设备及介质 | |
CN101562604B (zh) | 一种基于报文流数据的无缓存模式匹配方法 | |
CN1322444C (zh) | 传输和处理命令与数据的方法 | |
CN110390082A (zh) | 一种通信矩阵对比方法及系统 | |
CN108133026B (zh) | 一种多数据的处理方法、系统及存储介质 | |
CN112969198A (zh) | 数据传输方法、终端及存储介质 | |
WO2021179211A1 (zh) | 确定数据完整性的方法、装置、电子设备及存储介质 | |
CN115129509B (zh) | 一种数据传输方法、装置、介质 | |
CN108052294B (zh) | 一种分布式存储系统的修改写方法和修改写系统 | |
CN107426270A (zh) | 一种车辆远程监控终端的数据断点续传方法 | |
CN113746720B (zh) | 消息处理方法和系统、服务器 | |
CN111211966B (zh) | 一种用于存储聊天工具中传输文件的方法及系统 | |
CN110865887B (zh) | 直接输出短消息保存输出方法 | |
CN114385423A (zh) | 数据持久化处理方法、系统及计算机设备 | |
CN111177751B (zh) | 一种pdf文件的加密方法、设备及可读介质 | |
CN102891732A (zh) | 数据发送方法和装置以及数据接收方法和装置 | |
US20100263048A1 (en) | Malware prevention method and system in a peer-to-peer environment | |
CN110990313A (zh) | 一种i3c总线处理时钟拉伸的方法、设备以及存储介质 | |
CN111680474A (zh) | 文件乱码修复方法及装置 | |
CN102262526B (zh) | 有序树表分段遍历方法及系统 | |
CN105653950A (zh) | 一种基于多模式的恶意代码匹配方法及装置 | |
CN110677251B (zh) | 一种信息处理方法、装置、介质和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120808 Termination date: 20180417 |