一种确定有限自动机的构建方法及装置制造方法及图纸

技术编号:8836657 阅读:235 留言:0更新日期:2013-06-22 22:06
本发明专利技术公开了一种确定有限自动机的构建方法及装置,用以解决针对包含长度限制的正则表达式构建DFA时可能存在的DFA状态爆炸问题,同时实现DFA的存储空间压缩及匹配加速。确定有限自动机的构建方法,包括:针对特征规则集中包含长度限制的正则表达式,按照长度限制的出现位置进行分割与合并处理,将所述正则表达式的头尾部和长度限制部分相分离;构建所述正则表达式的确定有限自动机,其中,所述正则表达式的确定有限自动机对所述长度限制部分使用跳跃策略调整匹配顺序,头尾部匹配完成之后使用计数策略对所述长度限制部分进行验证。

【技术实现步骤摘要】
一种确定有限自动机的构建方法及装置
本专利技术涉及互联网领域,尤其涉及一种确定有限自动机的构建方法及装置。
技术介绍
深度数据包检测是NIDS(NetworkIntrusionDetectionSystem,网络入侵检测系统)和NIPS(NetworkIntrusionProtectionSystem,网络入侵防护系统)的核心,不仅检测数据包头部信息,而且检测数据包有效载荷(即数据包内容)。深度数据包检测主要采用特征匹配算法,即将数据包内容与一组预定义的特征规则(即特征规则集)进行匹配,通过扫描数据包,识别出与特征规则集相匹配的数据包。随着网络攻击越来越复杂,例如躲避攻击、变型攻击的出现,单纯的字符串难以精确描述复杂的网络攻击行为特征。由于正则表达式具有灵活、高效等特点,目前许多安全产品采用正则表达式代替字符串表示攻击数据包的特征规则。正则表达式匹配算法主要基于NFA(NondeterministicFiniteAutomaton,非确定有限自动机)和DFA(DeterministicFiniteAutomaton,确定有限自动机)实现,基于DFA的正则表达式匹配算法,从初始状态开始,对数据包的字符流进行匹配,匹配完成之后,如果产生了接受状态的匹配结果,则匹配成功,否则匹配失败。现有技术中,利用嵌入式存储器技术,例如ASIC(专用集成电路)技术、FPGA(现场可编程门阵列)技术、NP(网络处理器)技术、TCAM(三重内容寻址存储器)技术等,提供了面向硬件实现的正则表达式匹配算法以提高吞吐量。例如,在FPGA上实现NFA以进行正则表达式的匹配,提高深度数据包检测的吞吐量;在FPGA上实现DFA,与在FPGA上实现NFA相比,在吞吐量方面有很大的提高;在TCAM上实现DFA以进行简单正则表达式的匹配等。DFA的存储空间是由DFA状态个数和每个DFA状态的迁移边条数决定的。目前的DFA压缩算法主要分为两种类型:状态压缩算法和迁移边压缩算法。迁移边压缩算法是研究如何通过减少冗余迁移边以压缩DFA的存储空间开销,例如基于D2FA和基于CD2FA的正则表达式匹配算法,通过引入默认迁移边的概念,将两个DFA状态中,经过相同字符到达同一DFA状态后的边去除一条从而减少迁移边的条数。状态压缩算法是研究如何通过减少冗余DFA状态以压缩DFA的存储空间开销,例如基于状态融合的DFA正则表达式匹配算法,通过添加标签将不等价DFA状态合并为一个DFA状态从而减少DFA状态的个数。对于正则表达式的匹配速度方面,主要是采用并行的正则表达式匹配算法。并行的正则表达式匹配算法用来加快匹配速度,利用猜想的思想,通过并行和验证从而加快正则表达式的匹配速度。由于NIDS和NIPS的特征规则集中存在着大量的星项“*”、长度限制“{}”、点项“.”等,使得正则表达式的DFA状态个数呈二次项甚至指数增长,从而导致正则表达式在转换成为DFA的过程中可能产生数以万计的DFA状态,进一步阻碍DFA的实现。造成DFA的存储空间较大的主要原因在于:1、在DFA状态方面,由于正则表达式中使用了许多语义丰富的符号,例如“*”、“{}”、“.”等,DFA需要大量的DFA状态记录部分匹配结果,导致DFA状态爆炸;2、在迁移边方面,对于ASCII字母表,每个DFA状态需要256条迁移边,导致DFA状态的迁移边表很大。而正则表达式的长度限制部分会使得DFA状态呈指数增长,消耗大量的存储空间,进而阻碍DFA的构建,影响NIDS和NIPS的性能,甚至导致NIDS和NIPS无法提供服务。针对DFA无法构建的问题,可以采用重写规则、分割正则表达式、计数器和迁移边历史记录等方法解决。所述的重写规则,例如将P1“^A+[A-Z]{j}”重写为P2“^A[A-Z]{j}”;将P1“.*AB[A-Z]{j}”重写为P2“([^A]|A[^B]|AB[A-Z]{j-1}[^(A-Z)])*AB[AZ]{j}”。通过该方法,可以减少转化后的DFA的存储空间消耗。现有技术中,一般将DFA状态爆炸问题分为三类:Insonia(不眠症),正常数据包只访问前几个DFA状态,大部分DFA状态不访问;Amnesia(健忘症),由于星项的存在,使得DFA状态呈二次项增长;Acalculia(计算力缺失症),由于长度限制的存在,使得DFA状态呈指数增长。通过构建prefix-surfixDFA可以将正则表达式分割成前后两部分,来分别构建DFA,并保持前部DFA处于活跃状态,后部DFA在需要时被激活,从而减少存储空间并加快匹配速度。H-FA(History-FiniteAutomaton,历史有限自动机)记录匹配过程中出现的星项,通过一个历史记录减少DFA状态。H-cFA(History-countingFiniteAutomaton,历史计数有限自动机)对出现的长度限制进行计数以解决DFA状态爆炸问题。Hybrid-FA为了防止NFA到DFA转化时DFA状态的指数增长,同样将正则表达式分割为两段,并分别构建Head-FA和Tail-FA,分界的标识为当遇到包含星项或者长度限制的正则表达式时,将该正则表达式分为两部分,在需要时激活Tail-FA,这样减少了存储空间也可以进行并行匹配。La-FA(LookaheadFA)将正则表达式按照复杂程度进行分割,并调整分段次序,然后重新构造DFA。通过分析DFA状态爆炸原因,XFA(eXtendFiniteAutomaton,扩展有限自动机)在DFA中加入某些辅助变量包括比特位和计数器,使用变量记录中间的匹配结果,从而减少很多额外的DFA状态。Counting-FA通过引进计数器减少因为长度限制导致的正则表达式的DFA状态爆炸问题。现有技术中,通过在FPGA上实现NFA能够进行正则表达式的匹配,提高深度数据包检测的吞吐量,但是无法达到目前高速网络的处理要求。通过在FPGA上实现DFA,与在FPGA上实现NFA相比,在吞吐量方面有很大的提高,但是特征规则数受到了限制。虽然采用TCAM实现了简单正则表达式的DFA,但由于TCAM具有价格昂贵,集成度低等缺点,难以对大规模特征规则集采用。由此本专利技术人在专利技术过程中发现,基于传统的NFA和DFA的正则表达式匹配算法都无法满足高性能需求。而且随着特征规则集的快速增长,基于传统的NFA和DFA的正则表达式匹配算法缺乏可伸缩性,无法适应高速网络。因此,高性能深度数据包检测的关键是设计一种快速且存储高效的正则表达式匹配算法。又因为NFA的匹配速度无法满足高速网络性能要求,所以目前研究如何改变这一状况的重点主要围绕DFA而展开。状态压缩算法和迁移边压缩算法最主要的特点是针对一个假设前提:如果正则表达式能被正确的转换为DFA。但实际上,由于现在的NIDS和NIPS的特征规则集中包含大量的长度限制,使得正则表达式的DFA状态呈指数增长,从而阻碍了DFA的构建。基于DFA可以被构建的前提下的正则表达式匹配算法,对于包含复杂项的正则表达式导致DFA无法被构建时无法运用。在正则表达式匹配时,XFA在进行状态迁移的同时,需要执行迁移边或者DFA状态上的指令使变量记录匹配结果,因此需要付出一些指令执行开销。Hybrid-FA、Count本文档来自技高网...
一种确定有限自动机的构建方法及装置

【技术保护点】
一种确定有限自动机的构建方法,其特征在于,包括:针对特征规则集中包含长度限制的正则表达式,按照长度限制的出现位置进行分割与合并处理,将所述正则表达式的头尾部和长度限制部分相分离;构建所述正则表达式的确定有限自动机,其中,所述正则表达式的确定有限自动机对所述长度限制部分使用跳跃策略调整匹配顺序,头尾部匹配完成之后使用计数策略对所述长度限制部分进行验证。

【技术特征摘要】
1.一种确定有限自动机的构建方法,其特征在于,包括:针对特征规则集中包含长度限制的正则表达式,按照长度限制的出现位置进行分割与合并处理,将所述正则表达式的头尾部和长度限制部分相分离;构建所述正则表达式的确定有限自动机,其中,所述正则表达式的确定有限自动机对所述长度限制部分使用跳跃策略调整匹配顺序,以减少存储空间需求,加快所述正则表达式的匹配速度,头尾部匹配完成之后使用计数策略对所述长度限制部分进行验证,所述计数策略产生一个计数实例来验证长度限制部分;对所述特征规则集中各正则表达式的确定有限自动机进行合并处理,得到所述特征规则集的确定有限自动机;所述特征规则集的确定有限自动机维护的状态表中,状态类型包括正常状态、跳跃状态、触发状态和接受状态,其中:在正常状态下,根据该状态的迁移边表确定下一状态;所述跳跃状态用于激发对长度限制部分使用跳跃策略;所述触发状态用于激发对长度限制部分使用计数策略;所述接受状态指示在特征规则集中存在一个匹配的正则表达式。2.如权利要求1所述的方法,其特征在于,还包括:根据所述特征规则集的确定有限自动机对数据包进行匹配,如果产生了接受状态的匹配结果,确定所述数据包为攻击数据包,否则,确定所述数据包为正常数据包。3.如权利要求2所述的方法,其特征在于,根据所述特征规则集的确定有限自动机对数据包进行匹配过程中,到达一个跳跃状态时,记录所述数据包的当前位置,在数据包的剩余字符流中以当前位置为起点跳过对应的长度限制的重复基数所指示数量的字符;并判断跳跃后的到达位置上的字符是否与对应的长度限制的下一字符相一致,如果是,进入下一状态,否则,返回上一状态。4.如权利要求2所述的方法,其特征在于,根据所述特征规则集的确定有限自动机对数据包进行匹配过程中,到达一个触发状态时,使用一个用于记录已...

【专利技术属性】
技术研发人员:曾彬王焕云张大方吴达志
申请(专利权)人:中国移动通信集团湖南有限公司
类型:发明
国别省市:

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

1