一种基于分类计数器的确定有限状态机构造方法技术

技术编号:12577475 阅读:179 留言:0更新日期:2015-12-23 17:06
本发明专利技术请求保护一种基于分类计数器的确定有限状态机构造方法,属于互联网入侵检测领域。包括以下步骤:首先对正则表达式集合(规则集)中的每一个正则表达式按照构建DFA的复杂度进行分类,分为线性级复杂度类、乘法级复杂度类、平方级复杂度类和指数级复杂度类;然后为每一类复杂度的正则表达式生成特定的带计数器的DFA;最后合并DFA中含有相同输出激励的、非内部起始状态和内部终止状态的状态,生成最终的ODFA(覆盖的确定有限状态机,可以加快入侵检测系统对接收报文的检测速度,提高准确率,降低误报率,减少系统对内存资源的消耗。此构造方法具有很大的实际应用价值。

【技术实现步骤摘要】

本专利技术涉及互联网入侵检测领域,特别涉及入侵检测系统中正则表达式对应的确定有限状态机的构造和压缩。
技术介绍
入侵检测技术是一种新的安全防御措施,作为防火墙的一种补充策略,它可以用来识别针对计算机系统和网络系统或者更广泛意义上的信息系统的非法攻击,包括检测外界非法入侵者的恶意攻击或者试探。深度包检测(DPI Deep Packet Inspect1n)是基于规则匹配的网络入侵检测系统实现的重要方法,它是相对普通报文分析而言的一种新技术,普通报文检测仅仅分析IP包的四层以下的内容,包括源地址,目的地址,源端口,目的端口以及协议类型,深度包检测技术不仅仅检测网络层和传输层数据包头部,而且深入到应用层数据包的有效载荷所封装的内容中,按照匹配规则搜寻合法或者非法的内容以决定是否允许数据包通过。其中正则表达式被用来描述入侵检测系统中的各种匹配规则,这些正则表达式一般采用确定的有限状态机(DFA)来实现匹配。正则表达式的构建复杂度是指长度为η的正则表达式构造成DFA后的状态数目、转移数目与η的关系。越多的状态数目和转移数目意味着需要越多的存储空间和处理能力。在最差的情况下,正则表达式的构造复杂度为O (2η),这种情形被称为状态爆炸。目前构造确定有限状态机的方法可能会导致状态爆炸,从而耗费大量的存储空间和处理能力。为了压缩DFA状态数目,Smith等人提出扩展有限自动状态机(XFA)。但是XFA只能对单个字符进行计数,对于多次重复的字符串无能为力。Kumar提出的D2FA算法可以压缩转移数目,其缺点是匹配效率低,针对每个字符激励可能要沿默认状态转移多次跳转才能达到目的状态。
技术实现思路
针对现有技术的不足,提出了一种加快入侵检测系统对接收报文的检测速度,提高准确率,降低误报率,减少系统对内存资源的消耗的基于分类计数器的确定有限状态机构造方法。本专利技术的技术方案如下:,其包括以下步骤:101、根据数据流中不同服务的数据特征编写基于规则匹配的网络入侵检测系统的正则表达式,如QQ业务的正则表达式为?.? \x02.+\x03$,FTP业务的正则表达式为~220*,并对正则表达式集合中的每一个正则表达式按照构建有限状态机DFA的复杂度进行分类,具体分为线性级复杂度类、乘法级复杂度类、平方级复杂度类和指数级复杂度类;102、然后对步骤101中的按照构建线性级复杂度类、乘法级复杂度类、平方级复杂度类和指数级复杂度类对应的正则表达式构造带有计数器的有限状态机DFA,其中被省略的状态和转移由计数器的计数取代;103、最后遍历有限状态机DFA中所有的状态节点,合并含有相同输出激励的状态,压缩DFA状态数目和转移数目,生成最终的有效状态机。进一步的,步骤102中对于线性级构造复杂度对应的正则表达式,构造带有计数器的有限状态机DFA的步骤为:遍历表达式所有字符,生成状态转移图,其中状态转移图的边即为表达式中的一个输入激励,构造出的状态转移图即为普通的DFA。进一步的,当步骤102中为乘法级或者平方级构造复杂度对应的正则表达式时,构造带有计数器的有限状态机DFA的步骤为:将正则表达式中具体的长度限制的值改写为表示重复次数的元字符“*”,并构造对应的DFA’确定的有限状态机;找到DFA’中的内部起始状态、计数状态和内部终止状态,并申请一个计数变量Counter,初始化为长度M的值;为每个计数状态添加一个常量参数num,表示从内部起始状态到当前状态所需要的最少状态转移的次数,即从内部起始状态开始连续匹配成功的字符数,在匹配过程中根据计数变量Counter和常量参数num来判断匹配是否成功。进一步的,当步骤102中为指数级构建复杂度的正则表达式时,首先改写该正则表达式;接着对于无法改写的正则表达式,其具有指数级的状态点数目,将其构建为半确定有限状态机,半确定有限状态机介于有限状态机DFA和非确定的有限状态机NFA之间,在非确定的有限状态机NFA扫描处理时计算并存储实际需要的一些DFA状态节点,状态数目的复杂度为? (η),从而将对应的正则表达式的构建复杂度从指数级降低到线性级。本专利技术的优点及有益效果如下:1.本专利技术提供的有限状态机构造方法,对规则集中的每一条正则表达式进行复杂度的分类,并根据其复杂度生成对应的带计数器的DFA,通过用计数器对状态点的压缩,可以使所有乘法级、平方级和指数级复杂度的状态点数目降低到线性级,减少了对存储空间的消耗。2.本专利技术在对规则集中的每条规则生成的中间状态DFA的基础上,通过将其中含有相同输出的状态合并成一个基类状态,再一次压缩状态点,并减少了转移数目,从而可以加快入侵检测系统对接收报文的检测速度,提高准确率,降低误报率,减少系统对内存资源的消耗。【附图说明】图1是本专利技术提供实施例ODFA整体构造流程图;图2:线性级构造复杂度DFA构造流程图;图3:线性级构造复杂度DFA实例;图4:乘法级构造复杂度DFA构造流程图;图5:乘法级构造复杂度DFA实例;图6:平方级构造复杂度DFA实例;图7:平方级构造复杂度DFA’实例;图8:0DFA构造前的DFA实例;图9:0DFA构造实例。【具体实施方式】以下结合附图,对本专利技术作进一步说明:如图1所示,为本专利技术实施例一种确定有限状态机构造方法,所述方法包括:101、读取系统中规则集,并查看该规则集中是否还有未被构造的规则,如果存在未被构造的规则,则判断该规则的构建复杂度。102、判断规则的构建复杂度,构建复杂度是指规则式生成的DFA的状态点数目的复杂度。在最坏的情况下,长度为η的正则表达式的构建复杂度为ο (2η)。然而在实际情况中,构建复杂度大多数呈线性级、乘法级或平方级。其中字符确定或仅含有通配符的正则式有着线性构级造复杂度,如~ABCD、'AB.*CD、.*ABCD、.*AB.*CD ;以.'开始,含有长度限制的正则表达式,其构造复杂度可能为线性级、乘法级或者平方级,其中形如~ΑΒΓ\η] {j}CD和~ΑΒΓ\η] {j+}CD的正则式有着线性构造复杂度,形如~ΑΒΓ\η] U,j}CD的正则式有着乘法级构造复杂度,形如~A+ {j}的正则式有着平方级的构造复杂度;在长度限制前,有通配符和重叠字符的正则式,有着指数级构造复杂度,如~ABr\n]*CD.{j}EF等。103、如果该规则的构造复杂度为线性级,则直接构造对应的DFA:遍历表达式所有字符,生成状态转移图,其中状态转移图的边即为表达式中的每一个输入激励。104、如果该规则的构造复杂度为乘法级或者平方级,则构造一个带计数器的DFA:首先定义其中带有长度限制的字符的前一个字符对应的状态被为内部起始状态,内部起始状态及其后的需要更新计数器的状态被称为计数状态,带有长度限制的字符的后一个字符对应的状态被为内部终止状态,如正则式~ΑΒΓ\η] U,j}CD中以第二个字符B为输入激励的状态就被定义为内部起始状态,以C为输出激励的状态定义为计数状态,以C为输入激励的状态定义为内部终止状态;然后将原正则式进行如下改写:将具体的长度限制的值改写为表示重复次数的元字符并对其构造DFA’ ;接着申请一个计数变量count并初始化为j,用来表示j与带长度限制的字符连续出现的次数,并为每个计数状态添加一个常量参数nu本文档来自技高网
...
一种基于分类计数器的确定有限状态机构造方法

【技术保护点】
一种基于分类计数器的确定有限状态机构造方法,其特征在于,包括以下步骤:101、根据数据流中不同服务的数据特征编写基于规则匹配的网络入侵检测系统的正则表达式,并对正则表达式集合中的每一个正则表达式按照构建有限状态机DFA的复杂度进行分类,具体分为线性级复杂度类、乘法级复杂度类、平方级复杂度类和指数级复杂度类;102、然后对步骤101中的按照构建线性级复杂度类、乘法级复杂度类、平方级复杂度类和指数级复杂度类对应的正则表达式构造带有计数器的有限状态机DFA,其中被省略的状态和转移由计数器的计数取代;103、最后遍历有限状态机DFA中所有的状态节点,合并含有相同输出激励的状态,压缩DFA状态数目和转移数目,生成最终的有效状态机。

【技术特征摘要】

【专利技术属性】
技术研发人员:唐红曾诚徐川雷特
申请(专利权)人:重庆邮电大学
类型:发明
国别省市:重庆;85

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1