提高特征库有效性的检测方法及系统
技术领域
本发明涉及协议分析领域,具体是涉及一种提高特征库有效性的检测方法及系统。
背景技术
协议分析人员对协议进行分析,通常就是对数据包进行嗅探或协议识别,其过程大致为:捕获网络上在线传输数据,保存成为数据包,然后对数据包内容进行解析。
对数据包进行分析的目的是为了能更好地了解网络中正在发生的事情。对数据包进行分析可以达到以下目标:了解网络特征,唯一的标识某个应用、查看网络上的流量较大的应用,从而了解用户的近期的动态、识别网络使用的高峰时间和使用频繁的应用,更好的对流量进行控制,达到最合理的利用带宽,识别可能的攻击或恶意活动,寻找不安全以及滥用网络资源的应用,维护网络的绿色安全。
协议分析人员工作中的大部分内容就是了解网络特征,从网络海量的应用中唯一的标识某个应用,换句话说,就是找到某个应用的特征,从而在网络流量中定位这个应用。当协议分析人员找到应用特征后,通常会验证特征的准确性,验证特征准确性的方法比较多,每个公司所采取的方法不尽相同,当验证特征没问题的时候就会存入公司的数据库,最终被放入现网中去识别,这样的话很容易存在误识别。
业界没有提到过因为不同特征之间的相互影响,包括并不仅限于其中一个特征为另一特征真子集或者某几个特征都包含有相同真子集,以及由于影响可能会产生的结果,现在没有提高特征有效性的方法。目前,协议分析人员识别出特征之后,往往会验证特征的准确性,而忽视检测特征之间的影响关系,导致协议的误识别,降低了特征库的质量。
发明内容
本发明的目的是为了克服上述背景技术的不足,提供一种提高特征有效性的检测方法及系统,能够降低误识别率,达到提高特征识别的有效性、提高特征识别质量的目的。
本发明提供一种提高特征库有效性的检测方法,包括以下步骤:
S1、将被检测的特征与特征库中同类型的每一个特征进行对比,检测是否存在特征冲突,如果存在特征冲突,则转到步骤S2;如果不存在特征冲突,则结束;
S2、记录出现冲突的特征和相应的协议,判断冲突的类型,如果冲突特征完全相同,则转到步骤S3;如果一特征标记报文的位置是另外特征标记报文的位置的真子集,且同一位置的特征值相等,即特征之间存在相互包含,则转到步骤S4;如果特征标记报文的位置没有交集,或者特征标记报文的位置有交集、且交集部分的特征值相等但特征不存在包含关系,则转到步骤S5;
S3、修改冲突特征中的至少一个特征,然后返回步骤S1;
S4、调整特征库中存在冲突的特征的位置,避免冲突,结束;
S5、设定一个临界值,临界值是指特征与被分析数据之间对比后相同的部分或者相同部分的长度所占特征长度的比例,临界值根据实际情况进行修改;统计冲突特征标记字节的数量或者计算冲突特征标记的比例,判断冲突概率的大小,如果冲突特征标记字节的数量/比例>临界值,或者冲突特征标记字节的数量/比例=临界值,则认为出现特征冲突的概率>实际网络协议的数量级,转到步骤S6;如果冲突特征标记字节的数量/比例<临界值,则认为出现特征冲突的概率<实际网络协议的数量级,结束;
S6、修改冲突特征中的至少一个特征,增强特征条件,直到不存在冲突或者冲突特征标记字节的数量/比例<临界值,结束。
在上述技术方案的基础上,步骤S1中所述存在特征冲突有2种情况:
(1)检测到第一个特征冲突存在,即停止对比;
(2)检测到第一个特征冲突存在后继续检测,直到对比全部完成,获得全部存在的特征冲突,全部特征冲突的总数量≥1。
在上述技术方案的基础上,步骤S4中所述调整特征库中存在冲突的特征的位置是指:将特征规则较弱的特征与特征规则较强的特征进行重新排列,使得特征规则较强的特征与特征规则较弱的特征被检测到的顺序随不同的特征检测而产生变化,达到更高的特征检测效率。
本发明还提供一种提高特征库有效性的检测系统,该系统包括特征冲突检测模块、特征修改模块、冲突特征位置调整模块、概率性影响处理模块,其中:
所述特征冲突检测模块用于:将被检测的特征与特征库中同类型的每一个特征进行对比,检测是否存在特征冲突,如果不存在特征冲突,则结束;如果存在特征冲突,则记录出现冲突的特征和相应的协议,判断冲突的类型,如果冲突特征完全相同,则通知特征修改模块进行处理;如果一特征标记报文的位置是另外特征标记报文的位置的真子集,且同一位置的特征值相等,即特征之间存在相互包含,则通知冲突特征位置调整模块进行处理;如果特征标记报文的位置没有交集,或者特征标记报文的位置有交集、且交集部分的特征值相等但特征不存在包含关系,则通知概率性影响处理模块进行处理;
所述特征修改模块用于:修改冲突特征中的至少一个特征,然后将修改后的特征发往特征冲突检测模块,通知特征冲突检测模块继续进行对比;
所述冲突特征位置调整模块用于:调整特征库中存在冲突的特征的位置,避免冲突;
所述概率性影响处理模块用于:设定一个临界值,临界值是指特征与被分析数据之间对比后相同的部分或者相同部分的长度所占特征长度的比例,临界值根据实际情况进行修改;统计冲突特征标记字节的数量或者计算冲突特征标记的比例,判断冲突概率的大小,如果冲突特征标记字节的数量/比例>临界值,或者冲突特征标记字节的数量/比例=临界值,则认为出现特征冲突的概率>实际网络协议的数量级,修改冲突特征中的至少一个特征,增强特征条件,直到不存在冲突或者冲突特征标记字节的数量/比例<临界值;如果冲突特征标记字节的数量/比例<临界值,则认为出现特征冲突的概率<实际网络协议的数量级,结束。
在上述技术方案的基础上,所述存在特征冲突有2种情况:
(1)检测到第一个特征冲突存在,即停止对比;
(2)检测到第一个特征冲突存在后继续检测,直到对比全部完成,获得全部存在的特征冲突,全部特征冲突的总数量≥1。
在上述技术方案的基础上,所述调整特征库中存在冲突的特征的位置是指:将特征规则较弱的特征与特征规则较强的特征进行重新排列,使得特征规则较强的特征与特征规则较弱的特征被检测到的顺序随不同的特征检测而产生变化,达到更高的特征检测效率。
与现有技术相比,本发明的优点如下:
本发明首次提出将特征之间的相互影响定义为两种:一种是特征冲突率百分之百的必然性影响,另一种是特征冲突的概率性影响;如果两个特征完全相同,或者特征之间存在相互包含:即一特征标记报文的位置是另一特征标记报文的位置的真子集,且同一位置的特征值相等,则对比的两个或者两个以上特征存在特征冲突率百分之百的必然性影响;如果对比的两个或者两个以上特征标记同一报文的位置没有交集,或者对比的两个或者两个以上特征标记同一报文的位置有交集、且交集部分的特征值相等但特征不存在包含关系,则对比的两个或者两个以上特征存在特征冲突的概率性影响。针对不同类型的冲突,采用不同的处理方式,根据检测结果,可以调整特征的先后顺序,或者重新修改特征,来降低误识别率,达到提高特征检测有效性、提高特征检测质量的目的。
附图说明
图1是本发明实施例中提高特征库有效性的检测方法的流程图。
图2是本发明实施例中提高特征库有效性的检测系统的拓扑结构图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步的详细描述。
鉴于业界没有提到过特征之间的相互影响,以及由于特征之间的相互影响可能会产生的结果,本发明实施例先对特征之间的相互影响进行分析。
本申请的发明人经过分析和总结,认为可以将特征之间的相互影响定义为两种:一种是特征冲突率百分之百的必然性影响,另一种是特征冲突的概率性影响,对于概率性影响按照冲突率数值的再次拆分仍然属于概率性影响的范畴。
如果对比的两个或者两个以上特征完全相同,或者一特征标记报文的位置是另外特征标记报文的位置的真子集,且同一位置的特征值相等,即特征之间存在相互包含,则进行对比的特征存在特征冲突率百分之百的必然性影响;如果对比的特征标记同一报文的位置没有交集,或者对比的两个或者两个以上特征标记同一报文的位置有交集、且交集部分的特征值相等但特征不存在包含关系,则对比的两个或者两个以上特征存在特征冲突的概率性影响。
下面以应用a~h的特征为例来说明必然性影响和概率性影响。
首先,以应用a、b、c、d的特征为例来说明特征冲突率百分之百的必然性影响。
表1、特征冲突率百分之百的必然性影响示例1
应用a的特征 |
0x ?? ?? ?? ?? 00 1C 0D?? |
应用b的特征 |
0x ?? ?? ?? ?? 00 1C 0D ?? |
参见表1所示,在特征库里,应用b的特征标记报文的位置和应用a的特征标记报文的位置相同,而且同一位置的特征值相等,即两个特征完全相同,因此认为应用a、b的特征存在特征冲突率百分之百的必然性影响。例如:当应用b的报文为0x01 02 03 0A 00 1C 0D00时,由于应用a的特征排在应用b的特征前面,即应用a的特征比应用b的特征先被检测到,所以会优先匹配应用a的特征,上报应用a,导致应用b的特征永远也不会匹配上。同理,如果应用b的特征排在应用a的特征前面,会优先匹配应用b的特征,上报应用b,导致应用a的特征永远也不会匹配上。
表2、特征冲突率百分之百的必然性影响示例2
应用c的特征 |
0x ?? ?? ?? 0A 00 1C 0D ?? |
应用d的特征 |
0x ?? ?? ?? ?? 00 1C 0D ?? |
参见表2所示,在特征库里,应用d的特征标记报文的位置是应用c的特征标记位置的子集,而且同一位置的特征值相等,因此认为应用c、d的特征存在特征冲突率百分之百的必然性影响。例如:当应用c的报文为0x01 02 03 0A 00 1C 0D 00时,由于应用d的特征比应用c的特征少,并且如果应用d的特征排在应用c的特征前面,满足应用d的特征标记报文的位置是应用c的特征标记位置的子集,而且同一位置的特征值相等,故认为应用c、d的特征存在特征冲突率百分之百的必然性影响,所以会优先匹配应用d的特征,上报应用d,导致应用c的特征永远也不会匹配上。同理,如果应用c的特征排在应用d的特征前面,即应用c的特征比应用d的特征先被检测到,那么只有当应用d的报文满足应用c的特征的情况下,才会误报为应用c,否则就不会出现误识别。
接下来,以应用e、f、g、h的特征为例来说明特征冲突的概率性影响。
表3、特征冲突的概率性影响示例1
应用e的特征 |
0x ?? ?? ?? ?? 00 1C ?? ?? |
应用f的特征 |
0x ?? 3C 00 ?? ?? ?? ?? ?? |
参见表3所示,在特征库里,应用e、f的特征看似不相关,但是应用e、f的特征标记同一报文的位置不相同,在某些情况下,或者说一定概率下,仍然会出现误识别。例如:当应用e的报文为0x01 3C 00 04 00 1C 00 00…时,实际上应用e的报文也满足应用f的特征。此时,如果特征库里应用f的特征排在比应用e的特征更容易检索到的位置,即应用f的特征比应用e的特征先被检测到,就会误报成应用f的特征,因此,应用e、f的特征存在特征冲突的概率性影响。
表4、特征冲突的概率性影响示例2
应用g的特征 |
0x ?? ?? 00 ?? ?? 1C ?? ?? |
应用h的特征 |
0x ?? 3C 00 ?? ?? ?? ?? ?? |
参见表4所示,在特征库里,应用g、h的特征看似不相关,但是应用g、h的特征标记同一报文的位置有交集、且交集部分的特征值相等,在某些情况下,或者说一定概率下,仍然会出现误识别。例如:当应用g的报文为0x01 3C 00 04 00 1C 00 00…时,实际上应用g的报文也满足应用h的特征。此时,如果特征库里应用h的特征排在应用g的特征前面,即应用h的特征比应用g的特征先被检测到,就会误报成应用h的特征,因此,应用g、h的特征存在特征冲突的概率性影响。
参见图1所示,本发明实施例提供一种提高特征库有效性的检测方法,包括以下步骤:
S1、将被检测的特征与特征库中同类型的每一个特征进行对比,检测是否存在特征冲突,如果存在特征冲突,则转到步骤S2;如果不存在特征冲突,则结束;
存在特征冲突有2种情况:
(1)检测到第一个特征冲突存在,即停止对比;
(2)检测到第一个特征冲突存在后继续检测,直到对比全部完成,获得全部存在的特征冲突,全部特征冲突的总数量≥1;
S2、记录出现冲突的特征和相应的协议,判断冲突的类型,如果冲突特征完全相同,则转到步骤S3;如果一特征标记报文的位置是另外特征标记报文的位置的真子集,且同一位置的特征值相等,即特征之间存在相互包含,则转到步骤S4;如果特征标记报文的位置没有交集,或者特征标记报文的位置有交集、且交集部分的特征值相等但特征不存在包含关系,则转到步骤S5;
S3、修改冲突特征中的至少一个特征,然后返回步骤S1;
S4、调整特征库中存在冲突的特征的位置,避免冲突,结束;
S5、设定一个临界值,临界值是指特征与被分析数据之间对比后相同的部分或者相同部分的长度所占特征长度的比例,临界值可以根据实际情况进行修改;统计冲突特征标记字节的数量或者计算冲突特征标记的比例,判断冲突概率的大小,如果冲突特征标记字节的数量/比例>临界值,或者冲突特征标记字节的数量/比例=临界值,则认为出现特征冲突的概率>实际网络协议的数量级,转到步骤S6;如果冲突特征标记字节的数量/比例<临界值,则认为出现特征冲突的概率<实际网络协议的数量级,结束;
S6、修改冲突特征中的至少一个特征,增强特征条件,直到不存在冲突或者冲突特征标记字节的数量/比例<临界值,结束。
步骤S4中调整特征库中存在冲突的特征的位置是指:将特征规则较弱的特征与特征规则较强的特征进行重新排列,使得特征规则较强的特征与特征规则较弱的特征被检测到的顺序随不同的特征检测而产生变化,达到更高的特征检测效率。
参见图2所示,本发明实施例还提供一种提高特征库有效性的检测系统,该系统包括特征冲突检测模块、特征修改模块、冲突特征位置调整模块、概率性影响处理模块,其中:
特征冲突检测模块用于:将被检测的特征与特征库中同类型的每一个特征进行对比,检测是否存在特征冲突;
存在特征特征冲突有2种情况:
(1)检测到第一个特征冲突存在,即停止对比;
(2)检测到第一个特征冲突存在后继续检测,直到对比全部完成,获得全部存在的特征冲突,全部特征冲突的总数量≥1;
如果不存在特征冲突,则结束;如果存在特征冲突,则记录出现冲突的特征和相应的协议,判断冲突的类型,如果冲突特征完全相同,则通知特征修改模块进行处理;如果一特征标记报文的位置是另外特征标记报文的位置的真子集,且同一位置的特征值相等,即特征之间存在相互包含,则通知冲突特征位置调整模块进行处理;如果特征标记报文的位置没有交集,或者特征标记报文的位置有交集、且交集部分的特征值相等但特征不存在包含关系,则通知概率性影响处理模块进行处理;
特征修改模块用于:修改冲突特征中的至少一个特征,然后将修改后的特征发往特征冲突检测模块,通知特征冲突检测模块继续进行对比;
冲突特征位置调整模块用于:调整特征库中存在冲突的特征的位置,避免冲突;调整特征库中存在冲突的特征的位置是指:将特征规则较弱的特征与特征规则较强的特征进行重新排列,使得特征规则较强的特征与特征规则较弱的特征被检测到的顺序随不同的特征检测而产生变化,达到更高的特征检测效率。
概率性影响处理模块用于:设定一个临界值,临界值是指特征与被分析数据之间对比后相同的部分或者相同部分的长度所占特征长度的比例,临界值可以根据实际情况进行修改;统计冲突特征标记字节的数量或者计算冲突特征标记的比例,判断冲突概率的大小,如果冲突特征标记字节的数量/比例>临界值,或者冲突特征标记字节的数量/比例=临界值,则认为出现特征冲突的概率>实际网络协议的数量级,修改冲突特征中的至少一个特征,增强特征条件,直到不存在冲突或者冲突特征标记字节的数量/比例<临界值;如果冲突特征标记字节的数量/比例<临界值,则认为出现特征冲突的概率<实际网络协议的数量级,结束。
本领域的技术人员可以对本发明实施例进行各种修改和变型,倘若这些修改和变型在本发明权利要求及其等同技术的范围之内,则这些修改和变型也在本发明的保护范围之内。
说明书中未详细描述的内容为本领域技术人员公知的现有技术。