本发明涉及一种提高应用层流量分类准确率的方法。
背景技术:
协议逆向工程可自动化地为协议流量识别、入侵检测、协议规范重构等应用提供丰富而准确的协议基本组成要素和流量特征。提取协议关键词是协议逆向工程中最为关键的一项任务,是影响后续工作准确率和可靠程序的重要环节。协议关键词是协议中的常量字符串或协议的命令符等,例如,HTTP协议使用的请求方法“GET”、FTP的退出命令符“QUIT”等。在处理多种不同协议的混杂流量时,不同协议的关键出现的频率互相干扰,而现有的协议逆向工程技术大都基于词频挖掘协议关键词,因此,直接对混杂流量进行协议关键词提取的效果不理想。
现有未知流量的聚类都采用基于数值型特征的聚类算法。Erman等人采用基于K-means和DBSCAN的流量聚类方法,分析网络应用的通信特征。Erman等人还提出基于EM算法的无监督流量分类方法,用于对无标记的网络流量进行聚类分析,以根据相似性将网络流量分为不同的类别。这些工作都通过将流量特征转化为数值型特征,再定义流之间的相似度或距离,然后在k-means、EM等聚类算法的协助下进行流量聚类或分类的。流量特征在量化的过程中会出现信息损失或失真,影响聚类分析的准确性。为此,Mahmood等人提出一个用于处理混合类型特征(包括数值型特征、非数据值特征、层次化特征等)的流量聚类分析框架,然后他们只关注于分析流的网络层、传输层等简单的特征,例如采用的传输协议(UDP、TCP等),导致方法对应用层数据的分析准确性不高。Parmar等人提出一种最小化最小粗糙度(MMR)的非数值型数值处理方法,有效地展示和证明了粗糙集在处理非数值型特征的优势。
以上方法局限于处理网络流量的数值型特征,也没有考虑应用层网络流量中的非数值型特征具有大量的不确定性,因此不适用于分析未知应用流量的聚类分析。
技术实现要素:
本发明针对现有技术的不足,提供一种提高应用层流量分类准确率的方法。本发明采用基于应用层网络流量聚类预处理的协议逆向分析的处理方法,针对应用层流量特征,采用适宜处理非数值型特征的聚类算法对流量进行预处理,得到由单一协议流量组成的子类,然后对各子类应用协议逆向分析技术进行处理。该方法针对应用层流量存在大量非数据型的特征的问题,引入粗糙集的理论和方法,充分利用粗糙集处理非数据值以及流量中的不确定信息,实现准确而有效的流量聚类分析。
为了达到上述目的,本发明一种提高应用层流量分类准确率的方法,主要包括以下步骤:
第一步、将未知应用的应用层流量进行预处理,以作为基于粗糙集的流量特征建模的基础;
第二步、基于粗糙集的流量特征进行建模;
第三步、选取指导分类的属性;
第四步、计算属性的总粗糙度;
第五步、按照属性粗糙度对各类进行排序;
第六步、根据粗糙度实施类进行分割;
第七步、根据最小描述长度准则,确定最佳聚类簇数。
本发明中,基于粗糙集的,适用于处理非数值型特征的未知流量聚类方法,模型的构建方法如下。
定义信息系统S,表示聚类分析对象,即未知应用的流量,则:
S=(X,Q,V,ρ),X={x1,x2,...,xn},q∈Q,
ρ:X×Q→V,ρ(x,q)∈Vq;
其中x1,x2,...,xn表示网络流,X表示所示流的集合,q表示流的一个属性,Vq表示属性q的取值空间。
定义S上的等价关系(~):
定义下约集ΔΑ(X)和上约集
定义评判X的准确性的参数:
其中,card(ΔΑ(X))和分别表示ΔΑ(X)和所包含的对象数量,0≤μΑ(X)≤1。
定义X的粗糙度为:
定义信息系统X的分类问题:
设F={C1,C2,…,Cn},
其中,Ci∩Cj=φ,且
那么有Δ(F)={ΔΑ(C1),ΔΑ(C2),…,Δ(Cn)};
且
定义分类的质量:
分类的准确度:
定义与属性ai∈Α相关的基集为:
定义粗糙度:
其中ai,aj∈Α且
ai相对于aj的平均粗糙度定义为:
ai的平均粗糙度定义为:
对于第三步中,选取用于指导分类的属性,选取的标准为:
对于第四步,计算a*的总粗糙度
对于第五步,对排序,得到
对于第六步,类划分,
给定定义
和
根据将类C分为两类,即划分的方法为:
对于第七步,根据最小描述长度原则确定聚类的最佳簇数。
设
其中,
于是有:
因此最佳的聚类簇数为:
优选地,所述第六步中,在未能确定最佳聚类簇数之前,则选取最大簇粗糙子类,然后返回第三步中,以再次对子类进行分类,簇粗糙度定义为:而后再次进行第四步、第五步、第六步和第七步。
优选地,所述聚类的过程一直进行到所设定的最大迭代数或是最大簇总数。
本发明基于粗糙集的未知应用层流量分析处理方法,提出一种提高应用层流量分类准确率的方法。应用层网络流量具有大量非数值型的特征,传统方法一般将这些非数值的特征量化,然后在数值空间进行聚类等分析工作。由于在量化过程中,非数值型特征会损失信息量或降低数据精度等,对后续的分析准确率会造成较大影响。本发明提出基于粗糙集理论分析未知网络应用的应用层网络载荷的多类别属性特征,采用粗糙集描述网络数据报文特征的多维度不确定信息,并使用最小描述长度原则确定流量聚类的最佳簇数,在此基础上,对每一类流量提取协议关键词,大大减少不相关流量造成的噪声影响,提高协议关键词提取的准确率,进而可为应用层流量识别、异常检测提供可靠而准确的流量特征。
附图说明
图1为本发明方法实施的流程示意图。
具体实施方式
以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。
参照图1,本发明实施例一种提高应用层流量分类准确率的方法,主要包括以下步骤:
第一步、将未知应用的应用层流量进行预处理,以作为基于粗糙集的流量特征建模的基础;
第二步、基于粗糙集的流量特征进行建模;
第三步、选取指导分类的属性;
第四步、计算属性的总粗糙度;
第五步、按照属性粗糙度对各类进行排序;
第六步、根据粗糙度实施类进行分割;
第七步、根据最小描述长度准则,确定最佳聚类簇数。
本发明中,基于粗糙集的,适用于处理非数值型特征的未知流量聚类方法,模型的构建方法如下。
定义信息系统S,表示聚类分析对象,即未知应用的流量,则:
S=(X,Q,V,ρ),X={x1,x2,…,xn},q∈Q,
ρ:X×Q→V,ρ(x,q)∈Vq;
其中x1,x2,...,xn表示网络流,X表示所示流的集合,q表示流的一个属性,Vq表示属性q的取值空间。
定义S上的等价关系(~):
定义下约集ΔΑ(X)和上约集
定义评判X的准确性的参数:
其中,card(ΔΑ(X))和分别表示ΔΑ(X)和所包含的对象数量,0≤μΑ(X)≤1。
定义X的粗糙度为:
定义信息系统X的分类问题:
设F={C1,C2,…,Cn},
其中,Ci∩Cj=φ,且
那么有Δ(F)={ΔΑ(C1),ΔΑ(C2),...,Δ(Cn)};
且
定义分类的质量:
分类的准确度:
定义与属性ai∈Α相关的基集为:
定义粗糙度:
其中ai,aj∈Α且
ai相对于aj的平均粗糙度定义为:
ai的平均粗糙度定义为:
对于第三步中,选取用于指导分类的属性,选取的标准为:
对于第四步,计算a*的总粗糙度
对于第五步,对排序,得到
对于第六步,类划分,
给定定义
和
根据将类C分为两类,即划分的方法为:
对于第七步,根据最小描述长度原则确定聚类的最佳簇数。
设
其中,
于是有:
因此最佳的聚类簇数为:
所述第六步中,在未能确定最佳聚类簇数之前,则选取最大簇粗糙子类,然后返回第三步中,以再次对子类进行分类,簇粗糙度定义为:而后再次进行第四步、第五步、第六步和第七步。所述聚类的过程一直进行到所设定的最大迭代数或是最大簇总数。
本发明基于粗糙集的未知应用层流量分析处理方法,提出一种提高应用层流量分类准确率的方法。应用层网络流量具有大量非数值型的特征,传统方法一般将这些非数值的特征量化,然后在数值空间进行聚类等分析工作。由于在量化过程中,非数值型特征会损失信息量或降低数据精度等,对后续的分析准确率会造成较大影响。本发明提出基于粗糙集理论分析未知网络应用的应用层网络载荷的多类别属性特征,采用粗糙集描述网络数据报文特征的多维度不确定信息,并使用最小描述长度原则确定流量聚类的最佳簇数,在此基础上,对每一类流量提取协议关键词,大大减少不相关流量造成的噪声影响,提高协议关键词提取的准确率,进而可为应用层流量识别、异常检测提供可靠而准确的流量特征。
以上已将本发明做一详细说明,但显而易见,本领域的技术人员可以进行各种改变和改进,而不背离所附权利要求书所限定的本发明的范围。