[发明专利]一种多条正则表达式的增量分组方法有效
申请号: | 201010611580.X | 申请日: | 2010-12-17 |
公开(公告)号: | CN102073530A | 公开(公告)日: | 2011-05-25 |
发明(设计)人: | 李锋伟;云晓春;杜跃进;汪立东;陈训逊;包秀国;杜翠兰;王勇;薛晨 | 申请(专利权)人: | 国家计算机网络与信息安全管理中心;曙光信息产业(北京)有限公司 |
主分类号: | G06F9/45 | 分类号: | G06F9/45 |
代理公司: | 北京安博达知识产权代理有限公司 11271 | 代理人: | 徐国文 |
地址: | 100029*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 正则 表达式 增量 分组 方法 | ||
技术领域
本发明涉及网络安全领域,具体涉及一种增量分组编译正则表达式的方法。
背景技术
随着网络技术的不断发展,网络安全问题日益凸显,内容安全也越来越受到重视。网络安全系统功不可没,它防止了有害信息的网络传播,它防止了国家或企业机密信息的网络泄漏。主要的网络安全系统有入侵检测系统(Intrusion Detection System,IDS)和入侵防御系统(Intrusion PreventionSystem,IPS),等等。通过对入侵行为的检测,来加强信息安全防御能力。现有的IDS或者IPS中,例如Snort、BRO等,多数采用了设定规则的方式对网络数据包进行包头或者/和内容的检查,符合指定规则的数据包,根据规则对应的处理办法进行处理,或是转发,或是日志。另外,网络安全还有一个重要的技术是病毒检测,通过对数据包进行病毒特征的检测,检测到数据包不上传主机,从而避免主机受到病毒的入侵。由于病毒种类繁多,这类病毒特征库非常庞大。可见,通过规则和特征进行匹配的方法,将成为影响这类系统性能的重要因素。在很多系统中,也采用了正则表达式的方式来表达规则和特征,通过较少的正则表达式浓缩更多的规则和特征。
但是利用正则表达式规则,进行对比匹配,会消耗大量的系统资源,从而降低系统的性能。当正则式条数很大时,系统的性能将受到严重影响,因此许多研究开始通过定制的ASIC(Application-specific Integrated Circuit)或者定制的FPGA(Field-programmable Gate Array)来协同主机进行正则表达式的匹配工作,以减轻主机系统的负担,带来提升整个系统的性能的结果。
利用正则表达式进行对比匹配,通常会将其转换为确定有限自动机(Deterministic Finite Automata,DFA)或者非确定有限状态机(Nondeterministic Finite Automation,NFA),利用状态的跳转来进行匹配。通常NFA的方法需要需要回溯,匹配速度慢;而DFA的方法不需要回溯,匹配速度非常快,但是其空间的消耗很大,对于规则数量较多时,会引起空间的爆炸。因此,利用定制的ASIC和FPGA都面临硬件面积有限,而规则数量多,将面临硬件无法存储这么多规则生成的DFA的问题。
利用DFA进行正则式的匹配,实时性非常好,但正则式规则数量多时,将带来存储空间的爆炸。假设有n条正则式,其计算的时间复杂度是0(1),但其空间复杂度是0(2n)。利用FPGA去做协同处理的话,如果规则生成的DFA空间超过了硬件支持的空间,这将有一些规则无法进行片上处理。
发明内容
本发明为解决上述问题利用了FPGA的并行处理特性,采用多路引擎对正则式进行识别。
一种多条正则表达式的增量分组方法,步骤如下:
A、读取N条正则式;
B、生成两两间状态数之和,为增量编译的依据;
C、根据两两间状态数之和,采用冒泡法进行排序;
D、增量编译前,初始化变量ruler_no=0,old_ruler_no=0和i=0;
E、设置第i组的状态阈值,根据硬件板卡上各块空间的大小,设置该组支持状态数的阈值;
F、按照步长STEP,以该变量递增方式更新ruler_no;如果(ruler_no+STEP)大于等于n,则ruler_no等于n,如果小于n,则ruler_no设置为(ruler_no+STEP);
G、编译[old_ruler_no,ruler_no)之间规则,得到DFA的状态数;
H、此时状态数和该组的状态阈值进行比较,如果小于则判断ruler_no是否等于n,等于则到步骤12保存该组DFA[i],不等于则返回步骤F;如果等于则到步骤L保存该组DFA[i];如果大于则进行步骤J;
I、ruler_no减1;
J、编译[old_ruler_no,ruler_no)之间规则,得到DFA的状态数;
K、此时状态数和该组的状态阈值进行比较。如果小于等于则到步骤L保存该组DFA[i];如果大于则会对步骤J;
L、保存该组DFA[i],保存编译好的合适硬件空间的DFA;
M、判断是否结束,当i大于等于硬件空间的最大分组数MAX_GROUP_NUM时,或者所有规则已经编译完成ruler_no等于n时,退出;否则i加1后,继续回到步骤E。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国家计算机网络与信息安全管理中心;曙光信息产业(北京)有限公司,未经国家计算机网络与信息安全管理中心;曙光信息产业(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010611580.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种语音分离电路及外置型语音分离器
- 下一篇:一种电池针刺试验机