一种基于正则表达式的深度报文检测方法

文档序号:8433819阅读:636来源:国知局
一种基于正则表达式的深度报文检测方法
【技术领域】
[0001]本发明属于网络安全技术领域,具体涉及一种基于正则表达式的深度报文检测方法。
【背景技术】
[0002]随着互联网的发展,网络对人们的生活影响越来越大尤其是近年来随着新应用和新业务的不断涌现,互联网得到了更广泛的发展,成了人们工作、学习和娱乐的一部分,生活网络化成了最为显著的时代特征。
[0003]然而,网络就像一把双刃剑,在便利人们生活的同时,也带来了许多的问题,网络安全问题是其中形势比较严峻的一个。网络病毒、恶意代码、垃圾邮件等不良信息恣意传播,进而扰乱了网络的秩序,影响了网民的生活,甚至威胁到了国家的安全,网络安全问题日益突出。
[0004]面对以上问题,首先需要应用的就是深度报文检测技术,通过检测发现网络中的恶意数据,采用阻断,报警等方式杜绝安全隐患。另外,利用深度报文检测区分出网络承载的业务类型,通过流量控制和资源优化等方法提供精细化的服务,即提高了网络的利用率又能满足用户的体验。因此,深度报文检测技术在网络的发展中具有举足轻重的作用。
[0005]现阶段正则表达式匹配实现方式基本都是基于软件的方式,而通用处理器的发展远远不能跟上网络数据流量的增长速度,即使采用先进的多核处理器来进行正则表达式匹配,也很难达到千兆或千兆以上的处理流量。正则表达式匹配引擎的匹配吞吐率成为其应用的一个瓶颈。并且相当一部分正则表达式库相当复杂,而且其中的规则会不断的更新或者升级。每一个版本的正则表达式库都需要大量的人力去开发,而每次更新后都需要再进行开发,因此正则表达式的实现非常复杂。这些问题都制约着深度报文检测技术的发展。

【发明内容】

[0006]本发明针对现有技术存在网络安全问题以及现阶段正则表达式匹配实现方式基本都是基于软件的方式,而通用处理器的发展远远不能跟上网络数据流量的增长速度,即使采用先进的多核处理器来进行正则表达式匹配,也很难达到千兆或千兆以上的处理流量等问题,提出一种基于正则表达式的深度报文检测方法。
[0007]本发明的技术方案是:一种基于正则表达式的深度报文检测方法,构建一个硬件环境,该硬件环境包括:协议检测模块(101)、流表项维护模块(102)、格式封装模块(103)、数据发送模块(104 )、配置接口模块(110)、正则表达式模块(105 )、数据接收模块(106 )、格式解封装模块(107 )、流量整形模块(108 )、结果输出模块(109 )、外部储存器模块(111);
基于环境的正则表达式的深度报文检测匹配查找方法步骤如下:
步骤201:协议检测模块(101)对进入系统报文进行协议检测,如果有错误则丢弃,如果没有错误,则提取协议信息并且将数据传送到流表项维护模块(102)执行步骤二 ;
步骤202:流表项维护模块(102)根据到达报文的五元组信息,对整个表项空间进行管理和维护,进而获得到达报文的流信息,并将流信息和报文送达格式封装模块(103);
步骤203:格式封装模块(103)对报文进行格式头转换并按照正则表达式模块的处理格式要求,对报文进行数据格式封装,之后将封装好的数据传送到数据发送模块(104);
步骤204:数据发送模块(104)将数据封装成MAC帧,再通过1G高速接口将MAC帧传送给正则表达式模块(105);
步骤205:正则表达式模块(105)根据预先定义的规则集对数据包的内容进行检测和匹配,并将报文和匹配结果返回至数据接收模块(106);
步骤206:数据接收模块(106)通过1G高速接口接收由正则表达式模块105返回的数据;
步骤207:格式解封装模块(107)从接收到的数据中解析出原始二层帧和匹配结果;步骤208:流量整形模块(108)根据用户配置的阀值对数据流进行整形使数据流尽可能趋于平稳;
步骤209:结果输出模块(109)将原始查表报文和匹配结果交付给用户,由用户根据匹配查找结果,对报文进行自定义操作。
[0008]所述的系基于正则表达式的深度报文检测方法,所述规则表项维护的流程步骤如下:
步骤301:由用户自定义匹配规则表项;
步骤302:送入配置接口模块(I 10);
步骤303:根据用户自定义的匹配规则表项对配置接口模块(110)中的规则表项进行生成、更新或删除操作;
步骤304:将维护之后的匹配规则表项送至正则表达式匹配模块(105);
所述的基于正则表达式的深度报文检测方法,所述协议检测模块(101)实现协议检测方法包括以下步骤:
步骤401:将发送报文存入协议检测预处理缓存;
步骤402:将报文从预处理缓存中读出,检测报文是否正确,如果正确则执行步骤403,如果错误则将报文直接丢弃;
步骤403:对正确报文的协议进行分析,记录包长,将对小于64字节的报文进行填充; 步骤404:提取报文五元组信息;
步骤405:将报文存入协议检测结果缓存。
[0009]所述的基于正则表达式的深度报文检测方法,所述流表项维护模块(102)实现流表项维护方法包括以下步骤:
步骤501:对报文的五元组信息流进行分析查找;
步骤502:检测是否有相应的流表项,如果有执行步骤504,如果无则执行步骤503 ; 步骤503:根据五元组信息生成新的流表项,然后执行步骤六;
步骤504:根据时间戳判决步骤502的流表项送是否超时,如果是,执行步骤505,否则执行步骤506 ;
步骤505:将超时的流表项进行删除操作,将该流表项送至格式封装模块103 ;
步骤506:更新流表项统计的包长,包个数及时间戳;
步骤507:输出24字节的流状态索引。
[0010]所述的基于正则表达式的深度报文检测方法,所述格式封装模块(103)实现格式封装步骤如下:
步骤601:将报文存入格式封装预处理缓存;
步骤602:将原始报文从格式封装预处理缓存中读出,并对报文格式头进行分析;
步骤603:根据流信息和正则表达式模块对格式头的要求构造格式头;
步骤604:根据构造的格式头对原始报文进行格式头转换和封装;
步骤605:将格式封装之后的报文存入格式封装结果缓存。
[0011]所述的基于正则表达式的深度报文检测方法,所述格式解封装模块(107)实现格式解封装的步骤如下:
步骤701:将返回数据存入格式解封装预处理缓存;
步骤702:将数据从预处理缓存中读出,从数据中剥离出匹配结果头,还原出原始二层帧;
步骤703:将匹配结果存入匹配结果缓存,将原始二层帧存入帧缓存。
[0012]所述的基于正则表达式的深度报文检测方法,所述协议检测模块(101),用于检测报文的有效性,并提取分析报文的五元组协议信息,并将五元组信息及数据流传递给流表项维护模块;
所述流表项维护模块(102),用于维护外部存储模块中流表项的生成、删除、更新和维护控制;
所述格式封装模块(103),对报文进行格式头转换和封装,使报文符合正则表达式模块匹配格式的要求,并把封装后的报文送入数据发送模块;
所述数据发送模块(104),通过1G高速接口将数据传给正则表达式模块;
所述正则表达式匹配模块(105),根据预先定义的规则集对数据包的内容进行检测和匹配,并将报文和匹配结果返回至数据接收模块;
所述数据接收模块(106),通过1G高速接口接收由正则表达式模块返回的数据; 所述格式解封装模块(107),从接收到的数据中解析出原始二层帧和匹配结果;
所述流控整形模块(108),根据用户配置的阀值对数据流进行整形,使不平稳的数据流趋于平稳;
所述结果输出模块(1
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1