CN1980240A - 数据流的模式匹配方法及装置 - Google Patents
数据流的模式匹配方法及装置 Download PDFInfo
- Publication number
- CN1980240A CN1980240A CN 200610161982 CN200610161982A CN1980240A CN 1980240 A CN1980240 A CN 1980240A CN 200610161982 CN200610161982 CN 200610161982 CN 200610161982 A CN200610161982 A CN 200610161982A CN 1980240 A CN1980240 A CN 1980240A
- Authority
- CN
- China
- Prior art keywords
- state machine
- finite state
- module
- segmented message
- pattern matching
- 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.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种数据流的模式匹配方法,包括:在对收到的数据流的分段报文进行保序后,将该数据流的分段报文依次与预先设定的有限状态机进行模式匹配;其中,在对每一个分段报文进行模式匹配后,根据模式匹配结果对该分段报文执行预设的对应的操作,并保存对该分段报文进行模式匹配后的所述有限状态机的状态,作为所述有限状态机对下一个分段报文进行模式匹配的起始状态。本发明还公开了一种数据流的模式匹配装置。本发明能够完全防范利用数据流分段技术而分散在不同的分段报文中的攻击模式,并且不需要对分段报文进行恢复,从而能够大大减少内存占用和报文转发时延。
Description
技术领域
本发明涉及模式匹配方法及装置,特别涉及一种数据流的模式匹配方法及装置,属于通信领域。
背景技术
模式匹配是一种将收集到的信息与已知的网络入侵和系统误用模式数据库进行比较,从而发现违背安全策略的行为的技术。简单的模式匹配方式如通过字符串匹配来寻找一个简单的条目或指令,复杂的模式匹配方式如利用数学表达式来表示安全状态的变化。
对数据流的净载荷的模式匹配技术在入侵检测系统(Intrusion DetectionSystem,简称IDS)、入侵防御系统(Intrusion Prevention System,简称IPS)、病毒防范(Anti-Virus,简称AV)等领域有着广泛的应用。网络攻击者为了逃避模式匹配,通常利用数据流分段技术将攻击模式分散在不同的报文中。
现有技术中,为了防范这类逃避,通常在数据流的净载荷模式匹配前进行分段报文的保序及恢复,从而将分散到不同报文中的攻击模式整合到一个报文中,其方法主要包括:
1、对单个数据流的所有分段报文进行保序和恢复后,再对报文的净载荷进行模式匹配。这种方法能够防范通过数据流分段而引入的所有对模式匹配的逃避,但也导致了极大的内存占用和报文转发时延。由于数据流一般长度相当大,对IDS这种旁路(指对网络流量通路不产生影响,也称off-line)系统来说,如果采用上述方法会由于对分段报文的恢复操作而极大地占用内存;而对于IPS这种需要将数据流的报文快速转发的在线(指对网络流量通路产生影响,也称in-line)系统来说,如果采用上述方法则会由于对分段报文的恢复操作而造成极大的网络延时。
2、通过引入参数来将时延和流恢复长度控制在一定范围内,使得时延和内存能够承受数据流恢复付出的代价。该方法能够在一定程度上减少时延和内存占用,但是由于对流恢复长度的控制,使得该方法不能完全防范数据流分段技术引入的对模式识别的逃避。
发明内容
本发明的目的是为克服上述现有技术的缺陷,提供一种数据流的模式匹配方法及装置,能够完全防范利用数据流分段技术而分散在不同的分段报文中的攻击模式,并且不需要对分段报文进行恢复,从而能够大大减少内存占用和报文转发时延。
为实现上述发明目的,本发明提供了一种数据流的模式匹配方法,包括:在对收到的数据流的分段报文进行保序后,将该数据流的分段报文依次与预先设定的有限状态机进行模式匹配;其中,在对每一个分段报文进行模式匹配后,根据模式匹配结果对该分段报文执行预设的对应的操作,并保存对该分段报文进行模式匹配后的所述有限状态机的状态,将该状态作为所述有限状态机对下一个分段报文进行模式匹配的起始状态。
在上述技术方案中,通过在对每一个分段报文进行模式匹配后保存有限状态机的状态,并将该状态作为对下一个分段报文进行模式匹配的起始状态,从而能够实现在不执行分段报文的恢复操作的情况下,仍然能够完全防范利用数据流分段技术而分散在不同的分段报文中的攻击模式;因而,在对收到的数据流的分段报文进行保序后,并不需要执行现有技术中的将分段报文组合恢复成完整报文的操作,而是直接将分段报文依次与预设的有限状态机进行模式匹配,从而能够避免由于对分段报文进行恢复而导致的时延,并大大减少了内存占用。
优选地,上述技术方案中,所述对每一个分段报文进行模式匹配可具体包括:将该分段报文的净载荷作为所述有限状态机的驱动,使所述有限状态机进行状态迁移并获得模式匹配结果。进一步地,所述将该分段报文的净载荷作为所述有限状态机的驱动,使所述有限状态机进行状态迁移并获得模式匹配结果可具体包括:依次提取该分段报文的净载荷中所述预设长度的字符串作为所述有限状态机的驱动,使所述有限状态机进行状态迁移,在该分段报文的净载荷提取完毕后,根据所述有限状态机状态迁移过程中所匹配的模式获得模式匹配结果。
优选地,在所述对收到的数据流的分段报文进行保序之前执行预先设定所述有限状态机的操作,具体包括:根据预设算法构建用于对预设的模式进行匹配的有限状态机,并根据预设的模式设定分别用于驱动该有限状态机的各状态间迁移的对应的预设长度的字符串。
进一步地,为了在区分和标识不同的数据流,在预先设定所述有限状态机之后,在所述对收到的数据流的分段报文进行保序之前,还可包括以下操作:预先设置与所构建的有限状态机一一对应的、用于预先标识将要与该有限状态机进行模式匹配的数据流的特征的标识信息。在所述对收到的数据流的分段报文进行保序之后,在所述将该数据流的分段报文依次与预先设定的有限状态机进行模式匹配之前,还包括以下操作:查找获得与该数据流的特征一致的标识信息,根据所获得的标识信息得到与该数据流对应的有限状态机。
在预先设定所述有限状态机之后,在所述对收到的数据流的分段报文进行保序之前,还可包括以下操作:预先设置与所构建的有限状态机对应的、用于预先标识将要与该有限状态机进行模式匹配的数据流的特征的标识信息。当数个数据流同时并行地与所述有限状态机进行模式匹配时,所述保存对该分段报文进行模式匹配后的所述有限状态机的状态,作为所述有限状态机对下一个分段报文进行模式匹配的起始状态可具体包括:对每个数据流分别保存所述有限状态机与该数据流的当前分段报文进行模式匹配后的状态,并在收到下一个分段报文时,查找与该分段报文的特征一致的所述标识信息,根据该标识信息获得该分段报文对应的有限状态机的起始状态。
为了进一步减少时延,所述对收到的数据流的分段报文进行保序可具体包括:缓存收到的数据流的分段报文并进行保序,对在预设的时延内被保序完毕的分段报文继续进行后续的模式匹配处理,并丢弃在预设的时延内未被保序的分段报文。
优选地,所述根据模式匹配结果对该分段报文执行预设的对应的操作可具体包括:如果模式匹配的结果为与预设的模式相匹配,则根据预设的策略执行与该模式对应的操作,如果模式匹配的结果为与预设的模式不匹配,则转发该分段报文。
为实现上述发明目的,本发明还提供了一种数据流的模式匹配装置,包括:保序模块,用于对收到的数据流的分段报文进行保序;有限状态机模块,用于保存预先设定的有限状态机;模式匹配模块,与所述保序模块及有限状态机模块连接,用于将保序后的数据流的分段报文与所述预先设定的有限状态机进行模式匹配;结果处理模块,与所述模式匹配模块连接,用于根据模式匹配的结果对分段报文执行预设的对应的操作;状态保存模块,与所述模式匹配模块连接,用于保存所述模式匹配模块对分段报文进行模式匹配后的有限状态机的状态,并将该状态作为对下一个分段报文进行模式匹配的起始状态。
在上述技术方案中,在模式匹配模块及有限状态机模块对每一个分段报文进行模式匹配后,通过状态保存模块保存有限状态机的状态,并将该状态作为对下一个分段报文进行模式匹配的起始状态,从而能够实现在不执行分段报文的恢复操作的情况下,仍然能够完全防范利用数据流分段技术而分散在不同的分段报文中的攻击模式;因而,在保序模块对收到的数据流的分段报文进行保序后,并不需要执行现有技术中的将分段报文组合恢复成完整报文的操作,而是直接通过模式匹配模块及有限状态机模块将分段报文依次与预设的有限状态机进行模式匹配,从而能够避免由于对分段报文进行恢复而导致的时延,并大大减少了内存占用。
为了对所述有限状态机模块中保存的有限状态机进行灵活地预先设置,上述技术方案中还可包括有限状态机设置模块,与所述有限状态机模块连接,用于根据预设算法构建用于对预设的模式进行匹配的有限状态机并根据预设的模式设定分别用于驱动该有限状态机的各状态间迁移的对应的预设长度的字符串,然后保存在所述有限状态机模块中。
为了对同时收到的多个数据流进行区分和标识,上述技术方案中还可包括标识信息设置模块,与所述有限状态机模块连接,用于预先设置与所构建的有限状态机一一对应的、用于预先标识将要与该有限状态机进行模式匹配的数据流的特征的标识信息,并保存在所述有限状态机模块中。所述模式匹配模块可为用于对保序后的数据流查找获得与该数据流的特征一致的标识信息,根据所获得的标识信息得到与该数据流对应的有限状态机,将该数据流的分段报文的净载荷与所得到的有限状态机进行模式匹配。为了对同时收到的多个数据流进行并行处理,所述状态保存模块还可与所述有限状态机模块连接,用于对每个数据流分别保存对应的有限状态机与该数据流的当前分段报文进行模式匹配后的状态,并在收到下一个分段报文时,所述模式匹配模块查找所述有限状态机模块中保存的与该分段报文的特征一致的所述标识信息,根据该标识信息获得该分段报文对应的有限状态机的起始状态。
优选地,所述模式匹配模块可包括:载荷提取模块,与所述保序模块连接,用于对保序后的分段报文,依次提取该分段报文的净载荷中所述预设长度的字符串;状态迁移模块,与所述载荷提取模块、有限状态机模块、状态保存模块以及结果处理模块连接,用于将所提取的字符串作为所述有限状态机的驱动,使所述有限状态机进行状态迁移,在该分段报文的净载荷提取完毕后,根据所述有限状态机状态迁移过程中所匹配的模式获得模式匹配结果输出给所述结果处理模块,并将有限状态机的状态保存到状态保存模块中。
为了进一步减少时延,所述保序模块可包括:定时器模块,用于设置和保存预设的时延;缓存模块,用于缓存收到的数据流的分段报文;处理模块,与所述缓存模块、定时器模块及模式匹配模块连接,用于在预设的时延内对缓存的分段报文进行保序,并丢弃在预设的时延内未被保序的分段报文。
优选地,所述结果处理模块可包括:判断模块,与所述模式匹配模块连接,用于判断模式匹配的结果是否为与预设的模式匹配;转发模块,与所述判断模块连接,用于在模式匹配的结果为与预设的模式不匹配时转发分段报文;模式处理模块,与所述判断模块连接,用于在模式匹配的结果为与预设的模式匹配时,按照预设的策略,对分段报文执行与所匹配的模式对应的操作。
综上所述,本发明通过在对每一个分段报文进行模式匹配后保存有限状态机的状态,并将该状态作为对下一个分段报文进行模式匹配的起始状态;并在对收到的数据流的分段报文进行保序后,并不执行现有技术中的将分段报文组合恢复成完整报文的操作,而是直接将分段报文依次与预设的有限状态机进行模式匹配,从而能够实现在不执行分段报文的恢复操作的情况下,仍然能够完全防范利用数据流分段技术而分散在不同的分段报文中的攻击模式,同时避免由于对分段报文进行恢复而导致的报文转发时延,并大大减少了内存占用的有益技术效果。
附图说明
图1为本发明数据流的模式匹配方法实施例一的流程示意图;
图2为本发明数据流的模式匹配方法实施例三的流程示意图;
图3为本发明数据流的模式匹配方法实施例四的流程示意图;
图4为本发明数据流的模式匹配方法实施例五的流程示意图;
图5为本发明数据流的模式匹配方法实施例六的流程示意图;
图6为根据Aho-Corasick算法构建的有限状态机的示意图;
图7为使用有限状态机对净载荷为hxhers的分段报文进行模式匹配的状态迁移过程示意图;
图8为本发明数据流的模式匹配方法实施例七的流程示意图;
图9为本发明数据流的模式匹配方法实施例八的流程示意图;
图10为本发明数据流的模式匹配方法实施例九的流程示意图;
图11为本发明数据流的模式匹配装置实施例一的结构示意图;
图12为本发明数据流的模式匹配装置实施例二的结构示意图;
图13为本发明数据流的模式匹配装置实施例三的结构示意图;
图14为本发明数据流的模式匹配装置实施例四的结构示意图;
图15为本发明数据流的模式匹配装置实施例五的结构示意图;
图16为本发明数据流的模式匹配装置实施例六的结构示意图;
图17为本发明数据流的模式匹配装置实施例七的结构示意图。
具体实施方式
下面结合附图和实施例,对本发明的技术方案做进一步的详细描述。
本发明的基本构思为:针对现有技术中为了完全防范利用数据流分段技术而分散在不同的分段报文中的攻击模式,需要对分段报文进行保序和恢复,从而导致极大的报文转发时延和内存占用;而如果对分段报文的保序和恢复进行控制,虽然能够在一定程度上减少时延和内存占用,但却不能完全防范分散在不同的分段报文中的攻击模式的缺陷,提供一种数据流的模式匹配方法及装置,一方面在对收到的数据流的分段报文进行保序后,并不执行现有技术中的将分段报文组合恢复成完整报文的操作,而是直接将分段报文依次与预设的有限状态机进行模式匹配;另一方面在对每一个分段报文进行模式匹配后保存有限状态机的状态,并将该状态作为对下一个分段报文进行模式匹配的起始状态;从而能够实现在不执行分段报文的恢复操作的情况下,仍然能够完全防范利用数据流分段技术而分散在不同的分段报文中的攻击模式,同时避免由于对分段报文进行恢复而导致的报文转发时延,并大大减少了内存占用。
基于上述发明构思,本发明提供了一种数据流的模式匹配方法,首先对收到的数据流的分段报文进行保序,然后将保序后的分段报文依次与预先设定的有限状态机进行模式匹配;在上述将保序后的分段报文依次与预设的有限状态机进行模式匹配的过程中,对每一个分段报文进行模式匹配后,根据模式匹配结果对该分段报文执行预设的对应的操作,并保存对该分段报文进行模式匹配后的有限状态机的状态,将该状态作为所述有限状态机对下一个分段报文进行模式匹配的起始状态。
参见图1所示的实施例一的流程示意图,首先在步骤100中,预先设定用于对收到的数据流的分段报文进行模式匹配的有限状态机,并在收到数据流的分段报文后,执行以下步骤:在步骤101中,对收到的数据流的分段报文进行保序;然后在步骤102中,按照保序后的顺序取一个分段报文与预设的有限状态机进行模式匹配;继而在步骤103中,根据模式匹配的结果执行预设的对应的操作(例如如果未匹配上则转发该分段报文,如果匹配上则丢弃该分段报文等预设操作),并保存对该分段报文进行模式匹配后的有限状态机的状态,将该状态作为所述有限状态机对下一个分段报文进行模式匹配的起始状态;然后在步骤104中,判断保序完毕的报文中是否还有未进行模式匹配的报文,是则执行步骤102即取下一个分段报文并与预设的有限状态机进行模式匹配,否则结束。
在本实施例一中,预先设定有限状态机,并对收到的数据流的分段报文进行保序操作,然后将保序后的分段报文依次进行模式匹配,并保存每个分段报文模式匹配后的有限状态机的状态,作为对下一个分段报文进行模式匹配的有限状态机的起始状态。通过上述操作,在对分段报文进行保序和模式匹配后,能够立即执行相应的处理操作,如报文转发或丢弃等操作,而无需等待对分段报文进行重组和恢复后才进行模式匹配及相应处理操作,大大减少了时延和占用的内存。并且通过保存本次模式匹配的终状态,作为对下个分段报文进行模式匹配的起始状态,从而不需要对分段报文进行重组就能够通过有限状态机的状态的保存和接续来实现模式匹配的连续性,因此能够完全防范分散到不同的分段报文中的攻击模式。
在本发明数据流的模式匹配方法的实施例二中,对上述实施例一中所述的预先设定的有限状态机,进一步提供了对所述有限状态机的状态及状态迁移关系进行预先设定的具体方式,即步骤100可具体包括:根据预设算法构建用于对预设的模式进行匹配的有限状态机,并根据预设的模式设定分别用于驱动该有限状态机的各状态间迁移的对应的预设长度的字符串。
为了在收到不同的数据流时,对不同的数据流进行区分和标识,参见图3所示的本发明数据流的模式匹配方法的实施例三的流程示意图,与上述实施例二的区别在于,在步骤100与步骤101之间还包括步骤100a,即预先设置与所构建的有限状态机一一对应的、用于预先标识将要与该有限状态机进行模式匹配的数据流的分段报文的特征的标识信息。
本实施例三通过增设用于标识有限状态机对应的数据流的标识信息,使得后续在收到不同的数据流时,能够根据该标识信息选择分别对应的有限状态机进行模式匹配。优选地,如图4所示的实施例四的流程示意图,与上述实施例三的区别在于,在步骤101与步骤102之间还包括步骤101b,即在对收到的数据流的分段报文进行保序之后,查找获得与该数据流的特征一致的标识信息,根据所获得的标识信息得到与该数据流对应的有限状态机。
上述实施例一至四中,提供了利用有限状态机对收到的数据流的分段报文进行模式匹配的步骤,有限状态机在模式匹配领域中有广泛的应用,并可根据不同的算法来构建和进行模式匹配,在上述实施例二中提供了有限状态机的构建方式的示例,而在图5所示的实施例五的流程示意图中进一步提供了利用有限状态机进行模式匹配的流程示例。
参见图5,与实施例二的区别在于具体提供了步骤102即模式匹配的流程,包括:在步骤102a中,按照保序后的顺序取一个分段报文,依次提取该分段报文的净载荷中所述预设长度的字符串,并依次作为对应的预设的有限状态机的驱动,使该有限状态机进行状态迁移;在步骤102b中,在该分段报文的净载荷提取完毕后,根据所述有限状态机的状态迁移过程中所匹配的模式获得模式匹配结果。
优选地,如图6所示的实施例六的流程示意图所示,与实施例二的区别在于具体提供了步骤102即模式匹配的流程,包括:在步骤102a1中,按照保序后的顺序取一个分段报文,依次提取该分段报文的净载荷中所述预设长度为1个字符的字符串(即依次提取该分段报文的净载荷中的每个字符),并依次作为对应的预设的有限状态机的驱动,使该有限状态机进行状态迁移;在步骤102b1中,在该分段报文的净载荷中的全部字符提取完毕后,根据所述有限状态机的状态迁移过程中所匹配的模式获得模式匹配结果。
下面以Aho-Corasick算法为例说明有限状态机的构建和模式匹配的过程。
如图7所示,为根据Aho-Corasick算法构建的有限状态机的示意图,该有限状态机用于对模式(即需识别的分段报文的净载荷中包括的字符串):he、she、his、hers进行匹配和识别。其中,状态0为初始状态,状态1、3、4、6、8为中间状态,状态2、5、7、9为终状态。分段报文的净载荷在模式匹配时作为有限状态机的驱动,每输入预设长度的净载荷字符串(在本实施例中长度为一个字符),有限状态机的状态随之进行迁移,当状态迁移到有限状态机的终状态时,表明模式匹配。
图7中箭头指示状态迁移方向,箭头上的字符为该箭头指示的状态迁移的驱动字符。例如状态0、1之间的箭头上的字符为h,表示在状态0时,输入驱动字符h,状态0将迁移至状态1。
例如:模式he经历的状态为:状态0-->状态1-->状态2;模式she经历的状态为:状态0-->状态3-->状态4-->状态5;模式his经历的状态为:状态0-->状态1-->状态6-->状态7;模式hers经历的状态为:状态0-->状态1-->状态2-->状态8-->状态9。
图8为使用上述有限状态机对净载荷为hxhers的分段报文进行模式匹配的状态迁移过程示意图。起始状态为状态0,模式匹配中有限状态机的状态迁移过程为:状态0(输入h)-->状态1(输入x)-->状态0(输入h)-->状态1(输入e)-->状态2(输入r)-->状态8(输入s)-->状态9,其中状态2、9为终状态,表示模式he、hers在该有限状态机与净载荷hxhers的模式匹配中匹配成功。
如果净载荷hxhers被攻击者分散到两个分段报文中,在接收到这两个分段报文并经过保序后,首个分段报文的净载荷是hxh,第二个分段报文的净载荷是ers,则在对首个分段报文进行模式匹配的过程中,起始状态为状态0,有限状态机的状态迁移过程为:状态0(输入h)-->状态1(输入x)-->状态0(输入h)-->状态1。在对首个分段报文的模式匹配结束后,记录最后一个字符h输入后迁移到的状态1,对该首个分段报文可执行预设的对应操作。然后在对第二个分段报文进行模式匹配的过程中,将上次匹配所记录的状态即状态1作为起始状态,第二个分段报文净载荷为ers,起始状态为状态1,有限状态机的状态迁移过程为:状态1(输入e)-->状态2(输入r)-->状态8(输入s)-->状态9。其中状态2、9为终状态,表示模式he、hers在净载荷hxhers中匹配成功。
由上述分析可知,通过本发明提供的数据流的模式匹配方法,保存本次模式匹配的终状态,作为对下个分段报文进行模式匹配的起始状态,从而对分散到不同的分段报文中的模式的匹配结果与对在同一个分段报文中的模式的匹配结果完全一致,没有漏报,而且不需要对分段报文进行重组和恢复。
反之,如果不采用本发明提供的数据流的模式匹配方法,即不记录上述首个分段报文的最后一个字符h输入时有限状态机迁移到的状态1,则对于上述净载荷为ers的第二个分段报文,起始状态为状态0,有限状态机的状态迁移过程为:状态0(输入e)-->状态0(输入r)-->状态0(输入s)-->状态0。状态0为有限状态机的初始状态,模式没有匹配成功。由此可见,在对数据流的分段报文不进行重组和恢复的情况下,如果不采用本发明提供的数据流的模式匹配方法,则对分散到不同分段报文中的攻击模式的模式匹配的结果会导致漏报。
在具体应用环境中,如果对时延性能参数要求较高,则为了进一步地减少时延,可在上述实施例的基础上进一步对数据流的分段报文的保序操作进行时延控制。如图9所示的实施例七的流程示意图,与实施例1的区别在于,步骤101可具体为步骤101a,即所述对收到的数据流的分段报文进行保序可具体包括:缓存收到的数据流的分段报文并进行保序,对在预设的时延内被保序完毕的分段报文继续进行后续的模式匹配处理,并丢弃在预设的时延内未被保序的分段报文。通过上述操作,对保序的时延进行了控制,能够进一步减少时延和内存占用。
在图10所示的本发明数据流的模式匹配方法的实施例八中,进一步提供了对模式匹配完毕后的分段报文进行处理的具体操作,即步骤103可具体为步骤103a和103b,在步骤103a中,如果模式匹配的结果为与预设的模式相匹配,则根据预设的策略执行与该模式对应的操作,如果模式匹配的结果为与预设的模式不匹配,则转发该分段报文;然后在步骤103b中,保存对该分段报文进行模式匹配后的有限状态机的状态,将该状态作为所述有限状态机对下一个分段报文进行模式匹配的起始状态。
进一步地,参见图11所示的实施例九的流程示意图,当数个数据流同时并行地与所述有限状态机进行模式匹配时,步骤103可具体包括步骤103a和步骤103b1,在步骤103a中,如果模式匹配的结果为与预设的模式相匹配,则根据预设的策略执行与该模式对应的操作,如果模式匹配的结果为与预设的模式不匹配,则转发该分段报文;在步骤103b1中,对每个数据流分别保存所述有限状态机与该数据流的当前分段报文进行模式匹配后的状态,并在收到下一个分段报文时,查找与该分段报文的特征一致的所述标识信息,根据该标识信息获得该分段报文对应的有限状态机的起始状态。本实施例九中,在数个数据流同时并行地与同一个有限状态机进行模式匹配时,利用所述标识信息来标识不同的数据流所对应的上次模式匹配所保存的状态,从而不仅能够支持多个数据流与多个有限状态机的模式匹配,还能够支持多个数据流与一个有限状态机的模式匹配。
基于上述发明构思,本发明还提供了一种数据流的模式匹配装置,参见图12所示的实施例一的结构示意图,包括:保序模块1,用于对收到的数据流的分段报文进行保序;有限状态机模块2,用于保存预先设定的有限状态机;模式匹配模块3,与保序模块1及有限状态机模块2连接,用于将保序后的数据流的分段报文与预先设定的有限状态机进行模式匹配;结果处理模块4,与模式匹配模块3连接,用于根据模式匹配的结果对分段报文执行预设的对应的操作;状态保存模块5,与模式匹配模块3连接,用于保存模式匹配模块3对分段报文进行模式匹配后的有限状态机的状态,并将该状态作为对下一个分段报文进行模式匹配的起始状态。
本实施例一中,在模式匹配模块3及有限状态机模块2对每一个分段报文进行模式匹配后,通过状态保存模块5保存有限状态机的状态,并将该状态作为对下一个分段报文进行模式匹配的起始状态,从而能够实现在不执行分段报文的恢复操作的情况下,仍然能够完全防范利用数据流分段技术而分散在不同的分段报文中的攻击模式;因而,在保序模块1对收到的数据流的分段报文进行保序后,并不需要执行现有技术中的将分段报文组合恢复成完整报文的操作,而是直接通过模式匹配模块3及有限状态机模块2将分段报文依次与预设的有限状态机进行模式匹配,从而能够避免由于对分段报文进行恢复而导致的时延,并大大减少了内存占用。
在本发明数据流的模式匹配装置的实施例二中,如图13所示,进一步提供了有限状态机设置模块7,与有限状态机模块2连接,用于根据预设算法构建用于对预设的模式进行匹配的有限状态机并根据预设的模式设定分别用于驱动该有限状态机的各状态间迁移的对应的预设长度的字符串,然后保存在有限状态机模块2中。通过增设的有限状态机设置模块,能够有效地对所述有限状态机进行灵活地预先设置。
在具体应用环境中,有可能收到多个数据流的分段报文,需要分别与其对应的多个有限状态机进行模式匹配,因此在本发明数据流的模式匹配装置的实施例三中,如图14所示,进一步提供了标识信息设置模块6,与有限状态机模块2连接,用于预先设置与所构建的有限状态机一一对应的、用于预先标识将要与该有限状态机进行模式匹配的数据流的特征的标识信息,并保存在有限状态机模块2中。通过增设标识信息设置模块6,将数据流与其对应的有限状态机相关联,使得在收到数据流时能根据数据流的特征找到其对应的标识信息,进而根据该标识信息找到其对应的有限状态机。因此,模式匹配模块3可为用于对保序后的数据流查找获得与该数据流的特征一致的标识信息,根据所获得的标识信息得到与该数据流对应的有限状态机,将该数据流的分段报文的净载荷与所得到的有限状态机进行模式匹配。
在本发明数据流的模式匹配装置的实施例四中,如图15所示,模式匹配模块3包括:载荷提取模块31,与保序模块1及状态迁移模块32连接,用于对保序后的分段报文,依次提取该分段报文的净载荷中所述预设长度的字符串;状态迁移模块32,与载荷提取模块31、有限状态机模块2、状态保存模块5以及结果处理模块4连接,用于将载荷提取模块31所提取的字符串作为所述有限状态机的驱动,使所述有限状态机进行状态迁移,在该分段报文的净载荷提取完毕后,根据所述有限状态机状态迁移过程中所匹配的模式,获得模式匹配结果输出给结果处理模块4,并将有限状态机的状态保存到状态保存模块5中。
优选地,当所述预先设定长度的字符串的长度为一个字符时,载荷提取模块31可为用于对保序后的分段报文,依次提取该分段报文的净载荷中长度为1个字符的字符串的载荷提取模块;状态迁移模块32可为用于依次提取该分段报文的净载荷中的每个字符,逐一地作为所述有限状态机的驱动,使所述有限状态机进行状态迁移,在该分段报文的净载荷中的全部字符提取完毕后根据所述有限状态机状态迁移过程中所匹配的模式获得模式匹配结果的状态迁移模块。
在具体应用环境中,如果对时延性能参数要求较高,则为了进一步地减少时延,可在上述实施例的基础上进一步对数据流的分段报文的保序操作进行时延控制。如图16所示的本发明数据流的模式匹配装置的实施例五中,保序模块1可包括:定时器模块13,用于设置和保存预设的时延;缓存模块12,用于缓存收到的数据流的分段报文;处理模块11,与缓存模块12、定时器模块13及模式匹配模块3连接,用于在预设的时延内对缓存的分段报文进行保序,并丢弃在预设的时延内未被保序的分段报文。本实施例五中,通过设置定时器模块来控制保序操作的时延,能够进一步减少时延和内存占用。
参见图17所示的实施例六的结构示意图,结果处理模块4可进一步包括:判断模块41,与模式匹配模块3连接,用于判断模式匹配的结果是否为与预设的模式匹配;转发模块42,与判断模块41连接,用于在模式匹配的结果为与预设的模式不匹配时转发分段报文;模式处理模块43,与判断模块41连接,用于在模式匹配的结果为与预设的模式匹配时,按照预设的策略,对分段报文执行与所匹配的模式对应的操作。本实施例进一步提供了根据模式匹配的结果执行预设相应操作的模块,从而使得在分段报文模式匹配完毕后能够迅速根据预设策略执行相应操作(如转发或丢弃),减少报文转发时延和内存占用。
优选地,当数个数据流同时并行地与所述有限状态机进行模式匹配时,如图18所示的实施例七的结构示意图,状态保存模块5还可与有限状态机模块2连接,用于对每个数据流分别保存对应的有限状态机与该数据流的当前分段报文进行模式匹配后的状态,并在收到下一个分段报文时,查找所述有限状态机模块中保存的与该分段报文的特征一致的所述标识信息,根据该标识信息获得该分段报文对应的有限状态机的起始状态。本实施例七中,在数个数据流同时并行地与同一个有限状态机进行模式匹配时,利用有限状态机模块2中保存的标识信息,来标识状态保存模块5中所保存的不同的数据流所对应的上次模式匹配所保存的状态,从而不仅能够支持多个数据流与多个有限状态机的模式匹配,还能够支持多个数据流与一个有限状态机的模式匹配。
以上实施例仅用以说明本发明的技术方案,而非对本发明作限制性理解。尽管参照上述较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解:其依然可以对本发明的技术方案进行修改或者等同替换,而这种修改或者等同替换并不脱离本发明技术方案的精神和范围。
Claims (16)
1、一种数据流的模式匹配方法,其特征在于,包括:
在对收到的数据流的分段报文进行保序后,将该数据流的分段报文依次与预先设定的有限状态机进行模式匹配;其中,在对每一个分段报文进行模式匹配后,根据模式匹配结果对该分段报文执行预设的对应的操作,并保存对该分段报文进行模式匹配后的有限状态机的状态,将该状态作为所述有限状态机对下一个分段报文进行模式匹配的起始状态。
2、根据权利要求1所述的方法,其特征在于,在所述对收到的数据流的分段报文进行保序之前执行所述预先设定有限状态机的操作,具体包括:根据预设算法构建用于对预设的模式进行匹配的有限状态机,并根据预设的模式设定分别用于驱动该有限状态机的各状态间迁移的对应的预设长度的字符串。
3、根据权利要求1所述的方法,其特征在于:
在预先设定所述有限状态机之后,在所述对收到的数据流的分段报文进行保序之前,还包括以下操作:预先设置与所构建的有限状态机一一对应的、用于预先标识将要与该有限状态机进行模式匹配的数据流的特征的标识信息;
在所述对收到的数据流的分段报文进行保序之后,在所述将该数据流的分段报文依次与预先设定的有限状态机进行模式匹配之前,还包括以下操作:查找获得与该数据流的特征一致的标识信息,根据所获得的标识信息得到与该数据流对应的有限状态机。
4、根据权利要求1所述的方法,其特征在于:
在预先设定所述有限状态机之后,在所述对收到的数据流的分段报文进行保序之前,还包括以下操作:预先设置与所构建的有限状态机对应的、用于预先标识将要与该有限状态机进行模式匹配的数据流的特征的标识信息;
当数个数据流同时并行地与所述有限状态机进行模式匹配时,所述保存对该分段报文进行模式匹配后的有限状态机的状态,将该状态作为所述有限状态机对下一个分段报文进行模式匹配的起始状态具体包括:对每个数据流分别保存所述有限状态机与该数据流的当前分段报文进行模式匹配后的状态,并在收到下一个分段报文时,查找与该分段报文的特征一致的所述标识信息,根据该标识信息获得该分段报文对应的有限状态机的起始状态。
5、根据权利要求2所述的方法,其特征在于,所述对每一个分段报文进行模式匹配具体包括:依次提取该分段报文的净载荷中所述预设长度的字符串作为所述有限状态机的驱动,使所述有限状态机进行状态迁移,在该分段报文的净载荷提取完毕后,根据所述有限状态机状态迁移过程中所匹配的模式获得模式匹配结果。
6、根据权利要求5所述的方法,其特征在于:
所述预设长度为一个字符;
所述将该分段报文的净载荷作为所述有限状态机的驱动,使所述有限状态机进行状态迁移并获得模式匹配结果具体包括:依次提取该分段报文的净载荷中的每个字符,逐一地作为所述有限状态机的驱动,使所述有限状态机进行状态迁移,在该分段报文的净载荷中的全部字符提取完毕后根据所述有限状态机状态迁移过程中所匹配的模式获得模式匹配结果。
7、根据权利要求1所述的方法,其特征在于,所述对收到的数据流的分段报文进行保序具体包括:缓存收到的数据流的分段报文并进行保序,对在预设的时延内被保序完毕的分段报文继续进行后续的模式匹配处理,并丢弃在预设的时延内未被保序的分段报文。
8、根据权利要求1-7任一所述的方法,其特征在于,所述根据模式匹配结果对该分段报文执行预设的对应的操作具体包括:如果模式匹配的结果为与预设的模式相匹配,则根据预设的策略执行与该模式对应的操作,如果模式匹配的结果为与预设的模式不匹配,则转发该分段报文。
9、一种数据流的模式匹配装置,其特征在于,包括:
保序模块,用于对收到的数据流的分段报文进行保序;
有限状态机模块,用于保存预先设定的有限状态机;
模式匹配模块,与所述保序模块及有限状态机模块连接,用于将保序后的数据流的分段报文与所述预先设定的有限状态机进行模式匹配;
结果处理模块,与所述模式匹配模块连接,用于根据模式匹配的结果对分段报文执行预设的对应的操作;
状态保存模块,与所述模式匹配模块连接,用于保存所述模式匹配模块对分段报文进行模式匹配后的有限状态机的状态,并将该状态作为对下一个分段报文进行模式匹配的起始状态。
10、根据权利要求9所述的装置,其特征在于:还包括有限状态机设置模块,与所述有限状态机模块连接,用于根据预设算法构建用于对预设的模式进行匹配的有限状态机并根据预设的模式设定分别用于驱动该有限状态机的各状态间迁移的对应的预设长度的字符串,然后保存在所述有限状态机模块中。
11、根据权利要求9所述的装置,其特征在于:
还包括标识信息设置模块,与所述有限状态机模块连接,用于预先设置与所构建的有限状态机一一对应的、用于预先标识将要与该有限状态机进行模式匹配的数据流的特征的标识信息,并保存在所述有限状态机模块中;
所述模式匹配模块为用于对保序后的数据流查找获得与该数据流的特征一致的标识信息,根据所获得的标识信息得到与该数据流对应的有限状态机,将该数据流的分段报文的净载荷与所得到的有限状态机进行模式匹配。
12、根据权利要求9所述的装置,其特征在于:
还包括标识信息设置模块,与所述有限状态机模块连接,用于预先设置与所构建的有限状态机对应的、用于预先标识将要与该有限状态机进行模式匹配的数据流的特征的标识信息,并保存在所述有限状态机模块中;
所述状态保存模块还与所述有限状态机模块连接,用于对每个数据流分别保存对应的有限状态机与该数据流的当前分段报文进行模式匹配后的状态,并在收到下一个分段报文时,所述模式匹配模块查找所述有限状态机模块中保存的与该分段报文的特征一致的所述标识信息,根据该标识信息获得该分段报文对应的有限状态机的起始状态。
13、根据权利要求10所述的装置,其特征在于,所述模式匹配模块包括:
载荷提取模块,与所述保序模块连接,用于对保序后的分段报文,依次提取该分段报文的净载荷中所述预设长度的字符串;
状态迁移模块,与所述载荷提取模块、有限状态机模块、状态保存模块以及结果处理模块连接,用于将所提取的字符串作为所述有限状态机的驱动,使所述有限状态机进行状态迁移,在该分段报文的净载荷提取完毕后,根据所述有限状态机状态迁移过程中所匹配的模式获得模式匹配结果输出给所述结果处理模块,并将有限状态机的状态保存到状态保存模块中。
14、根据权利要求13所述的装置,其特征在于:
所述载荷提取模块为用于对保序后的分段报文,依次提取该分段报文的净载荷中长度为1个字符的字符串的载荷提取模块;
所述状态迁移模块为用于依次提取该分段报文的净载荷中的每个字符,逐一地作为所述有限状态机的驱动,使所述有限状态机进行状态迁移,在该分段报文的净载荷中的全部字符提取完毕后根据所述有限状态机状态迁移过程中所匹配的模式获得模式匹配结果的状态迁移模块。
15、根据权利要求9所述的装置,其特征在于,所述保序模块包括:
定时器模块,用于设置和保存预设的时延;
缓存模块,用于缓存收到的数据流的分段报文;
处理模块,与所述缓存模块、定时器模块及模式匹配模块连接,用于在预设的时延内对缓存的分段报文进行保序,并丢弃在预设的时延内未被保序的分段报文。
16、根据权利要求9-15任一所述的装置,其特征在于,所述结果处理模块包括:
判断模块,与所述模式匹配模块连接,用于判断模式匹配的结果是否为与预设的模式匹配;
转发模块,与所述判断模块连接,用于在模式匹配的结果为与预设的模式不匹配时转发分段报文;
模式处理模块,与所述判断模块连接,用于在模式匹配的结果为与预设的模式匹配时,按照预设的策略,对分段报文执行与所匹配的模式对应的操作。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200610161982 CN1980240A (zh) | 2006-12-08 | 2006-12-08 | 数据流的模式匹配方法及装置 |
PCT/CN2007/071080 WO2008067743A1 (fr) | 2006-12-08 | 2007-11-16 | Procédé et dispositif d'appariement de formes |
US12/513,650 US8239341B2 (en) | 2006-12-08 | 2007-11-16 | Method and apparatus for pattern matching |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200610161982 CN1980240A (zh) | 2006-12-08 | 2006-12-08 | 数据流的模式匹配方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1980240A true CN1980240A (zh) | 2007-06-13 |
Family
ID=38131237
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200610161982 Pending CN1980240A (zh) | 2006-12-08 | 2006-12-08 | 数据流的模式匹配方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1980240A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008067743A1 (fr) * | 2006-12-08 | 2008-06-12 | Hangzhou H3C Technologies Co., Ltd. | Procédé et dispositif d'appariement de formes |
WO2009097756A1 (zh) * | 2008-02-01 | 2009-08-13 | Huawei Technologies Co., Ltd. | 建立模式匹配状态机的方法及装置 |
CN101175033B (zh) * | 2007-11-27 | 2010-06-16 | 中兴通讯股份有限公司 | 报文保序方法及其装置 |
CN102143151A (zh) * | 2010-12-22 | 2011-08-03 | 华为技术有限公司 | 一种基于深度包检测的协议跨包检测方法和装置 |
CN103051501A (zh) * | 2013-01-25 | 2013-04-17 | 四川神琥科技有限公司 | 一种根据网络数据恢复的方式识别网络数据的检测方法 |
CN105653950A (zh) * | 2015-07-17 | 2016-06-08 | 哈尔滨安天科技股份有限公司 | 一种基于多模式的恶意代码匹配方法及装置 |
CN106161479A (zh) * | 2016-09-21 | 2016-11-23 | 杭州迪普科技有限公司 | 一种支持特征跨包的编码攻击检测方法和装置 |
CN113535731A (zh) * | 2021-07-21 | 2021-10-22 | 北京威努特技术有限公司 | 一种基于启发式的报文状态交互自学习方法及装置 |
CN114039928A (zh) * | 2021-11-02 | 2022-02-11 | 恒安嘉新(北京)科技股份公司 | 网络流量的识别方法、装置、设备及存储介质 |
CN115296878A (zh) * | 2022-07-27 | 2022-11-04 | 天翼云科技有限公司 | 一种报文检测方法、装置、电子设备及存储介质 |
-
2006
- 2006-12-08 CN CN 200610161982 patent/CN1980240A/zh active Pending
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8239341B2 (en) | 2006-12-08 | 2012-08-07 | Hangzhou H3C Technologies Co., Ltd. | Method and apparatus for pattern matching |
WO2008067743A1 (fr) * | 2006-12-08 | 2008-06-12 | Hangzhou H3C Technologies Co., Ltd. | Procédé et dispositif d'appariement de formes |
CN101175033B (zh) * | 2007-11-27 | 2010-06-16 | 中兴通讯股份有限公司 | 报文保序方法及其装置 |
WO2009097756A1 (zh) * | 2008-02-01 | 2009-08-13 | Huawei Technologies Co., Ltd. | 建立模式匹配状态机的方法及装置 |
US8583961B2 (en) | 2008-02-01 | 2013-11-12 | Huawei Technologies Co., Ltd. | Method and device for creating pattern matching state machine |
CN102143151B (zh) * | 2010-12-22 | 2014-01-08 | 华为技术有限公司 | 一种基于深度包检测的协议跨包检测方法和装置 |
WO2012083748A1 (zh) * | 2010-12-22 | 2012-06-28 | 华为技术有限公司 | 一种基于深度包检测的协议跨包检测方法和装置 |
CN102143151A (zh) * | 2010-12-22 | 2011-08-03 | 华为技术有限公司 | 一种基于深度包检测的协议跨包检测方法和装置 |
CN103051501A (zh) * | 2013-01-25 | 2013-04-17 | 四川神琥科技有限公司 | 一种根据网络数据恢复的方式识别网络数据的检测方法 |
CN103051501B (zh) * | 2013-01-25 | 2015-07-15 | 四川神琥科技有限公司 | 一种根据网络数据恢复的方式识别网络数据的检测方法 |
CN105653950A (zh) * | 2015-07-17 | 2016-06-08 | 哈尔滨安天科技股份有限公司 | 一种基于多模式的恶意代码匹配方法及装置 |
CN106161479A (zh) * | 2016-09-21 | 2016-11-23 | 杭州迪普科技有限公司 | 一种支持特征跨包的编码攻击检测方法和装置 |
CN106161479B (zh) * | 2016-09-21 | 2019-06-07 | 杭州迪普科技股份有限公司 | 一种支持特征跨包的编码攻击检测方法和装置 |
CN113535731A (zh) * | 2021-07-21 | 2021-10-22 | 北京威努特技术有限公司 | 一种基于启发式的报文状态交互自学习方法及装置 |
CN113535731B (zh) * | 2021-07-21 | 2024-04-16 | 北京威努特技术有限公司 | 一种基于启发式的报文状态交互自学习方法及装置 |
CN114039928A (zh) * | 2021-11-02 | 2022-02-11 | 恒安嘉新(北京)科技股份公司 | 网络流量的识别方法、装置、设备及存储介质 |
CN115296878A (zh) * | 2022-07-27 | 2022-11-04 | 天翼云科技有限公司 | 一种报文检测方法、装置、电子设备及存储介质 |
CN115296878B (zh) * | 2022-07-27 | 2023-11-03 | 天翼云科技有限公司 | 一种报文检测方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1980240A (zh) | 数据流的模式匹配方法及装置 | |
CN109547409B (zh) | 一种用于对工业网络传输协议进行解析的方法及系统 | |
US9256831B2 (en) | Match engine for detection of multi-pattern rules | |
CN103733590B (zh) | 用于正则表达式的编译器 | |
CN103955645B (zh) | 恶意进程行为的检测方法、装置及系统 | |
CN104158800A (zh) | 一种面向软件定义网络的分布式拒绝服务攻击检测方法 | |
CN106549980A (zh) | 一种恶意c&c服务器确定方法及装置 | |
CN112769827B (zh) | 一种网络攻击代理端检测及溯源方法与装置 | |
WO2012177752A1 (en) | Anchored patterns | |
US20180083770A1 (en) | Detecting encoding attack | |
KR100960117B1 (ko) | 시그니처 패턴 매칭방법과 그 시스템 및 시그니처 패턴이기록된 기록매체 | |
CN112532642B (zh) | 一种基于改进Suricata引擎的工控系统网络入侵检测方法 | |
CN102694801B (zh) | 病毒检测方法、装置以及防火墙设备 | |
CN106470214A (zh) | 攻击检测方法和装置 | |
CN1235108C (zh) | 一种计算机病毒检测和识别方法 | |
CN108920955B (zh) | 一种网页后门检测方法、装置、设备及存储介质 | |
CN103166942B (zh) | 一种恶意代码的网络协议解析方法 | |
WO2018110997A1 (ko) | 네트워크 침입 탐지 규칙을 생성하는 방법 및 장치 | |
CN1460932A (zh) | 一种基于相关特征聚类的层次入侵检测系统 | |
CN107493258A (zh) | 一种基于网络安全的入侵检测系统 | |
CN111245866B (zh) | 基于硬件加速的以太网应用层协议控制系统及方法 | |
CN104917757A (zh) | 一种事件触发式的mtd防护系统及方法 | |
CN108985059B (zh) | 一种网页后门检测方法、装置、设备及存储介质 | |
CN107659535A (zh) | 一种规则识别方法及装置 | |
CN110399485A (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 | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20070613 |