CN101562604B - 一种基于报文流数据的无缓存模式匹配方法 - Google Patents

一种基于报文流数据的无缓存模式匹配方法 Download PDF

Info

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
Application number
CN2008101043210A
Other languages
English (en)
Other versions
CN101562604A (zh
Inventor
许金鹏
邓炜
赵东宾
王虹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Venus Information Technology Co Ltd
Original Assignee
Beijing Venus Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Venus Information Technology Co Ltd filed Critical Beijing Venus Information Technology Co Ltd
Priority to CN2008101043210A priority Critical patent/CN101562604B/zh
Publication of CN101562604A publication Critical patent/CN101562604A/zh
Application granted granted Critical
Publication of CN101562604B publication Critical patent/CN101562604B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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所述的一种基于报文流数据的无缓存模式匹配方法,其特征在于:当数据匹配完成后,无论匹配结果如何,记录当前的匹配状态,便于后续的数据匹配。
CN2008101043210A 2008-04-17 2008-04-17 一种基于报文流数据的无缓存模式匹配方法 Expired - Fee Related CN101562604B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1450757A (zh) * 2002-10-11 2003-10-22 北京启明星辰信息技术有限公司 网络入侵监测的方法和系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
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