[发明专利]一种数据包过滤规则集处理方法及数据包匹配方法在审
申请号: | 201510630235.3 | 申请日: | 2015-09-29 |
公开(公告)号: | CN105357177A | 公开(公告)日: | 2016-02-24 |
发明(设计)人: | 王雨濛;王宇平 | 申请(专利权)人: | 西安电子科技大学 |
主分类号: | H04L29/06 | 分类号: | H04L29/06 |
代理公司: | 西安智萃知识产权代理有限公司 61221 | 代理人: | 李炳辉 |
地址: | 710071 陕西省*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据包 过滤 规则 处理 方法 匹配 | ||
技术领域
本发明涉及网络安全技术领域,具体涉及一种数据包过滤规则集处理方法及数据包匹配方法。
背景技术
随着针对应用层的网络攻击日益增多,传统网络防火墙已不能满足需求。因此产生了入侵检测系统(IntrusionDetectionSystem,简称IDS),该系统由一个专用硬件平台和在其上运行的软件构成。IDS可以监控网络或系统活动,检测是否存在恶意活动或违法规则的行为,如果检出则会向管理单元提交报告。
基于网络的IDS(Network-basedIDS,简称NIDS)一般被部署在一个监控结点上,网络上不同设备产生的输入和输出流量都会经过此监控结点。NIDS通常将经过它的流量与已知攻击库进行匹配,以实现对整个子网产生的流量进行监控。一旦鉴别出攻击或异常行为,相应的警报就会被发送给管理员。
深度包检测(DepthPacketInspection,简称DPI)是NIDS的核心技术。DPI技术可以对OSI模型中2-7层的数据包进行检测,尤其是对数据包中所包含的数据体的检测。在传统DPI系统中,已知攻击库通常被称为过滤规则集(以下简称规则集),它由许多条过滤规则(以下简称规则)构成。一条规则描述了一类恶意数据包的特征。任何经过NIDS的数据包都被视为一个字符串,并与规则集中的每一条规则进行匹配,若匹配成功则认为该数据包有害。
在传统DPI技术中,过滤规则都是纯文本形式的。一条文本形式的过滤规则为一个字符串,表示一类有害数据包所转换成的字符串中一定会包含的子串。然而,由于有害数据包种类的急剧增加以及大量变种的产生,这种纯文本形式的过滤规则已经不能适应新的网络环境。
在这种形式下,出现了正则表达式(RegularExpression,简称RegExp)形式的过滤规则,即一条规则就是一个正则表达式。大多数新型NIDS的DPI技术均支持这类规则。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。若规则的正则表达式与数据包匹配成功,则意味着该规则有害。该由于正则表达式的灵活性、兼容性和通用性,正在逐渐成为主流的匹配规则形式。
为了便于在NIDS硬件平台上实现高速正则表达式匹配算法,通常的做法是将正则表达式编译为确定性有限自动机(DefiniteFiniteAutomaton,简称DFA)。一条正则表达式编译得到的DFA若接受一个数据包字符串,就代表该正则表达式与数据包匹配成功。尽管利用DFA技术可以在极短时间内完成数据包与正则表达式的匹配,但随着规则集规模的不断增长,对全部DFA逐一进行匹配的方式仍然严重地降低了NIDS的性能。
为了解决DFA数量过多的问题,可以利用DFA本身的特性将多个DFA合并为一个DFA。合并后的DFA能够接受合并前所有DFA能接受的字符串,并可以通过匹配的终态确定是合并前的哪一个DFA与字符串匹配。
由于DFA合并技术的原理,当具有一些特定的结构的两个或多个DFA进行合并时会发生“状态爆炸”现象,即合并后的DFA状态数呈几何级数增长,占用大量的存储空间。因此在存储空间有限的约束下,无法将一个规则集编译得到的所有DFA合并为一个DFA,因此产生了基于分组DFA的数据包过滤技术。基于分组DFA的数据包过滤技术是先对众多DFA分组,再将每个分组内的DFA合并为一个DFA。
基于分组DFA的数据包过滤技术含有两个阶段,第一阶段称数据包过滤规则集处理阶段,第二阶段称为数据包匹配阶段。
第一阶段分为三个步骤:1)将规则集中的每一条规则都编译为一个DFA,形成DFA列表,并从每个DFA中提取出一个或多个指纹。指纹是一个长度为m的字符串,m为预先设定的正整数。从一个DFA中提取出的指纹表示能够与该DFA匹配上的所有数据包中都一定会含有的子串;2)对DFA列表中的DFA进行分组,并将分为一组的DFA合并为一个“分组DFA”。分为一组的DFA都含有的一个多或个指纹构成分组DFA的指纹列表;3)从每个分组DFA的指纹列表中选出一个指纹作为该分组DFA的代表指纹,并以代表指纹为索引将所有分组DFA存入哈希表。这个哈希表称为指纹哈希表。
传统的基于分组DFA的数据包过滤规则集处理方法包括如下步骤:
步骤1:将给定规则集中的每一条规则分别编译为一个DFA。具体采用通用的正则表达式编译算法进行编译。
步骤2:将DFA转换为控制流图,然后通过状态节点之间的支配关系在每一个DFA中查找必经路径,并从其必经路径中提取出所有指定长度的指纹,作为该DFA的指纹集合。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安电子科技大学,未经西安电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510630235.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种具有复合治疗功能的治疗仪
- 下一篇:活动式肢体抬高器