[发明专利]一种确定有限自动机的构建方法及装置有效
| 申请号: | 201110412829.9 | 申请日: | 2011-12-12 |
| 公开(公告)号: | CN103166802A | 公开(公告)日: | 2013-06-19 |
| 发明(设计)人: | 曾彬;王焕云;张大方;吴达志 | 申请(专利权)人: | 中国移动通信集团湖南有限公司 |
| 主分类号: | H04L12/26 | 分类号: | H04L12/26;H04L12/24 |
| 代理公司: | 北京同达信恒知识产权代理有限公司 11291 | 代理人: | 郭润湘 |
| 地址: | 410015 湖*** | 国省代码: | 湖南;43 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 确定 有限 自动机 构建 方法 装置 | ||
技术领域
本发明涉及互联网领域,尤其涉及一种确定有限自动机的构建方法及装置。
背景技术
深度数据包检测是NIDS(Network Intrusion Detection System,网络入侵检测系统)和NIPS(Network Intrusion Protection System,网络入侵防护系统)的核心,不仅检测数据包头部信息,而且检测数据包有效载荷(即数据包内容)。深度数据包检测主要采用特征匹配算法,即将数据包内容与一组预定义的特征规则(即特征规则集)进行匹配,通过扫描数据包,识别出与特征规则集相匹配的数据包。
随着网络攻击越来越复杂,例如躲避攻击、变型攻击的出现,单纯的字符串难以精确描述复杂的网络攻击行为特征。由于正则表达式具有灵活、高效等特点,目前许多安全产品采用正则表达式代替字符串表示攻击数据包的特征规则。正则表达式匹配算法主要基于NFA(Nondeterministic Finite Automaton,非确定有限自动机)和DFA(Deterministic Finite Automaton,确定有限自动机)实现,基于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状态呈指数增长。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国移动通信集团湖南有限公司,未经中国移动通信集团湖南有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110412829.9/2.html,转载请声明来源钻瓜专利网。





