用于大流量网络入侵检测系统的模式匹配算法和系统的制作方法

文档序号:12182834阅读:205来源:国知局
用于大流量网络入侵检测系统的模式匹配算法和系统的制作方法与工艺

本发明涉及网络入侵检测技术领域,尤其涉及一种用于大流量网络入侵检测系统的模式匹配算法和系统。



背景技术:

随着Internet应用的普及,网络安全问题也日益突出。入侵是指试图破坏资源的完整性、可用性和保密性的活动的集合。作为防火墙之后网络安全的最后一道防线,入侵检测系统(IDS)是指检测上述行为的活动,识别出未经授权或越权访问系统资源的行为的软硬件系统。由于入侵检测系统可以在一定程度上主动预防和检测出来自系统外部的入侵,并做出适当响应,动态改变网络的安全性,因此入侵检测的研究正成为网络安全研究的热点。

根据采用的分析技术入侵检测分为误用检测和异常检测。误用检测根据已知的攻击方法,预先定义入侵模式,通过判断这些模式是否出现来完成检测任务。异常检测是指根据用户的行为或资源的使用状况的正常程度来判断是否属于入侵。由于异常检测的误检率和漏检率高,因此目前大多数入侵检测系统产品均属误用检测。误用检测中使用的检测技术主要有:模式匹配、专家系统、状态转移等,而其中因为模式匹配原理简单、可扩展性好而最为常用,例如著名开放源码的入侵检测系统Snort就是基于模式匹配的。

由此可见,模式匹配算法的性能直接影响入侵检测系统的检测效率。在高速网络环境,如果模式匹配算法来不及处理大量的实时网络数据包,必然会丢弃部分数据包,而这些被丢弃的数据包中就可能包含入侵信息。

现有的入侵检测系统中采用的字符串模式匹配算法需要对数据包负载进行完全检测,随着规则集的增长,网络流量不断增大,这种多模匹配算法对内存资源占用过大,匹配性下降,导致无法适用入侵检测需求。



技术实现要素:

本发明的目的在于解决现有的模式匹配方法中占用内存过多和匹配能力较差的问题,提供一种改进的用于大流量网络入侵检测系统的模式匹配算法和系统以减少系统资源消耗,提高匹配速度和加载速度,从而满足大流量网络入侵检测系统的报文检测需求。

一方面,本发明实施例提供一种用于大流量网络入侵检测系统的模式匹配算法,包括以下步骤:

对待匹配规则集中的关键字集合进行预处理;

对预处理后的规则集进行DFA编译;以及

通过NFA编译对编译后的DFA终态节点进行冲突处理,生成匹配结果。

优选地,对待匹配规则集中的关键字集合进行预处理的所述步骤包括对所述规则集中的所述关键字集合进行压缩处理;

在对预处理后的规则集进行DFA编译的所述步骤中,根据所述关键字集合中的字符总个数计算DFA展开树的宽度。

优选地,对待匹配规则集中的关键字集合进行预处理的所述步骤还包括对进入DFA编译的关键字进行字符截断处理;

在对预处理后的规则集进行DFA编译的所述步骤中,将关键字中位于截断点前的字符进行DFA编译。

优选地,在通过NFA编译对编译后的DFA终态节点进行冲突处理,生成匹配结果的所述步骤中,将关键字中位于截断点后的字符进行NFA编译。

相应地,本发明还提供一种用于大流量网络入侵检测系统的模式匹配系统,包括:

预处理模块,用于对待匹配规则集中的关键字集合进行预处理;

DFA编译模块,将待匹配数据利用预处理后的规则集进行DFA编译;以及

NFA编译模块,通过NFA编译对编译后的DFA终态节点进行冲突处理,生成匹配结果。

优选地,所述预处理模块包括关键字压缩单元,用于对所述待匹配规则集中的所述关键字集合进行压缩处理;

所述DFA编译模块根据所述关键字集合中的字符总个数计算DFA展开树的宽度。

