CN114666273B - 一种面向应用层未知网络协议的流量分类方法 - Google Patents
一种面向应用层未知网络协议的流量分类方法 Download PDFInfo
- Publication number
- CN114666273B CN114666273B CN202210469493.8A CN202210469493A CN114666273B CN 114666273 B CN114666273 B CN 114666273B CN 202210469493 A CN202210469493 A CN 202210469493A CN 114666273 B CN114666273 B CN 114666273B
- Authority
- CN
- China
- Prior art keywords
- data
- clustering
- protocol
- flow
- training
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 76
- 238000000605 extraction Methods 0.000 claims abstract description 28
- 238000013145 classification model Methods 0.000 claims abstract description 21
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 10
- 238000013106 supervised machine learning method Methods 0.000 claims abstract description 6
- 238000013107 unsupervised machine learning method Methods 0.000 claims abstract description 6
- 239000013598 vector Substances 0.000 claims description 55
- 238000012549 training Methods 0.000 claims description 52
- 238000012360 testing method Methods 0.000 claims description 37
- 238000010801 machine learning Methods 0.000 claims description 12
- 238000012795 verification Methods 0.000 claims description 12
- 230000005540 biological transmission Effects 0.000 claims description 9
- 238000013480 data collection Methods 0.000 claims description 7
- 238000007619 statistical method Methods 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 claims description 5
- 230000006870 function Effects 0.000 claims description 5
- 238000002372 labelling Methods 0.000 claims description 5
- 230000003247 decreasing effect Effects 0.000 claims description 4
- 238000013467 fragmentation Methods 0.000 claims description 4
- 238000006062 fragmentation reaction Methods 0.000 claims description 4
- 238000000926 separation method Methods 0.000 claims description 4
- 230000003044 adaptive effect Effects 0.000 claims description 3
- 238000011156 evaluation Methods 0.000 claims description 3
- 239000000284 extract Substances 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 241001530392 Aphos Species 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000007621 cluster analysis Methods 0.000 description 1
- 238000009833 condensation Methods 0.000 description 1
- 230000005494 condensation Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000007637 random forest analysis Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种面向应用层未知网络协议的流量分类方法,该方法首先采集主干网中的未知流量数据集,并设计了统计对齐字节概率的特征提取方法自动识别并定位应用层未知协议中的频繁字符。其次,该方法提出了合并相似聚类算法,此算法能够在使用无监督机器学习方法对未标记流量进行聚类标注的基础上,合并属于相同协议的聚类的标签,完成流量标记工作。最后,该方法使用有监督机器学习方法训练标记好的流量数据,得到分类模型,该模型可用于分类新的未知网络流量。本发明能够在未标记的主干网流量中提取有效特征并实现应用层未知网络协议的分类,可用于网络流量分类和网络管理。
Description
技术领域
本发明涉及一种面向应用层未知网络协议的流量分类方法,属于网络测量技术领域。
背景技术
随着互联网应用种类的增多,网络中的数据传输量在不断扩充,给网络管理带来了挑战,并且可能导致网络攻击等安全问题。因此,对网络安全进行有效的监管至关重要。网络流量分类的主要目的是帮助网络管理员处理、控制和分类流量,从而能够监控网络状态、优化网络服务。因此,它可以用于服务质量提供、流量监控和异常检测等方面。
现有的流量分类方法主要有基于规则的方法和统计方法。基于规则的方法可以分为基于端口和基于负载的方法。但是随着动态端口号和加密协议的使用,这类方法的应用遭到了限制。统计方法利用流量的一组可观察特征来展示网络流量的不同行为,可以进一步分为机器学习方法和深度学习方法。这类方法准确率高、适应性强,并且可以解决基于规则的方法中存在的问题。
然而随着时代的进步,协议的种类越来越多。在总流量中,传统协议产生的流量占比逐渐下降,而新兴协议产生的流量不断增加。2018年全球网络及端点安全厂商Sophos发布的调查报告显示,IT主管平均无法识别公司45%的网络流量。这些未知流量由没有公开协议规范的未知协议产生,但是传统的协议识别工具和方案只能识别已知协议,无法应用于未知协议的识别。因此,为了有效的进行网络管理和网络流量的监测,对未知协议进行准确分类变得十分重要。
目前针对未知协议的分类主要有以下两类方法,但都存在着局限性。
(1)基于有效载荷分析的方法
这类方法使用数据包或流的有效载荷内容来识别应用协议,可以提取协议格式作为特征,主要通过生成协议关键字或生成n-gram的小字节序列来分析有效负载信息。但是这类方法对于加密协议的特征提取存在困难,比如无法分析加密负载、无法准确定位并提取加密协议的频繁字符等。其次,现有的方法在实际环境中的应用也存在问题,比如无法应用于非对称路由环境、无法在实际流量上验证等。
(2)基于统计特征的机器学习方法
这类方法使用数据包或流的统计特征并结合机器学习方法进行协议识别。常用的机器学习方法有三种,其中监督学习方法需要在分类前对流量进行标注,无法应用于未知协议的分类。半监督学习方法仍然需要部分监督信息来构建协议分类器,在高速主干网中的实用性较低。无监督学习方法可以通过聚类分析发现未知流量中相同或相似的模式,但是将聚类结果映射到协议或应用程序是该类方法的主要挑战。
针对未知协议的分类研究,目前还没有成熟的解决方案。现有的适合应用于未知协议分类的解决方案主要存在以下两个问题:
(1)基于有效载荷分析方法无法准确定位和提取加密的未知协议格式,且在实际环境中的实用性较低。
(2)无监督聚类方法的聚类结果无法准确映射到实际协议。
因此,为了准确识别并分类未知协议,需要研究有效的可以应用于加密协议的未知协议特征提取方法,并在设计零知识条件下的流量分类模型的基础上,提高聚类结果的准确性。
发明内容
为解决上述问题,本发明公开了一种面向应用层未知网络协议的流量分类方法。该方法首先采集主干网中的未知流量数据集,并设计了统计对齐字节概率的特征提取方法自动识别并定位应用层未知协议中的频繁字符。其次,该方法提出了合并相似聚类算法,此算法能够在使用无监督机器学习方法对未标记流量进行聚类标注的基础上,合并属于相同协议的聚类的标签,完成流量标记工作。最后,该方法使用有监督机器学习方法训练标记好的流量数据,得到分类模型,该模型可用于分类新的未知网络流量。本发明能够在未标记的主干网流量中提取有效特征并实现应用层未知网络协议的分类,可用于网络流量分类和网络管理。
为了实现本发明的目的,本方案具体技术步骤如下:一种面向应用层未知网络协议的流量分类方法,该方法包括以下步骤:
步骤(1)在主干网络中通过数据采集工具分不同时间采集流量数据,先采集的流量作为训练数据,后采集的流量作为测试数据,对训练数据的处理进入步骤(2),对测试数据的处理进入步骤(6);
步骤(2)通过统计对齐字节概率的特征提取方法提取训练数据的特征,获得特征向量;
步骤(3)使用无监督机器学习方法对步骤(2)获得的特征向量进行聚类标注,获得聚类结果;
步骤(4)使用合并相似聚类算法对步骤(3)获得的聚类结果进行相似聚类的合并,统一相同协议的聚类标签;
步骤(5)使用有监督机器学习方法对步骤(4)中已标记的流量数据进行模型训练,获得分类模型;
步骤(6)通过统计对齐字节概率的特征提取方法提取测试数据的特征,获得特征向量;
步骤(7)使用步骤(5)中的分类模型对步骤(6)中未标记的流量数据进行分类。
进一步的,所述步骤(1)具体包含如下子步骤:
(1.1)在主干网络的一个节点上通过数据采集工具采集一定时间的流量数据集,为保证数据集满足协议种类丰富、统计分析以及训练、验证、测试机器学习模型的需要,数据集大小建议为300G以上,具体采集时间可根据主干网络带宽动态调整;
(1.2)采集数据集时分不同时间点在相同节点采集,从而尽可能扩大采集到的协议种类数,并将数据集保存为pcap文件,根据采集的时间顺序对流量数据进行划分,先采集的流量作为训练数据,后采集的流量作为测试数据,划分数据集时保证训练数据多于测试数据,划分的时间比例约为2:1。
进一步的,所述步骤(2)中统计对齐字节概率的特征提取方法具体包含如下子步骤:
(2.1)第一步为自动识别流量中的频繁字符,具体方法如下:
(2.1.1)在流量数据中,将每条流的前n个数据包垂直对齐;
(2.1.2)为有效负载的前k个字节分别设置计数器向量,因为每一字节有256种组合方式,所以一个计数器向量对应记录256种组合出现的具体次数,并通过式(1-1)计算出现的概率,其中Nij代表第i个字节中第j种组合的出现次数;
(2.1.3)基于正态分布分析设置阈值th1,提取字符概率高于th1的字符作为频繁字符,并记录含有频繁字符的字节位置数p;
(2.2)第二步为提取特征向量,具体方法如下:
(2.2.1)因为一次传输的数据量大小超过最大传输单元(MTU)时,数据包将被分片,分片后只有第一个数据包含有协议格式,因此,为了避免不必要的数据包参与特征提取,对每条流的后续数据包进行过滤,筛选出前k个字节中至少个字节位置数含有频繁字符的数据包;
(2.2.2)将过滤出的数据包垂直对齐、为前m字节设置计数器向量并计算字符概率,然后重新设置阈值th2,记录高于th2的字符概率作为特征向量,最终一条流被数字化为含有256m个属性的特征向量;
(2.2.3)因为协议头部的字节对协议格式更重要,所以将特征向量按位置分配一个阶梯下降的权重,以区分重要性。
进一步的,所述步骤(3)具体包含如下子步骤:
(3.1)由于无法预知流量中含有的协议数量,所以选择不需要提前定义聚类类别数的自适应聚类方法进行聚类,从而能够提高聚类效率,降低聚类阶段的时间和计算成本;
(3.2)在聚类过程中,使用轮廓系数来评价和确定聚类结果,该指标综合考虑了内聚度和分离度两种因素,能够有效评估聚类性能。
进一步的,所述步骤(4)具体包含如下子步骤:
(4.1)首先使用式(1-2)计算每一聚类中所有特征向量的平均值作为特征均值,其中y是聚类Ci中含有的特征向量数,(xa)j是第j个特征向量的第a维属性;
(4.2)通过特征均值使用式(1-3)计算两两聚类间的欧式距离,其中是/>的第j个特征属性;
(4.3)记录特征均值中前t个含有非零概率的位置和频繁字符,然后比较所有聚类是否在相同位置含有相同的字符,本发明将相似度定义为两个聚类在相同位置含有的相同字符数量除以字节位置数,如式(1-4)所示,其中Si和Sj是聚类i和j提取出的字符,他们的交集表示两个聚类在相同位置含有相同的字符,len()是计算数量的函数,Li和Lj是提取出的前t个位置,由于能够提取出频繁字符的位置数可能不足t个,所以取位置数的最小值;
(4.4)设置欧式距离的阈值th3和相似度的阈值th4,如果两个聚类间的相似度大于等于th4且欧氏距离小于等于th3,则进行合并;
(4.5)使用Wireshark辅助聚类的合并以及协议格式、标签的确定,使聚类标签与实际协议更好的对应,提高聚类结果的可解释性。
进一步的,所述步骤(5)具体包含如下子步骤:
(5.1)将已标记的训练数据按7:3的比例划分为训练子集和验证子集;
(5.2)使用有监督机器学习分类器对训练子集和验证子集进行训练,得到性能良好的分类模型。
进一步的,所述步骤(6)中通过统计对齐字节概率方法对测试数据进行特征提取的具体步骤与步骤(2)中对训练数据进行特征提取的步骤相同。
进一步的,所述步骤(7)具体包含如下子步骤:
(7.1)通过步骤(5)中获得的分类模型对未标记的测试数据进行分类;
(7.2)使用评价指标评估分类结果,从而验证本发明的分类性能。
与现有技术相比,本发明的技术方案具有以下有益技术效果。
(1)本发明提出了统计对齐字节概率的特征提取方法,通过统计分析能够自动定位并提取应用层未知协议中的频繁字符,且特征向量包含了频繁字符的概率、位置和内容三重信息,特征表示准确、高效,可以实际应用于现实环境。
(2)本发明提出了合并相似聚类算法,通过协议的格式特征合并属于相同协议的不同聚类标签,提高聚类结果与实际协议的对应性,解决传统聚类结果无法与实际协议良好映射的问题,并且结合Wireshark和人工工作增强了聚类结果的可解释性。
(3)本发明结合无监督和有监督机器学习完成分类模型的训练。通过无监督聚类可以实现对未知协议的发现和未知流量的标注,通过有监督机器学习能够获得高精度的分类模型,从而可以对新到达的流量数据执行准确的分类,具有较高的可行性。
附图说明
图1为本发明的总体流程图;
图2为统计对齐字节概率的特征提取方法示意图;
图3为使用随机数模拟的概率密度分布图;
图4为不同距离阈值下的分类性能图。
具体实施方式
以下将结合具体实施例对本发明提供的技术方案进行详细说明,应理解下述具体实施方式仅用于说明本发明而不用于限制本发明的范围。
实施例1:一种面向应用层未知网络协议的流量分类方法,该方法包括以下步骤:
步骤(1)在主干网络中通过数据采集工具分不同时间采集流量数据,先采集的流量作为训练数据,后采集的流量作为测试数据,对训练数据的处理进入步骤(2),对测试数据的处理进入步骤(6);
步骤(2)通过统计对齐字节概率的特征提取方法提取训练数据的特征,获得特征向量;
步骤(3)使用无监督机器学习方法对步骤(2)获得的特征向量进行聚类标注,获得聚类结果;
步骤(4)使用合并相似聚类算法对步骤(3)获得的聚类结果进行相似聚类的合并,统一相同协议的聚类标签;
步骤(5)使用有监督机器学习方法对步骤(4)中已标记的流量数据进行模型训练,获得分类模型;
步骤(6)通过统计对齐字节概率的特征提取方法提取测试数据的特征,获得特征向量;
步骤(7)使用步骤(5)中的分类模型对步骤(6)中未标记的流量数据进行分类。
进一步的,所述步骤(1)具体包含如下子步骤:
(1.1)在主干网络的一个节点上通过数据采集工具采集一定时间的流量数据集,为保证数据集满足协议种类丰富、统计分析以及训练、验证、测试机器学习模型的需要,数据集大小建议为300G以上,具体采集时间可根据主干网络带宽动态调整;
(1.2)采集数据集时分不同时间点在相同节点采集,从而尽可能扩大采集到的协议种类数,并将数据集保存为pcap文件,根据采集的时间顺序对流量数据进行划分,先采集的流量作为训练数据,后采集的流量作为测试数据,划分数据集时保证训练数据多于测试数据,划分的时间比例约为2:1。
进一步的,所述步骤(2)中统计对齐字节概率的特征提取方法具体包含如下子步骤:
(2.1)第一步为自动识别流量中的频繁字符,具体方法如下:
(2.1.1)在流量数据中,将每条流的前n个数据包垂直对齐;
(2.1.2)为有效负载的前k个字节分别设置计数器向量,因为每一字节有256种组合方式,所以一个计数器向量对应记录256种组合出现的具体次数,并通过式(1-1)计算出现的概率,其中Nij代表第i个字节中第j种组合的出现次数;
(2.1.3)基于正态分布分析设置阈值th1,提取字符概率高于th1的字符作为频繁字符,并记录含有频繁字符的字节位置数p;
(2.2)第二步为提取特征向量,具体方法如下:
(2.2.1)因为一次传输的数据量大小超过最大传输单元(MTU)时,数据包将被分片,分片后只有第一个数据包含有协议格式,因此,为了避免不必要的数据包参与特征提取,对每条流的后续数据包进行过滤,筛选出前k个字节中至少个字节位置数含有频繁字符的数据包;
(2.2.2)将过滤出的数据包垂直对齐、为前m字节设置计数器向量并计算字符概率,然后重新设置阈值th2,记录高于th2的字符概率作为特征向量,最终一条流被数字化为含有256m个属性的特征向量;
(2.2.3)因为协议头部的字节对协议格式更重要,所以将特征向量按位置分配一个阶梯下降的权重,以区分重要性。
进一步的,所述步骤(3)具体包含如下子步骤:
(3.1)由于无法预知流量中含有的协议数量,所以选择不需要提前定义聚类类别数的自适应聚类方法进行聚类,从而能够提高聚类效率,降低聚类阶段的时间和计算成本;
(3.2)在聚类过程中,使用轮廓系数来评价和确定聚类结果,该指标综合考虑了内聚度和分离度两种因素,能够有效评估聚类性能。
进一步的,所述步骤(4)具体包含如下子步骤:
(4.1)首先使用式(1-2)计算每一聚类中所有特征向量的平均值作为特征均值,其中y是聚类Ci中含有的特征向量数,(xa)j是第j个特征向量的第a维属性;
(4.2)通过特征均值使用式(1-3)计算两两聚类间的欧式距离,其是/>的第j个特征属性;
(4.3)记录特征均值中前t个含有非零概率的位置和频繁字符,然后比较所有聚类是否在相同位置含有相同的字符,本发明将相似度定义为两个聚类在相同位置含有的相同字符数量除以字节位置数,如式(1-4)所示,其中Si和Sj是聚类i和j提取出的字符,他们的交集表示两个聚类在相同位置含有相同的字符,len()是计算数量的函数,Li和Lj是提取出的前t个位置,由于能够提取出频繁字符的位置数可能不足t个,所以取位置数的最小值;
(4.4)设置欧式距离的阈值th3和相似度的阈值th4,如果两个聚类间的相似度大于等于th4且欧氏距离小于等于th3,则进行合并;
(4.5)使用Wireshark辅助聚类的合并以及协议格式、标签的确定,使聚类标签与实际协议更好的对应,提高聚类结果的可解释性。
进一步的,所述步骤(5)具体包含如下子步骤:
(5.1)将已标记的训练数据按7:3的比例划分为训练子集和验证子集;
(5.2)使用有监督机器学习分类器对训练子集和验证子集进行训练,得到性能良好的分类模型。
进一步的,所述步骤(6)中通过统计对齐字节概率方法对测试数据进行特征提取的具体步骤与步骤(2)中对训练数据进行特征提取的步骤相同。
进一步的,所述步骤(7)具体包含如下子步骤:
(7.1)通过步骤(5)中获得的分类模型对未标记的测试数据进行分类;
(7.2)使用评价指标评估分类结果,从而验证本发明的分类性能。
实施例2:本发明提供的一种面向应用层未知网络协议的流量分类方法,其总体架构如图1所示,包括如下步骤:
步骤(1)在主干网络中通过数据采集工具分不同时间采集流量数据,先采集的流量作为训练数据,后采集的流量作为测试数据,对训练数据的处理进入步骤(2),对测试数据的处理进入步骤(6);
步骤(2)通过统计对齐字节概率的特征提取方法提取训练数据的特征,获得特征向量;
步骤(3)使用无监督机器学习方法对步骤(2)获得的特征向量进行聚类标注,获得聚类结果;
步骤(4)使用合并相似聚类算法对步骤(3)获得的聚类结果进行相似聚类的合并,统一相同协议的聚类标签;
步骤(5)使用有监督机器学习方法对步骤(4)中已标记的流量数据进行模型训练,获得分类模型;
步骤(6)通过统计对齐字节概率的特征提取方法提取测试数据的特征,获得特征向量;
步骤(7)使用步骤(5)中的分类模型对步骤(6)中未标记的流量数据进行分类。
本发明的一个实施例中,步骤(1)中,获取主干网流量数据的具体方法如下:
(1.1)于2021年11月23日、24日和28日分9个时间段在校园网的一条3Gbps链路上用pf_ring工具采集数据集,总采集时间为2300秒,捕获的流量为606.3GB;
(1.2)采集数据集时分不同时间点在相同节点采集,从而尽可能扩大采集到的协议种类数,并将数据集保存为pcap文件,根据采集的时间顺序将流量数据划分为训练数据和测试数据,训练数据为前1500秒采集的,共372.3GB,测试数据为后800秒采集的,共234GB。
本发明的一个实施例中,步骤(2)中,使用统计对齐字节概率进行特征提取的示意图如图2所示,具体方法如下:
(2.1)第一步为自动识别流量中的频繁字符,具体方法如下:
(2.1.1)如图3所示,本发明使用随机数模拟概率密度分布,发现1024个随机数模拟出的概率密度函数已经接近正态分布,所以在流量数据中,本发明将每条流的前1024个数据包垂直对齐;
(2.1.2)为有效负载的前100个字节分别设置计数器向量,因为每一字节有256种组合方式,所以一个计数器向量对应记录256种组合出现的具体次数,并通过式(2-1)计算出现的概率,其中Nij代表第i个字节中第j种组合的出现次数;
(2.1.3)基于式(2-2)进行正态分布分析,当数据包个数为1024时,μ是0.003906,σ是0.001977,算得x为0.009837,所以随机分布在(-∞,0.009837]的概率为99.87%,即字符概率超过0.009837为小概率事件,频繁字符的概率会表现出高于随机字符的统计特性,本发明设置阈值为0.02,提取字符概率高于0.02的字符作为频繁字符,并记录每条流含有频繁字符的字节位置数p;
(2.2)第二步为提取特征向量,具体方法如下:
(2.2.1)因为一次传输的数据量大小超过最大传输单元(MTU)时,数据包将被分片,分片后只有第一个数据包含有协议格式,因此,为了避免不必要的数据包参与特征提取,对每条流的后续数据包进行过滤,筛选出前100个字节中至个字节位置数含有频繁字符的数据包;
(2.2.2)将过滤出的数据包垂直对齐、为前20字节设置计数器向量并计算字符概率,然后重新设置阈值0.2,记录高于0.2的字符概率作为特征向量,最终一条流被数字化为含有5120个属性的特征向量;
(2.2.3)因为协议头部的字节对协议格式更重要,所以将特征向量按5个字节为一组,从4到1递减分配权重,以区分重要性。
本发明的一个实例中,步骤(3)中,使用无监督聚类的具体方法如下:
(3.1)由于无法预知流量中含有的协议数量,所以选择不需要提前定义聚类类别数的凝聚聚类方法进行聚类,从而能够提高聚类效率,降低聚类阶段的时间和计算成本;
(3.2)在聚类过程中,使用轮廓系数来评价和确定聚类结果,该指标综合考虑了内聚度和分离度两种因素,能够有效评估聚类性能。如图4所示,在距离阈值为3.0时聚类效果最好,此时流量被分为2914个类别。
本发明的一个实例中,步骤(4)中,合并相似聚类的具体方法如下:
(4.1)首先使用式(2-3)计算每一聚类中所有特征向量的平均值作为特征均值,其中y是聚类Ci中含有的特征向量数,(xa)j是第j个特征向量的第a维属性;
(4.2)通过特征均值使用式(2-4)计算两两聚类间的欧式距离,其中是/>的第j个特征属性;
(4.3)记录特征均值中前5个含有非零概率的位置和频繁字符,然后比较所有聚类是否在相同位置含有相同的字符,本发明将相似度定义为两个聚类在相同位置含有的相同字符数量除以字节位置数,如式(2-5)所示,其中Si和Sj是聚类i和j提取出的字符,他们的交集表示两个聚类在相同位置含有相同的字符,len()是计算数量的函数,Li和Lj是提取出的前5个位置,由于能够提取出频繁字符的位置数可能不足5个,所以取位置数的最小值;
(4.4)设置欧式距离的阈值6.0和相似度的阈值0.6,如果两个聚类间的相似度大于等于0.6且欧氏距离小于等于6.0,则进行合并,并且将特征向量少于10个的类别合并为其他类,因为特征向量数太少无法满足训练模型的需要;
(4.5)使用Wireshark辅助聚类的合并以及协议格式、标签的确定,使聚类标签与实际协议更好的对应,提高聚类结果的可解释性,最终识别出40种协议。
本发明的一个实施例中,步骤(5)中,使用有监督算法进行模型训练的具体方法如下:
(5.1)将已标记的训练数据按7:3的比例划分为训练子集和验证子集;
(5.2)使用随机森林对训练子集和验证子集进行训练,以验证子集上的F1-score为指标,获得性能良好的分类模型。
本发明的一个实例中,步骤(6)中通过统计对齐字节概率方法对测试数据进行特征提取的具体步骤与步骤(2)中对训练数据进行特征提取的步骤相同。
本发明的一个实例中,步骤(7)中,对新到达的未知流量数据进行分类的具体方法如下:
(7.1)通过步骤(5)中获得的分类模型对未标记的测试数据进行分类;
(7.2)定义预测准确率P_acc,计算方法如式(2-6)所示,其中Lsame是训练集和测试集中三元组(传输协议、IP、Port)和标签均相同的流的数量,Tsame是训练集和测试集中三元组相同的流的数量,实验结果表明P_acc达到了99.28%,说明本发明提出的方法性能良好。
本发明方案所公开的技术手段不仅限于上述实施方式所公开的技术手段,还包括由以上技术特征任意组合所组成的技术方案。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
Claims (5)
1.一种面向应用层未知网络协议的流量分类方法,其特征在于,该方法包括以下步骤:
步骤(1)在主干网络中通过数据采集工具分不同时间采集流量数据,先采集的流量作为训练数据,后采集的流量作为测试数据,对训练数据的处理进入步骤(2),对测试数据的处理进入步骤(6);
步骤(2)通过统计对齐字节概率的特征提取方法提取训练数据的特征,获得特征向量;
步骤(3)使用无监督机器学习方法对步骤(2)获得的特征向量进行聚类标注,获得聚类结果;
步骤(4)使用合并相似聚类算法对步骤(3)获得的聚类结果进行相似聚类的合并,统一相同协议的聚类标签;
步骤(5)使用有监督机器学习方法对步骤(4)中已标记的流量数据进行模型训练,获得分类模型;
步骤(6)通过统计对齐字节概率的特征提取方法提取测试数据的特征,获得特征向量;
步骤(7)使用步骤(5)中的分类模型对步骤(6)中未标记的流量数据进行分类;
所述步骤(2)中统计对齐字节概率的特征提取方法具体包含如下子步骤:
(2.1)第一步为自动识别流量中的频繁字符,具体方法如下:
(2.1.1)在流量数据中,将每条流的前n个数据包垂直对齐;
(2.1.2)为有效负载的前k个字节分别设置计数器向量,因为每一字节有256种组合方式,所以一个计数器向量对应记录256种组合出现的具体次数,并通过式(1-1)计算出现的概率,其中Nij代表第i个字节中第j种组合的出现次数;
(2.1.3)基于正态分布分析设置阈值th1,提取字符概率高于th1的字符作为频繁字符,并记录含有频繁字符的字节位置数p;
(2.2)第二步为提取特征向量,具体方法如下:
(2.2.1)因为一次传输的数据量大小超过最大传输单元(MTU)时,数据包将被分片,分片后只有第一个数据包含有协议格式,因此,为了避免不必要的数据包参与特征提取,对每条流的后续数据包进行过滤,筛选出前k个字节中至少个字节位置数含有频繁字符的数据包;
(2.2.2)将过滤出的数据包垂直对齐、为前m字节设置计数器向量并计算字符概率,然后重新设置阈值th2,记录高于th2的字符概率作为特征向量,最终一条流被数字化为含有256m个属性的特征向量;
(2.2.3)因为协议头部的字节对协议格式更重要,所以将特征向量按位置分配一个阶梯下降的权重,以区分重要性;
所述步骤(4)具体包含如下子步骤:
(4.1)首先使用式(1-2)计算每一聚类中所有特征向量的平均值作为特征均值,其中y是聚类Ci中含有的特征向量数,(xa)j是第j个特征向量的第a维属性;
(4.2)通过特征均值使用式(1-3)计算两两聚类间的欧式距离,其中是/>的第j个特征属性;
(4.3)记录特征均值中前t个含有非零概率的位置和频繁字符,然后比较所有聚类是否在相同位置含有相同的字符,将相似度定义为两个聚类在相同位置含有的相同字符数量除以字节位置数,如式(1-4)所示,其中Si和Sj是聚类Ci和Cj提取出的字符,他们的交集表示两个聚类在相同位置含有相同的字符,len()是计算数量的函数,Li和Lj是提取出的前t个位置,由于能够提取出频繁字符的位置数可能不足t个,所以取位置数的最小值;
(4.4)设置欧式距离的阈值th3和相似度的阈值th4,如果两个聚类间的相似度大于等于th4且欧氏距离小于等于th3,则进行合并;
(4.5)使用Wireshark辅助聚类的合并以及协议格式、标签的确定,使聚类标签与实际协议更好的对应,提高聚类结果的可解释性;
所述步骤(6)中通过统计对齐字节概率方法对测试数据进行特征提取的具体步骤与步骤(2)中对训练数据进行特征提取的步骤相同。
2.根据权利要求1所述的一种面向应用层未知网络协议的流量分类方法,其特征在于,所述步骤(1)具体包含如下子步骤:
(1.1)在主干网络的一个节点上通过数据采集工具采集一定时间的流量数据集,为保证数据集满足协议种类丰富、统计分析以及训练、验证、测试机器学习模型的需要,数据集大小为300G以上,具体采集时间可根据主干网络带宽动态调整;
(1.2)采集数据集时分不同时间点在相同节点采集,从而扩大采集到的协议种类数,并将数据集保存为pcap文件,根据采集的时间顺序对流量数据进行划分,先采集的流量作为训练数据,后采集的流量作为测试数据,划分数据集时保证训练数据多于测试数据,划分的时间比例为2:1。
3.根据权利要求1所述的一种面向应用层未知网络协议的流量分类方法,其特征在于,所述步骤(3)具体包含如下子步骤:
(3.1)由于无法预知流量中含有的协议数量,所以选择不需要提前定义聚类类别数的自适应聚类方法进行聚类,从而能够提高聚类效率,降低聚类阶段的时间和计算成本;
(3.2)在聚类过程中,使用轮廓系数来评价和确定聚类结果,所述轮廓系数综合考虑了内聚度和分离度两种因素,能够有效评估聚类性能。
4.根据权利要求1所述的一种面向应用层未知网络协议的流量分类方法,其特征在于,所述步骤(5)具体包含如下子步骤:
(5.1)将已标记的训练数据按7:3的比例划分为训练子集和验证子集;
(5.2)使用有监督机器学习分类器对训练子集和验证子集进行训练,得到性能良好的分类模型。
5.根据权利要求1所述的一种面向应用层未知网络协议的流量分类方法,其特征在于,所述步骤(7)具体包含如下子步骤:
(7.1)通过步骤(5)中获得的分类模型对未标记的测试数据进行分类;
(7.2)使用评价指标评估分类结果,从而验证本发明的分类性能。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210469493.8A CN114666273B (zh) | 2022-04-30 | 2022-04-30 | 一种面向应用层未知网络协议的流量分类方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210469493.8A CN114666273B (zh) | 2022-04-30 | 2022-04-30 | 一种面向应用层未知网络协议的流量分类方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114666273A CN114666273A (zh) | 2022-06-24 |
CN114666273B true CN114666273B (zh) | 2024-02-09 |
Family
ID=82036765
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210469493.8A Active CN114666273B (zh) | 2022-04-30 | 2022-04-30 | 一种面向应用层未知网络协议的流量分类方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114666273B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115664906B (zh) * | 2022-10-18 | 2023-05-02 | 中国人民解放军军事科学院***工程研究院 | 一种tdma信号协议无监督聚类方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107819698A (zh) * | 2017-11-10 | 2018-03-20 | 北京邮电大学 | 一种基于半监督学习的网络流量分类方法、计算机设备 |
CN110290022A (zh) * | 2019-06-24 | 2019-09-27 | 中国人民解放军陆军工程大学 | 一种基于自适应聚类的未知应用层协议识别方法 |
-
2022
- 2022-04-30 CN CN202210469493.8A patent/CN114666273B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107819698A (zh) * | 2017-11-10 | 2018-03-20 | 北京邮电大学 | 一种基于半监督学习的网络流量分类方法、计算机设备 |
CN110290022A (zh) * | 2019-06-24 | 2019-09-27 | 中国人民解放军陆军工程大学 | 一种基于自适应聚类的未知应用层协议识别方法 |
Non-Patent Citations (2)
Title |
---|
Network Traffic Classification Method Supporting Unknown Protocol Detection;Hongyu Liu 等;2021 IEEE 46th Conference on Local Computer Networks (LCN);第311-314页 * |
基于层次聚类的多策略未知协议分类方法;代先勇 等;信息安全与 通信保密;第88-100页 * |
Also Published As
Publication number | Publication date |
---|---|
CN114666273A (zh) | 2022-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110572382B (zh) | 基于smote算法和集成学习的恶意流量检测方法 | |
CN109218223B (zh) | 一种基于主动学习的鲁棒性网络流量分类方法及*** | |
CN112381121A (zh) | 一种基于孪生网络的未知类别网络流量的检测与识别方法 | |
CN110012029A (zh) | 一种区分加密和非加密压缩流量的方法和*** | |
CN109981474A (zh) | 一种面向应用软件的网络流量细粒度分类***及方法 | |
CN113489685B (zh) | 一种基于核主成分分析的二次特征提取及恶意攻击识别方法 | |
CN112528277A (zh) | 一种基于循环神经网络的混合入侵检测方法 | |
CN114915575B (zh) | 一种基于人工智能的网络流量检测装置 | |
CN114866485B (zh) | 一种基于聚合熵的网络流量分类方法及分类*** | |
CN114666273B (zh) | 一种面向应用层未知网络协议的流量分类方法 | |
Kong et al. | Identification of abnormal network traffic using support vector machine | |
CN114500396A (zh) | 区分匿名Tor应用流量的MFD色谱特征提取方法及*** | |
CN116150688A (zh) | 智能家居中轻量级的物联网设备识别方法与装置 | |
Shrivastav et al. | Network traffic classification using semi-supervised approach | |
CN104468276A (zh) | 基于随机抽样多分类器的网络流量识别方法 | |
CN114978593B (zh) | 基于图匹配的不同网络环境的加密流量分类方法及*** | |
CN113746707B (zh) | 一种基于分类器及网络结构的加密流量分类方法 | |
CN113794653B (zh) | 一种基于抽样数据流的高速网络流量分类方法 | |
CN114124437B (zh) | 基于原型卷积网络的加密流量识别方法 | |
CN114124565B (zh) | 一种基于图嵌入的网络入侵检测方法 | |
CN112187664B (zh) | 一种基于半监督学习的应用流自动分类方法 | |
CN114390002A (zh) | 基于分组条件熵的网络流量多模块聚类异常检测方法 | |
CN113225319A (zh) | 软件定义网络异常流量检测方法 | |
CN113762374B (zh) | 一种基于改进密度峰值聚类的异常轨迹检测方法 | |
CN115086043B (zh) | 一种基于最小公共子序列的加密网络流量分类识别方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |