数据包内容的分析处理方法及系统
技术领域
本发明涉及数据包的分析处理方法及系统,特别涉及一种数据包内容的分析处理方法及系统,属于通信领域。
背景技术
现有的通信网络中多采用多层协议栈体系结构,例如TCP/IP网络中采用的是四层协议栈体系结构,自上而下依次为:应用层、传输层、网络层、以及链路层。因此现有通信网络中传输的数据包也通常为多层协议封装格式,即在数据包的载荷之外依次封装各层协议栈所对应的协议头。例如TCP/IP网络中数据包的格式如图1所示,在数据包的载荷之外依次封装应用层协议头、传输层协议(TCP或UDP)头、网络层协议(IP)头、以及链路层协议头。
对数据包的内容即各层协议头以及载荷进行分析处理在各种数据包处理设备中有着广泛的应用和需求,例如:
1、入侵检测系统(Intrusion Detection System,简称标识S)以及入侵抵御系统(Intrusion Prevention System,简称IPS)是基于内容进行深度检测的产品,通过对风险(如backdoor、漏洞等)的特征描述的检测从而确定该风险的存在,其特征可能在数据包的载荷或者各层协议头中体现,因此需要对数据包的内容进行相应的分析处理;
2、基于应用的带宽管理设备,其首要的是识别出细粒度的应用,随着网络的不断发展,基于网络的应用也不断的丰富,如基于传统TCP/IP的4层协议的应用;还可能有基于原4层协议之上的应用;各种应用还可能封装于不同的隧道协议中;这都需要带宽管理设备能够对数据包的各层协议头进行分析处理;
3、反病毒(Anti-Virus)产品,也是一种基于内容的深度检测产品,是通过对不同病毒的特征定义从而标识数据包的协议头或载荷中的病毒的存在,因此需要对数据包的载荷和协议头进行相应的分析处理。
现有技术中对数据包的内容进行分析处理时,通常是对单个数据包进行识别和分析处理,并且通常是根据固定端口来识别数据包的协议头,该方法的不足之处在于:
1、针对单个数据包进行分析处理,而未针对数据流进行分析处理,因此分析的精确度不高,容易误报;
2、不具有广泛适用性,对不同的数据包处理设备需要重新开发;
3、不能识别多种复杂的协议,扩展性不强。
发明内容
本发明的目的是为克服上述现有技术的缺陷,提供一种数据包内容的分析处理方法及系统,能够识别多种复杂的协议、攻击和应用,有效地提高协议分析的精确度,减少误报,提高处理性能,并且具有广泛的适用性。
为实现上述发明目的,本发明提供了一种数据包内容的分析处理方法,包括:对接收的数据包进行预处理(包括对数据包二层头的剥离、IP数据包重组、以及数据包五元组的提取等操作)后,建立对数据流的跟踪,并进行数据包的重组和保序;将数据流的内容与预先设定的特征库中的特征进行匹配比对,获得数据流对应的特征标识,所述特征标识用于一一对应地唯一标识预设的数据包特征(如攻击特征、协议特征、病毒特征、URL特征等);根据所述特征标识执行预先设定的对应的操作。
在上述技术方案中,通过在接收到数据包后建立对数据流的跟踪,并在后续针对数据流进行内容识别和相应的处理,而非现有技术中的针对单个数据包进行内容识别及处理,从而有效地提高了协议分析的精确度,减少了误报。
同时,上述技术方案中,还通过统一的特征标识来对应不同的数据包特征(如攻击特征、协议特征、病毒特征、URL特征等),根据特征标识对应的特征执行预先设定的对应的操作,例如带宽管理、流量统计等操作,因此为后续处理提供了统一的基础平台,提高了适用性和扩展性,并且统一的特征标识方式有利于提高系统整体处理性能。
优选地,上述技术方案中,在所述将数据流的内容与预先设定的特征库中的特征进行匹配比对之前还包括:建立并维护数据流对应的协议特征状态机;在所述获得数据流对应的特征标识之后还包括:当所述特征标识包括协议特征的特征标识时,根据该协议特征获取数据流的协议并调整协议特征状态机的状态,并根据所述协议特征状态机的状态执行预先设定的对应的操作。
上述技术方案通过针对数据流建立并维护对应的协议特征状态机,并将数据流的内容与预先设定的特征库中的特征进行匹配比对,获得数据流对应的特征标识,所述特征标识可包括攻击特征标识、协议特征标识、病毒特征标识和/或URL特征标识,以及其它预先设定的特征标识,从而将协议识别、攻击识别、内容识别以特征标识的方式统一进行识别,能够识别多种复杂的协议、攻击和应用,具有广泛的应用性。
同时,上述技术方案通过根据所识别的特征推进协议特征状态机的协议层次和状态,从而能够更精确和更细粒度地对数据流的协议、攻击、内容等进行识别,而非现有技术中常用的固定端口识别方式,因此能够进一步有效地提高协议分析的精确度,减少误报。
优选地,在上述技术方案中,当所述特征标识包括协议特征的特征标识时,在所述获得数据流对应的特征标识之后还包括:根据所述特征标识对数据流进行协议解码,并将协议解码后的数据流的内容与预先设定的特征库中的特征进行匹配比对,获取对应的特征标识,根据该特征标识调整协议特征状态机的状态,并执行预先设定的对应的操作。
在所述将数据流的内容与预先设定的特征库中的特征进行匹配比对之后还可包括:将数据流的内容与预先设定的特定的特征进行匹配比对,以及根据预先设定的处理规则对匹配比对的结果进行综合分析和判断。
当所述特征标识包括协议特征对应的特征标识时,所述根据所述特征标识执行预先设定的对应的操作可具体包括:根据所述数据流的协议特征以及网络属性,查找预设的流量分类表,如果查到对应的表项则更新该表项,如果未查到对应的表项则建立对应的新的表项;和/或根据所述协议特征,查找预设的流量分类表,获得该数据流对应的流分类标识,并根据所述流分类标识,执行预先设定的对应的带宽限制操作。
为实现发明目的,本发明还提供了一种数据包内容的分析处理系统,包括:数据包预处理模块,用于对接收的数据包进行预处理;流引擎模块,与所述数据包预处理模块连接,用于建立对数据流的跟踪以及数据包的重组和保序;特征库模块,用于保存预先设定的特征及特征标识,所述特征标识用于一一对应地唯一标识预设的数据包特征(如攻击特征、协议特征、病毒特征、URL特征等);内容搜索模块,与所述特征库模块连接,用于将数据流的内容与特征库模块中保存的特征进行匹配比对,获得数据流对应的特征标识;深度识别模块,与所述内容搜索模块以及流引擎模块连接,用于:调用内容搜索模块对数据流的内容进行搜索获得对应的特征标识,以及根据该特征标识对应的特征执行预先设定的对应的操作。
在上述技术方案中,在数据包预处理模块对接收到的数据包进行预处理后,通过流引擎模块建立对基于会话的数据流的跟踪,以及完成数据包的重组和保序操作,从而使得后续的深度识别模块能够针对数据流进行内容识别和处理,而非现有技术中常用的针对单个数据包的内容识别和处理,因此能够有效地提高协议分析的精确度,减少误报。
同时,上述技术方案中还通过预设的特征库中具有统一的特征标识的特征对数据流中的协议特征、病毒特征、攻击特征及统一资源定位符(UniformResource Location,简称URL)特征进行匹配比对,从而能够识别多种复杂的协议、攻击和应用,具有广泛的应用性,并且能够提高系统的整体处理性能。
优选地,上述技术方案中,所述深度识别模块可为用于对流引擎模块建立跟踪后的数据流建立对应的协议特征状态机、并根据该特征标识对应的协议特征获取数据流的协议并调整协议特征状态机的状态、以及根据该特征标识对应的特征和协议特征状态机的状态执行预先设定的对应的操作的深度识别模块。
上述技术方案通过深度识别模块建立数据流对应的协议特征状态机,并调用内容搜索模块将数据流的内容与预设的特征库中的特征进行匹配比对,根据获取的特征调整协议特征状态机的状态以及按照预设的策略执行相应的操作,而非现有技术中的通过固定端口识别协议,从而进一步地提高了协议分析的精确度。
优选地,上述技术方案中,所述特征库模块可包括:攻击特征库模块,用于保存对数据流中的攻击进行识别的攻击特征;和/或协议特征库模块,用于保存对数据流中的协议进行识别的协议特征;和/或病毒特征库模块,用于保存对数据流中的病毒进行识别的病毒特征;和/或URL特征库模块,用于保存对数据流中的特定URL进行识别的URL特征。
优选地,上述技术方案中还可包括协议预处理模块,与所述深度识别模块连接,用于根据所述特征标识对应的协议特征,对深度识别模块处理后的数据流进行协议解码,并将协议解码后的数据流重新输入深度识别模块进行处理。
优选地,上述技术方案中还可包括精细检查模块,与所述内容搜索模块以及深度识别模块连接,用于在内容搜索模块对数据流的内容进行搜索之后,将数据流的内容与预先设定的特定的特征进行匹配比对,以及根据预先设定的处理规则对内容搜索模块搜索的结果进行综合分析和判断,并将结果输出给深度识别模块。
优选地,上述技术方案中还可包括策略执行模块,与所述深度识别模块连接,用于根据预先设定的策略以及深度识别模块获得的数据流的特征,对数据流执行对应的处理操作。
优选地,上述技术方案中还可包括:带宽管理模块,与所述策略执行模块连接,用于:所述策略执行模块根据预先设定的策略调用所述带宽管理模块,所述带宽管理模块根据所述特征标识对应的数据流的协议特征,查找预设的流量分类表获得对应的流分类标识,并根据该流分类标识执行预先设定的对应的带宽限制操作;和/或流量统计模块,与所述策略执行模块连接,用于:所述策略执行模块根据预先设定的策略调用所述流量统计模块,所述流量统计模块根据所述数据流的协议特征以及网络属性,查找预设的流量分类表,如果查到对应的表项则更新该表项,如果未查到对应的表项则建立对应的新的表项。
综上所述,本发明通过对接收到的数据包建立数据流的跟踪,并将每个数据流中数据包的内容与预设的特征进行匹配比对,获得数据流对应的、用于一一对应地唯一标识预设的数据包特征的特征标识,根据该特征标识按照预设的策略执行相应的操作,从而能够达到识别多种复杂的协议,有效地提高协议分析的精确度,减少误报,提高处理性能,并且具有广泛的适用性的有益技术效果。
附图说明
图1为本发明数据包内容的分析处理方法的原理示意图;
图2为本发明数据包内容的分析处理方法的实施例一的流程示意图;
图3为本发明数据包内容的分析处理方法的实施例一的步骤2的具体实施例示意图;
图4为本发明数据包内容的分析处理方法的实施例二的流程示意图;
图5为本发明数据包内容的分析处理方法的特征库实现方式示意图;
图6为本发明数据包内容的分析处理方法的实施例三的流程示意图;
图7为本发明数据包内容的分析处理方法的实施例四的流程示意图;
图8为本发明数据包内容的分析处理方法的实施例五的流程示意图;
图9为本发明数据包内容的分析处理方法的实施例六的部分流程示意图;
图10为本发明数据包内容的分析处理系统的实施例一的结构示意图;
图11为本发明数据包内容的分析处理系统的实施例二的结构示意图;
图12为本发明数据包内容的分析处理方法的实施例三的结构示意图;
图13为本发明数据包内容的分析处理系统的实施例四的结构示意图;
图14为本发明数据包内容的分析处理系统的实施例五的结构示意图。
具体实施方式
下面结合附图和实施例,对本发明的技术方案做进一步的详细描述。
本发明的基本构思为:针对现有技术中对单个数据包进行协议识别和分析处理因而分析的精确度不高、不能识别多种复杂的协议、并且不具有广泛适用性等缺陷,提供一种数据包内容的分析处理方法及系统,通过建立对数据流的跟踪实现对数据流的协议识别和分析处理,从而提高协议识别和分析处理的精确度;以及通过将协议特征、攻击特征、病毒特征以及URL特征以统一的特征标识来表示,并统一存储在预设的特征库中,将数据流的内容与特征库中保存的特征进行匹配比对,从而大大提高系统的扩展性,使系统具有广泛的适用性;进一步地,基于上述对数据包的内容进行识别和分析处理后可以进行带宽管理、流量统计、策略执行等操作,从而能够应用于需要对数据包的内容进行识别和分析处理的众多领域,具有广泛的适应性,并且能够提高系统的整体处理性能。再进一步地,通过建立数据流的协议特征状态机来提高协议识别和分析处理的精确度。
基于上述发明构思,本发明提供了一种数据包内容的分析处理方法,如图1所示,首先在步骤01中,对接收的数据包进行预处理后,建立对数据流的跟踪,并进行数据包的重组和保序;然后在步骤02中,将数据流的内容与预先设定的特征库中的特征进行匹配比对,获得数据流对应的特征标识,所述特征标识用于一一对应地唯一标识预设的数据包特征;继而在步骤03中,根据所述特征标识执行预先设定的对应的操作。
上述数据包内容的分析处理方法通过在接收到数据包后建立对数据流的跟踪,并在后续针对数据流进行内容识别和相应的处理,而非现有技术中的针对单个数据包进行内容识别及处理,从而有效地提高了协议分析的精确度,减少了误报。同时还通过统一的特征标识来对应不同的数据包特征(如攻击特征、协议特征、病毒特征、URL特征等),根据特征标识对应的特征执行预先设定的对应的操作,例如带宽管理、流量统计等操作,因此为后续处理提供了统一的基础平台,提高了适用性和扩展性,并且统一的特征标识方式有利于提高系统整体处理性能。
如图2所示的实施例一的流程示意图,首先在步骤1中,对接收的数据包进行预处理后,建立对数据流的跟踪,并进行数据包的重组和保序;然后在步骤2中,建立并维护数据流对应的协议特征状态机,并将数据流的内容与预先设定的特征库中的特征进行匹配比对,获得数据流对应的特征标识;继而在步骤3中,根据所述特征标识对应的数据流的协议特征获取数据流的协议并调整协议特征状态机的状态,根据所述协议特征状态机的状态以及所述特征标识对应的特征执行预先设定的对应的操作。
其中,所述步骤2可使用动态更新的特征库,该特征库中保存与固定特征对应的特征标识,该特征标识可用于标识应用协议特征、攻击特征、病毒特征或者URL特征,这样在步骤2中完成特征匹配比对后,通过返回命中的特征协议数组就能够获得对应的数据流对应的协议、攻击、病毒或URL特征,并可据此判断该数据流中是否存在安全风险。
在本实施例一中,通过在接收到数据包后建立对数据流的跟踪,并在后续针对数据流进行内容识别和相应的处理,而非现有技术中的针对单个数据包进行内容识别及处理,从而有效地提高了协议分析的精确度,减少了误报。同时,通过针对数据流建立并维护对应的协议特征状态机,并将数据流的内容与预先设定的特征库中的特征进行匹配比对,获得数据流对应的特征标识,所述特征标识可包括攻击特征标识、协议特征标识、病毒特征标识、URL特征标识,以及其它预先设定的特征标识,从而将协议识别、攻击识别、病毒识别、URL识别等以特征标识的方式统一进行识别,能够识别多种复杂的协议、攻击和应用,具有广泛的应用性。进而,本实施例一通过根据所识别的特征推进协议特征状态机的协议层次和状态,从而能够更精确和更细粒度地对数据流的协议、攻击、内容等进行识别,而非现有技术中常用的固定端口识别方式,因此能够进一步有效地提高协议分析的精确度,减少误报。
进一步地,在所述将数据流的内容与预先设定的特征库中的特征进行匹配比对之后还包括:将数据流的内容与预先设定的特定的特征进行匹配比对,以及根据预先设定的处理规则对匹配比对的结果进行综合分析和判断。图3为上述实施例一的步骤2的具体实施例示意图,由图3可见,在对数据流进行内容分析和特征匹配比对后,判断是否比对获得特定特征对应的特征标识,是则进行精细检查即对于特定的特征进行检查和分析处理。例如对于特定的攻击,其特征除了净荷的固定特征之外,还可能包括部分协议选项特征(如tt1>5),因此通过精细检查能够进一步地对协议选项特征的检测,并且还可进一步地进行综合智能判断,例如同一个数据流同时匹配比对获得两种或两种以上的攻击特征,则可以通过精细检查来综合做出更精确的判断。本领域的普通技术人员应当理解,可以根据具体应用的情况灵活运用精细检查以及设定精细检查所比对的特征,其均应在本发明技术方案所要求保护的范围之内。在精细检查之后判断获得的特征标识是否为协议特征对应的特征标识,是则根据所述特征标识对应的协议特征获取数据流的协议并调整协议特征状态机的状态,例如在TCP三次握手过程中,每次握手动作对应不同的协议特征及特征标识,在获取完成TCP三次握手的动作所对应的特征标识后,调整对应的协议特征状态机的状态为完成三次握手并建立TCP连接,并根据所述协议特征状态机的状态执行预先设定的对应的操作,例如当协议特征状态机的状态为完成三次握手并建立TCP连接时执行预设的复位操作。由上述可知,通过协议特征以及协议特征状态机能够精细地反映通信双方协议推进的状态和层次,从而能够支持细粒度的识别和执行相应操作,有效地提高协议分析的精确度,减少误报。
进一步地,当所述特征标识包括协议特征的特征标识时,在所述获得数据流对应的特征标识之后还可包括:对数据流进行协议解码,并将协议解码后的数据流的内容与预先设定的特征库中的特征进行匹配比对,获取对应的特征标识,根据该特征标识调整协议特征状态机的状态,并执行预先设定的对应的操作。如图4所示的实施例二的流程示意图,与上述实施例一的区别在于:在步骤2与步骤3之间还包括步骤20即判断是否需要协议解码,如果需要则执行步骤21即对数据流进行协议解码,并对解码后的数据流重复执行步骤2,如果不需要则执行步骤3。通过增加该操作,能够对特定协议的数据流进行解码后再进行协议识别和分析处理,例如HTTP协议的URL部分可能采用Unicode或ASCII码进行编码,因此需要在市播出该协议后对数据流进行协议解码并对解码后的数据流重新进行协议识别和内容分析处理,从而保证内容分析处理的完备性。
图5为本发明数据包内容的分析处理方法的特征库实现方式示意图,对于特定的攻击、协议、协议的特定动作以及病毒等均可采用协议特征和净荷特征进行描述和标识,如BT协议我们可以采用”\13Bittorent protocol”特征串进行描述。特征库即是汇集了攻击、协议、协议特定动作、病毒等特征的一个集合,每个攻击、协议、协议的特定动作以及病毒等都唯一对应于一个特征标识,该特征标识是预先设定的。
如图5所示,特征库可包括的典型特征有:攻击特征库,用于识别后门、漏洞、攻击等各种安全威胁;通常来说厂家会在固定的时间发布;协议特征库,部分协议采用固定端口方式是无法识别的,如果知名协议不在知名端口则采用固定端口方式将无法识别,为此需要结合协议特征和净荷特征对协议进行识别,通常来说厂家也会进行不断的更新;病毒特征库,用于识别特定特征的病毒;URL特征库,用于针对特定的URL进行过滤;同时对于上述但不局限于上述内容的各种特征库,在可能的情况下应该允许用户自定义,这些就是特征库的外部来源。
特征库的来源是多样的,但是本质上其都是采用数据包包头特征及数据包净荷特征进行表达,可以采用通用的语言采用文本方式来描述特征库的每一个对象,比如净荷部分采用PCRE表达方式等。在采用软件或者硬件进行内容搜索时,不同厂家的硬件,采用不同的软件的搜索算法等,都要求最终的特征库格式也是不一样的,同时对于厂家的硬件来说,其格式并不是开放的,为此需要为不同的软件搜索算法、不同厂家的硬件提供从采用文本格式的通用特征描述语言转化为软件和硬件可以识别的特征库。本领域的普通技术人员应当理解,其可以根据实际应用场景灵活选择特征库的设定方式,其均应在本发明技术方案所要求保护的范围之内。
图6为本发明数据包内容的分析处理方法的实施例三的流程示意图,与实施例二的区别在于,步骤3可具体为步骤31,即所述执行预先设定的对应的操作可具体包括:根据所述特征标识对应的数据流的攻击特征,执行预先设定的对应的复位TCP连接和/或记录日志等操作。
图7为本发明数据包内容的分析处理方法的实施例四的流程示意图,与实施例二的区别在于,步骤3可具体为步骤32,即所述执行预先设定的对应的操作可具体包括:根据所述特征标识对应的数据流的协议特征,查找预设的流量分类表,获得该数据流对应的流分类标识,并根据所述流分类标识,执行预先设定的对应的带宽限制操作,如对该类协议的总带宽进行限制,或者对特定用户的该协议总带宽进行限制,或者对特定用户的一个该协议的连接进行带宽限制。
图8为本发明数据包内容的分析处理方法的实施例五的流程示意图,与实施例二的区别在于,步骤3可具体为步骤33,即在所述获取数据流的协议之后还可包括以下操作:根据所述数据流的协议特征以及网络属性,查找预设的流量分类表,如果查到对应的表项则更新该表项,如果未查到对应的表项则建立对应的新的表项。通过该操作,在识别出第4层-第7层协议甚至是某个协议的特定动作之后,可以进行细粒度的基于应用的流量统计,而非传统的基于五元组的流量统计。
图9为本发明数据包内容的分析处理方法的实施例六的部分流程示意图,如图所示,在根据特征库中保存的特征对数据流的内容进行匹配比对获得特征标识后,根据该特征标识判断是否有病毒或攻击特征,是则查询该特征对应的预设的用户配置的操作策略,并执行相应的操作,如丢弃数据包、断开数据连接等;否则根据协议特征标识及网络属性查找预设的流量分类表,如果查到相应的表项则更新该表项的内容如数据包字节数等,如果未查到相应的表项则建立对应的新的表项。然后根据协议特征标识查找流量分类表获得对应的流分类标识,根据该流分类标识进行带宽总量限制,并根据流分类标识、协议特征标识、以及数据包中的源IP地址进行针对用户的总带宽、服务带宽、以及特定连接的带宽的限制。
上述实施例三至六进一步提供了基于本发明提供的数据包内容的分析处理方法、在对数据包的特征进行识别分析后进行策略执行、带宽管理、以及流量统计等操作的实施方式,本领域的普通技术人员应当理解:可以根据具体应用情况灵活采用或组合上述实施方式,其均应在本发明技术方案所要求保护的范围之内;并且,本发明提供的数据包内容的分析处理方法可应用于需要对数据包内容进行分析处理的众多领域,只需在特征库中增加具体应用对应的特征及特征标识,在数据包内容识别分析时增加基于该特征的匹配比对,在特征匹配比对后增加该特征相应的处理操作,即可实现该具体应用的需求,上述实施方式均应在本发明技术方案所要求保护的范围之内。
基于上述发明构思,本发明还提供了一种数据包内容的分析处理系统,包括:数据包预处理模块,用于对接收的数据包进行预处理;流引擎模块,与所述数据包预处理模块连接,用于建立对数据流的跟踪以及数据包的重组和保序;特征库模块,用于保存预先设定的特征及特征标识,所述特征标识用于一一对应地唯一标识预设的数据包特征;内容搜索模块,与所述特征库模块连接,用于将数据流的内容与特征库模块中保存的特征进行匹配比对,获得数据流对应的特征标识;深度识别模块,与所述内容搜索模块以及流引擎模块连接,用于:调用内容搜索模块对数据流的内容进行搜索获得对应的特征标识,以及根据该特征标识对应的特征执行预先设定的对应的操作。
上述数据包内容的分析处理系统中,在数据包预处理模块对接收到的数据包进行预处理后,通过流引擎模块建立对基于会话的数据流的跟踪,以及完成数据包的重组和保序操作,从而使得后续的深度识别模块能够针对数据流进行内容识别和处理,而非现有技术中常用的针对单个数据包的内容识别和处理,因此能够有效地提高协议分析的精确度,减少误报。同时还通过预设的特征库中具有统一的特征标识的特征对数据流中的协议特征、病毒特征、攻击特征或URL特征进行匹配比对,从而能够识别多种复杂的协议、攻击和应用,具有广泛的应用性,并且能够提高系统的整体处理性能。
如图10所示,本发明数据包内容的分析处理系统的实施例一包括:数据包预处理模块61,用于对接收的数据包进行预处理;流引擎模块62,与数据包预处理模块61连接,用于建立对数据流的跟踪以及数据包的重组和保序;特征库模块65,用于保存预先设定的特征;内容搜索模块64,与特征库模块65连接,用于将数据流的内容与特征库模块65中保存的特征进行匹配比对,获得数据流对应的特征标识;深度识别模块63,与内容搜索模块64以及流引擎模块62连接,用于:对流引擎模块62建立跟踪后的数据流建立对应的协议特征状态机,并调用内容搜索模块64对数据流的内容进行搜索获得对应的特征标识,根据该特征标识对应的协议特征获取数据流的协议并调整协议特征状态机的状态,以及根据该特征标识对应的特征和协议特征状态机的状态执行预先设定的对应的操作;还包括策略执行模块68,与深度识别模块63连接,用于根据预先设定的策略以及深度识别模块63获得的数据流的特征,对数据流执行对应的处理操作。
其中,内容搜索模块64在实现上通常是一个正则表达式搜索引擎,该引擎可以是纯软件实现,也可以使用FPGA或者ASIC来实现。内容搜索模块也可以实现为一个简单的字符串查找的硬件,如采用HASH表进行查找等。
特征库模块65可包括:攻击特征库模块,用于保存对数据流中的攻击进行识别的攻击特征;和/或协议特征库模块,用于保存对数据流中的协议进行识别的协议特征;和/或病毒特征库模块,用于保存对数据流中的病毒进行识别的病毒特征;和/或URL特征库模块,用于保存对数据流中的特定URL进行识别的URL特征。特征库模块65可为动态更新的特征库,该特征库保存有与各个固定特征及其对应的特征标识,所述特征标识可包括攻击特征标识、协议特征标识、病毒特征标识、URL特征标识,以及其它预先设定的特征标识,从而将协议识别、攻击识别、病毒识别、URL识别等以特征标识的方式统一进行识别,能够识别多种复杂的协议、攻击和应用,具有广泛的应用性,在内容搜索模块64匹配比对完成后,通过返回命中的特征标识集合(例如特征标识数组)可获取对应的数据流的协议、攻击、内容等信息,以及该数据流中是否存在安全风险的信息。
在深度识别模块63识别出具体的数据流关联的特征标识之后,策略执行模块68可以根据不同类型的特征标识执行相应的预设的操作,例如,如果是攻击特征标识或者病毒特征标识,则该模块可以根据用户定义的不同动作进行响应,如复位TCP连接,记录日志等;如果是协议特征标识,则通过返查其用户预定义的流分类标识,从而为带宽管理提供可能。
在上述实施例一中,在数据包预处理模块对接收到的数据包进行预处理后,通过流引擎模块建立对基于会话的数据流的跟踪,以及完成数据包的重组和TCP保序操作,从而使得后续的深度识别模块能够针对数据流进行内容识别和处理,而非现有技术中常用的针对单个数据包的内容识别和处理,因此能够有效地提高协议分析的精确度,减少误报。进一步地,还通过深度识别模块建立数据流对应的协议特征状态机,并调用内容搜索模块将数据流的内容与预设的特征库中的特征进行匹配比对,根据获取的特征调整协议特征状态机的状态以及按照预设的策略执行相应的操作,而非现有技术中的通过固定端口识别协议,从而进一步地提高了协议分析的精确度;同时通过预设的特征库中具有统一的特征标识的特征对数据流中的协议特征、病毒特征、攻击特征及URL特征进行匹配比对,从而能够识别多种复杂的协议、攻击和应用,具有广泛的应用性,并且能够提高系统的整体处理性能。
图11为本发明数据包内容的分析处理系统的实施例二的结构示意图,与上述实施例一的区别在于,还包括协议预处理模块66,与深度识别模块63连接,用于根据特征标识对应的协议特征,对深度识别模块63处理后的数据流进行协议解码,并将协议解码后的数据流重新输入深度识别模块63进行处理。
图12为本发明数据包内容的分析处理系统的实施例三的结构示意图,与上述实施例二的区别在于,还包括精细检查模块67,与内容搜索模块64以及深度识别模块63连接,用于在内容搜索模块64对数据流的内容进行搜索之后,将数据流的内容与预先设定的特定的特征进行匹配比对,以及根据预先设定的处理规则对内容搜索模块64搜索的结果进行综合分析和判断,并将结果输出给深度识别模块63。精细检查模块67主要是对内容搜索模块的操作进行优化,如对于特定的攻击,其特征除了净荷的固定特征外还可能包括部分协议选项特征(如tt1>5),对于这样的攻击需要结合内容搜索模块检测之后,通过精细检查模块完成协议选项特征的检测。精细检查模块除了能够实现协议选项的检测外,还能够进行综合的智能判断,例如同一个数据流同时匹配比对获得两种或者两种以上攻击特征,则需要做更为准确的综合决策和判断,如采用对特定攻击频率、发生的先后次序等综合判断,从而减少误报。
图13为本发明数据包内容的分析处理系统的实施例四的结构示意图,与上述实施例三的区别在于,还包括带宽管理模块69,与策略执行模块68连接,用于:策略执行模块68根据预先设定的策略调用带宽管理模块69,带宽管理模块69根据特征标识对应的数据流的协议特征,查找预设的流量分类表获得对应的流分类标识,并根据该流分类标识执行预先设定的对应的带宽限制操作。带宽管理模块69在策略管理模块68根据协议特征标识获得用户定义的流分类标识之后,实现特定业务的带宽管理功能,例如对该类协议总带宽的限制,或者对特定用户的该协议总带宽的限制,或者对特定用户的一个该协议的连接的带宽限制。带宽管理模块69可以基于纯软件实现的带宽调度算法,也可以采用硬件来实现。
图14为本发明数据包内容的分析处理系统的实施例五的结构示意图,与上述实施例四的区别在于,还包括流量统计模块70,与策略执行模块68连接,用于:策略执行模块68根据预先设定的策略调用流量统计模块70,流量统计模块70根据数据流的协议特征以及网络属性,查找预设的流量分类表,如果查到对应的表项则更新该表项,如果未查到对应的表项则建立对应的新的表项。流量统计模块70在策略执行模块68、深度识别模块63识别出第4层至第7层协议甚至是某个协议的特定动作之后,能够进行细粒度的基于应用的流量统计,而非传统的基于五元组的流量统计。
以上实施例仅用以说明本发明的技术方案,而非对本发明作限制性理解。尽管参照上述较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解:其依然可以对本发明的技术方案进行修改或者等同替换,而这种修改或者等同替换并不脱离本发明技术方案的精神和范围。