优选地,所述预处理模块还包括字符截断处理单元,用于对进入DFA编译的关键字进行字符截断处理;

所述DFA编译模块将关键字中位于截断点前的字符进行DFA编译。

优选地,所述NFA编译模块用于将关键字中位于截断点后的字符进行NFA编译。

实施本发明实施例,具有如下有益效果:本发明提供的用于大流量网络入侵检测系统的模式匹配算法和系统,通过压缩待匹配规则集中的关键字集合,减少关键字状态的跳转范围,从而减少状态机的内存消耗;通过减少加入自动机中的关键字的长度,减少状态树的深度,从而减少状态机的内存消耗;通过优化关键字冲突后字符串匹配算法,提高自动机匹配后的冲突关键字查找速度,从而提高关键字的检索速度;由此,使多模匹配算法减少系统资源消耗,提高匹配速度和加载速度,从而满足大流量网络入侵检测系统的报文检测需求。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一实施例提供的用于大流量网络入侵检测系统的模式匹配算法的流程图;

图2是本发明一实施例提供的DFA展开示意图;

图3是本发明另一实施例提供的DFA展开示意图;

图4是本发明一实施例提供的用于大流量网络入侵检测系统的模式匹配系统的原理图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供了一种用于大流量网络入侵检测系统的模式匹配算法。参见图1,该用于大流量网络入侵检测系统的模式匹配算法包括以下步骤:

步骤S110:对待匹配规则集中的关键字集合进行预处理。

具体地,在本实施例中,对待匹配规则集中的关键字的预处理包括对所述待匹配规则集中的所述关键字集合进行压缩处理和对进入确定有穷状态自动机(DFA)编译的关键字进行字符截断处理。

进一步地,对所述待匹配规则集中的所述关键字集合进行压缩处理是指通过压缩待匹配规则集中条件的字符集合。例如,如图2所示的DFA展开示意图中,关键字中只有she、he、they三个,DFA算法展开后,其中有7个中间节点,按照之前的方法,展开式需要256*7个字节(1792B)的内存;而利用本实施例的方法只保留关键字中的字符,减少节点调整范围,展开式只需要5*7个字节(35B)的内存。由此可见,通过优化关键字的跳转集合,减少关键字状态的跳转范围,可以有效减少状态机的内存消耗。

进一步地,对进入DFA编译的关键字进行字符截断处理是指通过规定加入DFA的字符长度的最大值来减少进入DFA中的字符长度,只将关键字的部分字符送入自动机。例如,在如图3所示的DFA展开示意图中,有China、America、England三个关键字,DFA展开后树的深度为8,按照未优化过的算法,展开后需要256^17个字节的内存;如果我们规定加入DFA的字符长度最长为4个,则在结合字符压缩处理的基础中,现在需要的内存是11^13个字节。由此可见,通过减少加入自动机中的关键字的长度,就可以减少状态树的深度,从而减少状态机的内存消耗。

步骤S120:将待匹配数据利用预处理后的规则集进行DFA编译。

具体地,在本实施例中,由于在步骤S110中已经对待匹配规则集进行了关键字压缩处理,这样,在将待匹配数据利用预处理后的规则集进行DFA编译时,根据所述关键字集合中的字符总个数计算DFA展开树的宽度。例如,在如图2所示的DFA展开示意图中,DFA展开树的宽度为5;而在如图3所示的DFA展开示意图中,DFA展开树的宽度为11。

具体地,在本实施例中,由于在步骤S110中已经对待匹配规则集进行了字符截断处理,这样,在将待匹配数据利用预处理后的规则集进行DFA编译时,将关键字中位于截断点前的字符进行DFA编译。例如,在如图3所示的DFA展开示意图中,只对关键字“China”中的“Chin”四个字符进行DFA编译,只对关键字“America”中的“Amer”四个字符进行DFA编译,只对关键字“England”中的“Engl”四个字符进行DFA编译。

步骤S130:通过NFA编译对编译后的DFA终态节点进行冲突处理,生成匹配结果。

具体地,在本实施例中,由于在步骤S120中只针对位于截断点前的字符进行了匹配,后面被截断的关键字可能会产生冲突处理,因此,需要在DFA完成编译后,在DFA的终态节点上冲突处理。为了加快冲突关键字的查询速度,本发明引入不确定有穷状态自动机(NFA算法)来处理截断后的字符查找。例如,在如图3所示的DFA展开示意图中,只对关键字“China”中的“Chin”四个字符进行DFA编译,如果规则集中还有一个关键字是“Chinese”,由于DFA编译只对“Chin”四个字符进行匹配,“China”和“Chinese”会产生冲突,因此,需要将被截断的关键字剩余部分加入NFA中,继续进行NFA编译,形成最终的匹配结果。

本实施例提供的用于大流量网络入侵检测系统的模式匹配算法,通过压缩待匹配规则集中的关键字集合,减少关键字状态的跳转范围,从而减少状态机的内存消耗;通过减少加入自动机中的关键字的长度,减少状态树的深度,从而减少状态机的内存消耗;通过优化关键字冲突后字符串匹配算法,提高自动机匹配后的冲突关键字查找速度,从而提高关键字的检索速度;由此,使多模匹配算法减少系统资源消耗,提高匹配速度和加载速度,从而满足大流量网络入侵检测系统的报文检测需求。

图4是本发明一实施例提供的用于大流量网络入侵检测系统的模式匹配系统的原理图。如图4所示,用于大流量网络入侵检测系统的模式匹配系统包括:

预处理模块410,用于对待匹配规则集中的关键字集合进行预处理;

DFA编译模块420,将待匹配数据利用预处理后的规则集进行DFA编译;以及

NFA编译模块430,通过NFA编译对编译后的DFA终态节点进行冲突处理,生成匹配结果。

具体地,在本实施例中,预处理模块410对待匹配规则集中的关键字的预处理包括对所述待匹配规则集中的所述关键字集合进行压缩处理和对进入DFA编译的关键字进行字符截断处理。因此,预处理模块410包括用于对所述待匹配规则集中的所述关键字集合进行压缩处理的关键字压缩单元412和用于对进入DFA编译的关键字进行字符截断处理的字符截断处理单元414。

进一步地,关键字压缩单元412通过压缩待匹配规则集中条件的字符集合,减少关键字状态的跳转范围,使得DFA编译模块420根据所述关键字集合中的字符总个数计算DFA展开树的宽度,由此可以有效减少状态机的内存消耗。

进一步地,字符截断处理单元414对通过规定加入DFA的字符长度的最大值来减少进入DFA中的字符长度,只将关键字的部分字符送入自动机,使得所述DFA编译模块420将关键字中位于截断点前的字符进行DFA编译。

进一步地,由于DFA编译模块420只针对位于截断点前的字符进行了匹配,后面被截断的关键字可能会产生冲突处理,因此,需要在DFA完成编译后,在DFA的终态节点上冲突处理,将被截断的关键字剩余部分加入NFA中,继续进行NFA编译,形成最终的匹配结果。因此,所述NFA编译模块430用于将关键字中位于截断点后的字符进行NFA编译。

本实施例提供的用于大流量网络入侵检测系统的模式匹配方法,通过压缩待匹配规则集中的关键字集合,减少关键字状态的跳转范围,从而减少状态机的内存消耗;通过减少加入自动机中的关键字的长度,减少状态树的深度,从而减少状态机的内存消耗;通过优化关键字冲突后字符串匹配算法,提高自动机匹配后的冲突关键字查找速度,从而提高关键字的检索速度;由此,使多模匹配算法减少系统资源消耗,提高匹配速度和加载速度,从而满足大流量网络入侵检测系统的报文检测需求。

需要说明的是:上述实施例提供的用于大流量网络入侵检测系统的模式匹配系统在实现用于大流量网络入侵检测系统的模式匹配方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的用于大流量网络入侵检测系统的模式匹配系统与用于大流量网络入侵检测系统的模式匹配方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1