一种加密流量的服务与应用分类方法及系统转让专利

申请号 : CN201910504060.X

文献号 : CN110417729B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 崔苏苏卢志刚姜波徐健锋刘松崔泽林

申请人 : 中国科学院信息工程研究所

摘要 :

本发明公开了一种加密流量的服务与应用分类方法及系统。本方法为:1)按照会话粒度将待处理的连续流量切分为多个会话流量;2)对处理后的各会话流量按照数据包粒度进行切分,将每一会话流量切分为多个流量组,每一流量组中的数据包个数不超过设定的最大值;3)将各流量组的大小进行统一,然后将每一流量组转换为一流量矩阵,并将流量矩阵及其标签封装为IDX流量文件;4)用上述IDX流量文件训练CapsNet模型,得到具有自动特征选择能力的识别模型;5)对于一待识别加密流量,对其进行划分并转换为流量矩阵然后输入到该识别模型,得到该待识别流量所属的服务类型和应用类别。本发明可对加密流量进行有效分类。

权利要求 :

1.一种加密流量的服务与应用分类方法,其步骤包括:

1)按照会话粒度将待处理的连续流量切分为多个会话流量;

2)对处理后的各会话流量按照数据包粒度进行切分,将每一会话流量切分为多个流量组,每一流量组中的数据包个数不超过设定的最大值;

3)将各流量组的大小进行统一,然后将每一流量组转换为一流量矩阵,并将流量矩阵及其标签封装为IDX流量文件;

4)用上述IDX流量文件训练CapsNet模型,得到具有自动特征选择能力的识别模型;

5)对于一待识别加密流量,对其进行划分并转换为流量矩阵然后输入到该识别模型,得到该待识别流量所属的服务类型和应用类别。

2.如权利要求1所述的方法,其特征在于,第i个会话流量Si中的第j个流量组为Gij;其中Gij={p1=(x1,b1 ,t1) ,…,pi=(xi,bi,ti) ,…,pm=(xm,bm,tm)},m是Gij中的数据包数量,C是设定的数据包最大数

量,会话流量Si中第i个数据包pi=(xi,bi,ti),xi是Gij中第i个数据包的五元组,bi是Gij中第i个数据包的字节长度,ti是Gij中第i个数据包的开始时间,|Si|为会话流量Si中的数据包总数。

3.如权利要求2所述的方法,其特征在于, 其中,Lsample表示存储流量组的文件字节长度,Lheader表示存储流量组的文件的文件头字节长度,Lpacket表示数据包的字节长度。

4.如权利要求1所述的方法,其特征在于,对每一会话流量进行数据清洗,删除Mac地址和IP地址;然后进行步骤2)。

5.如权利要求1所述的方法,其特征在于,将流量组转换为流量矩阵的方法为:将流量组的一维流量编码顺序转换成二维的流量矩阵;其中统一大小的流量组为784字节,转换后的流量矩阵为28*28的流量矩阵。

6.如权利要求1所述的方法,其特征在于,用IDX流量文件训练CapsNet模型的方法为:首先利用第一卷积层对每一流量矩阵执行卷积操作,生成多个特征矩阵;然后对所述特征矩阵进行卷积操作生成多个活动向量;然后将每一活动向量与对应权重矩阵相乘得到预测向量,并对低层的预测向量加权求和作为高层胶囊的输入。

7.一种加密流量的服务与应用分类系统,其特征在于,包括流量预处理模块、模型训练模块和加密流量识别模块;其中,流量预处理模块,用于按照会话粒度将待处理的连续流量切分为多个会话流量;然后对各会话流量按照数据包粒度进行切分,将每一会话流量切分为多个流量组,每一流量组中的数据包个数不超过设定的最大值;然后将各流量组的大小进行统一后将每一流量组转换为一流量矩阵,并将流量矩阵及其标签封装为IDX流量文件;

模型训练模块,利用IDX流量文件训练CapsNet模型,得到具有自动特征选择能力的识别模型;

加密流量识别模块,用于将待识别加密流量的流量矩阵输入到该识别模型,得到该待识别流量所属的服务类型和应用类别。

8.如权利要求7所述的系统,其特征在于,第i个会话流量Si中的第j个流量组为Gij;其中Gij={p1=(x1,b1 ,t1) ,…,pi=(xi,bi,ti) ,…,pm=(xm,bm,tm)},m是Gij中的数据包数量,C是设定的数据包最大数

量,会话流量Si中第i个数据包pi=(xi,bi,ti),xi是Gij中第i个数据包的五元组,bi是Gij中第i个数据包的字节长度,ti是Gij中第i个数据包的开始时间,|Si|为会话流量Si中的数据包总数。

9.如权利要求8所述的系统,其特征在于, 其中Lsample表示存储流量组的文件字节长度,Lheader表示存储流量组的文件的文件头字节长度,Lpacket表示数据包的字节长度。

10.如权利要求7所述的系统,其特征在于,所述流量预处理模块,对每一会话流量进行数据清洗,删除Mac地址和IP地址;然后对各会话流量按照数据包粒度进行切分。

说明书 :

一种加密流量的服务与应用分类方法及系统

技术领域

[0001] 本发明提出了一种加密流量的服务与应用分类方法,它提出了一种新型的流量二次切分机制,同时结合胶囊神经网络(CapsNet)实现加密流量的有效分类,本发明涵盖原始流量的转换、基于CapsNet的模型训练、加密流量的分类,属于网络安全与计算机科学的交叉技术领域。

背景技术

[0002] 近年来,随着互联网技术与信息科学技术的不断发展,网络流量呈爆发式增长。根据思科发布的可视化网络指数预测报告,在公共和私有网络上传送的IP流量数据,包括托管IP流量、消费者生成的移动数据流量以及互联网流量,2017年全球平均每月产生122EB(1EB=220TB)的流量数据,而到2022年全球IP流量将增加两倍,达到每月396EB。与此同时,随着网民对网络世界的需求不断发生变化,使得各种新型业务层出不穷。这些新型业务给网民带来便利的同时,也增加了网络的异构性与复杂性,这给网络安全带来了前所未有的挑战。
[0003] 在网络安全方面,近年来网络安全已经成为互联网所面临的核心问题之一,信息泄露、非法入侵、DDoS攻击等恶意网络行为越来越影响用户对互联网的使用,并且随着技术的发展和进步,网络恶意攻击的流量特性变的日益复杂和隐蔽。根据2018年身份盗窃资源中心的数据,截至2018年9月共有近3420万次盗窃记录;根据Arbor Networks第13期年度基础设施安全报告,2018年上半年DDoS峰值攻击量达到了1.7Tbps,比2017年上半年增加了179%,到2022年,全球DDoS攻击总数将比2017年翻一番,达到1450万。网络管理员需要对网络流量进行分类识别来快速准确的定位网络中存在的异常行为,及时切断恶意入侵的传播途径,尽可能的降低恶意入侵对用户造成的危害和损失。同时,通过流量识别技术可发现未知的、伪装性的Webshell,从Kill Chain的角度来还原整个攻击过程,对攻击者、攻击工具、攻击手法等进行深入分析与画像。
[0004] 网络流量的分类与识别技术贯穿安全态势感知的各个模块,是网络安全态势感知中必不可少的一部分。目前已有大量的网络流量分类与识别技术被提出,大致可分为基于端口的流量识别技术、基于深度包检测的流量识别技术、基于统计的流量识别技术和基于行为的流量识别技术。
[0005] 上述网络流量识别技术对于传统网络应用具有很好的识别效果。然而,自“棱镜”监控项目曝光以后,全球的加密网络流量不断飙升。Sandvine 2018年报告显示互联网上超过50%的流量是加密的,并且会继续增长。为躲避防火墙以及杀毒软件的检测,大多数恶意软件普遍使用流量加密技术隐藏通讯信息。流量加密几乎成为了包括恶意软件在内的所有网络应用的事实标准做法,基于加密流量的识别技术将成为无法解读内容情景下安全威胁检测的重要手段,通过加密流量识别技术分析网络行为、进程行为等关键信息,并通过Kill Chain分析来还原攻击过程,为安全管理员提供威胁处理建议。
[0006] 当前流量识别的研究虽然取得了不少研究成果,但现有成果大多针对非加密流量识别研究。实际流量识别过程中,加密流量识别已不适用于传统的流量识别技术。其中,随着P2P应用的出现及动态端口号技术的广泛使用,利用端口号识别流量的方法不再有效;端口混淆技术的发展进一步限制了它的有效性。与日俱增的加密流量由于隐藏了负载特征,导致无法使用深度包检测方法进行识别,隧道等封装协议技术也进一步限制了其应用。除此之外,由于深度包通过分析应用层数据进行识别,这涉及到侵犯用户隐私的问题。由于缺乏有效的加密流量分析和管理技术,给网络管理与安全带来巨大的挑战。
[0007] 目前,基于机器学习对加密流量进行识别的方法非常丰富,但传统机器学习需要人工提取特征且分类精度过分依赖于特征选择,这不但限制了此方法的可扩展性而且使它无法实现实时分类。深度学习是解决传统机器学习中人工提取特征的一个有效途径,它可以从输入数据中自动提取特征而不需要人为干预,通过模拟人脑的方式建立模型、解释数据,以达到识别互联网中的加密流量,是一个全新的尝试。
[0008] 据统计,基于深度学习的加密流量识别算法主要包括多层感知器(MLP)、堆叠编码器(SAE)、一维卷积神经网络(1dCNN),在大量研究者的加密流量识别算法的比较中发现,基于深度学习的识别算法比传统机器学习的识别算法取得了更高的识别精度,而且在基于深度学习的算法中,1dCNN算法取得了最佳的加密流量识别效果。
[0009] 然而,1dCNN要求特征与位置无关,并且在识别过程中只考虑特征的有无而不考虑特征的位置及其他属性。但我们认为流量中特定字符串的位置以及数据包的排列顺序同样也是需要考虑的特征之一。除此之外,在加密流量的识别任务中,这些编码文件不等同于图片文件,它们不再适用于CNN的池化操作。毫无疑问,无论是最大池化操作还是最小池化操作,都将会丢弃某些信息并且改变编码字符串背后的有效特征。

发明内容

[0010] 针对现有技术中存在的技术问题,本发明提出了一种加密流量的服务与应用分类方法及系统。本发明基于胶囊神经网络(CapsNet)的二次切分机制的加密流量分类模型,将它命名为SPCaps,该模型可对加密流量进行有效分类。本发明针对加密流量不同的划分场景进行分类,具体包括加密流量的服务分类,即根据加密流量的服务类型进行分类,如:网页浏览、流媒体、即时通信等;加密流量的应用分类,即根据加密流量所属的应用程序进行分类,如:Skype,BitTorrent,YouTube等。
[0011] 本发明在数据预处理过程中提出了一种新型的流量二次切分机制,并开发了一套由包括EditCap工具、SplitCap工具、Powershell脚本、Python脚本集成的预处理工具集,目的在于稀释无关流量的比重同时增大有效流量的权重。此外,本发明结合CapsNet算法实现模型的训练,在加密流量分类中,CapsNet可弥补1dCNN的弊端,主要体现在以下方面:1)CapsNet在学习加密流量的空间特征时,其输入输出不再采用传统神经网络的标量,而是通过向量代替,在本发明中,向量的长度表示流量所属类别的概率,向量的方向表示类别的属性包括流量中特定字符串的固定位置及数据包之间的排列顺序。2)CapsNet不再使用卷积神经网络中的池化操作,池化操作在减少连接参数、提炼特征的同时,也丢弃了一些必要的信息,CapsNet舍弃池化操作将更适用于流量这样的编码文件。3)在保证识别精度的前提下,CapsNet比CNN具有更快的识别速度,因此更适用于实时环境下的流量识别。
[0012] 为达到目的,本发明采用具体技术方案是:
[0013] 一种加密流量的识别方法,包括以下步骤:
[0014] 1)按照会话粒度进行第一次切分:基于深度学习的流量分类方法需要首先按照一定粒度将连续流量切分为多个离散单元。网络流量切分方式有五种:TCP连接、流、会话、服务、主机。其中,流和会话是当前研究中使用较多的流量表现形式。因此,本发明将待处理的原始流量按照会话粒度进行第一次切分。会话是指由双向流组成的流量包,即具有相同的五元组(源IP、源端口、目的IP、目的端口、传输层协议),其中,源IP和目的IP可以互换。
[0015] 2)加密流量清洗:在流量分类中,数据链路层的Mac地址和网络层的IP地址(源IP、目的IP)无法作为分类的特征。若流量捕获环境较有限,Mac地址和IP地址会在一定程度上影响模型的训练导致分类的过拟合,因此我们删除数据包中Mac地址以及IP地址的字段。
[0016] 3)按照数据包粒度进行第二次切分:由于从实际网络环境中采集的流量包含一些与分类无关的数据包,这将直接影响模型的训练和测试。因此我们通过设置经过步骤2)流量中数据包的最大数量,对流量继续切分。由于待切分的会话大多表现正常的通信过程,此步骤一方面稀释了原始流量中无关流量的比重,另一方面也增大了有效流量的权重。
[0017] 4)规范加密流量的输入形式:使用神经网络训练数据需要固定大小的输入,因此我们将经过以上步骤的流量文件按照固定字节统一大小,若流量文件大于所设置的固定字节,则删除之后的字节,若流量文件小于固定字节,则用00补充到固定字节。最后,我们将经过以上处理的流量转换为流量矩阵,并通过IDX文件将流量矩阵样本及其标签进行打包,IDX文件是很多CapsNet以及CNN模型使用的输入文件标准格式。
[0018] 5)基于CapsNet的模型训练:使用上述步骤处理后的IDX格式的流量文件,基于CapsNet,采用卷积操作和动态路由机制学习加密流量的空间特征,建立具有自动特征选择能力的高效识别模型,使其能够根据识别加密流量并根据流量的服务类型以及应用程序类型进行有效分类。
[0019] 6)加密流量识别:利用经过以上步骤训练的模型完成加密流量的识别与分类,其中,本发明可在以下场景中实现有效的加密流量分类,包括:1)服务分类,即识别加密流量所属的服务类型;2)应用分类,即识别加密流量所属的具体应用程序。
[0020] 本发明提供一种加密流量的服务与应用分类系统,其特征在于,包括流量预处理模块、模型训练模块和加密流量识别模块;其中,
[0021] 流量预处理模块,用于按照会话粒度将待处理的连续流量切分为多个会话流量;然后对各会话流量按照数据包粒度进行切分,将每一会话流量切分为多个流量组,每一流量组中的数据包个数不超过设定的最大值;然后将各流量组的大小进行统一后将每一流量组转换为一流量矩阵,并将流量矩阵及其标签封装为IDX流量文件;
[0022] 模型训练模块,利用IDX流量文件训练CapsNet模型,得到具有自动特征选择能力的识别模型;
[0023] 加密流量识别模块,用于将待识别加密流量的流量矩阵输入到该识别模型,得到该待识别流量所属的服务类型和应用类别。
[0024] 与现有技术相比,本发明的积极效果:
[0025] 1.本发明提出了一种基于CapsNet的加密流量识别模型,它可以将流量中固定编码的特定位置以及包与包之间的排列顺序作为学习的特征之一。
[0026] 2.本发明提出了一种流量的二次切分机制,用于稀释无关流量的比重和增大有效流量的权重,可在确定流量表现形式的同时实现对流量的有效降噪。
[0027] 3.本发明采用公开可用的ISCX VPN-nonVPN数据集上评估SPCaps模型,实验结果表明在加密流量服务和应用识别任务中SPCaps优于最先进的识别方法。

附图说明

[0028] 图1是本发明的整体流程图。
[0029] 图2是本发明的流量二次切分机制示意图。
[0030] 图3是本发明的基于CapsNet的模型架构示意图。
[0031] 图4是ISCX VPN-nonVPN数据集中原始流量在会话粒度下的尺寸分布图。

具体实施方式

[0032] 为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明的目的、特征和优点能够更加明显易懂,下面结合附图对本发明中技术核心作进一步详细的说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0033] 在本发明中,设计了一种加密流量的服务与应用分类方法。该方法的总体思路是通过预处理工具集对真实环境下的加密流量进行切分、清洗、规范,稀释无关流量的比重并增大有效流量的权重,进而基于CapsNet建立模型学习加密流量的空间特征,最终可实现有效的加密流量识别及服务与应用的分类。
[0034] 本发明的整体流程图如图1所示,所述方法的具体步骤细节描述为:
[0035] (1)原始流量的转换
[0036] 本发明在数据预处理阶段,为了降低原始流量的噪音和规范它的输入形式,我们将通过以下五个步骤完成原始流量的转换:Pcap-Sessions切分,删除MAC地址和IP地址,Session-Packets切分,统一输入尺寸,转换为IDX。
[0037] 1)Pcap-Sessions切分:基于深度学习的流量识别方法需要将连续的流量以某种特定的粒度切分为离散单元。原始流量P是一个包含不同数据包的集合,表示为P={p1,…,p|P|}。其中,一个数据包pi被定义为:
[0038] pi=(xi,bi,ti)   (1)
[0039] 其中,i=1,2,...,|P|,bi∈(0,∞),ti∈[0,∞),xi是第i个数据包的五元组(源IP,源端口,目的IP,目的端口,传输层协议),bi是第i个数据包的字节长度以及ti是第i个数据包的开始时间。原始流量根据会话粒度进行第一次切分。一个会话Si是含有相同五元组的双向流的集合,它被定义为:
[0040] Si={p1=(x1,b1,t1),...,pn=(xn,bn,tn)}   (2)
[0041] 其中,x1=…=xn,t1<…
[0042] 2)删除Mac地址和IP地址:Mac地址和IP地址无法作为训练过程中的特征,相反,它们的存在容易造成模型的过拟合,因此,我们通过丢弃数据包中对应位置的字符串来删除Mac地址和IP地址。本步骤具体由EditCap工具实现。
[0043] 3)Session-Packets切分:真实环境下捕获的网络流量存在大量尺寸较小的会话,它们往往是与流量识别无关的会话,例如SNMP,DNS和ARP数据段,这严重影响流量的有效识别。由于那些尺寸较大的会话是通信过程中的主要活动而且它们只有少量的无关数据包,因此我们提出了一种Session-Packets切分方式,用于稀释无关流量的比重和增大有效流量的权重。它通过设置会话流量中数据包的最大值来继续切分每一会话(即离散单元),得到每一会话对应的多个流量组,每一流量组中的数据包最多不能超过设定的最大值。G表示经过Session-Packets切分后的最新流量组,被定义为:
[0044]
[0045] 其中,Gij是第i个会话流量Si中的第j个最新流量组,m是Gij中的数据包数量,C是数据包的最大数量,它被定义为:
[0046]
[0047] 其中,Lsample表示存储流量组的文件字节长度,Lheader表示存储流量组的文件的文件头字节长度,Lpacket表示数据包的数据字节长度;流量矩阵在转换为IDX文件之前的表现形式都是.pcap文件,其除了包含流量数据以外,还包含标识文件信息的文件头(.txt.jpg等文件都有文件头),文件头占了112字节,所有离散单元的最大值C是统一的,本文设定C=16。流量组字节长度统一为784字节,数据包删除Mac地址和IP地址后的最小字节长度为40字节,经以上处理文件头固定有112字节,理论上的最大包数量应为16.8字节,但由于包数量应为整数,且按照奇数切分容易打乱数据包之间的通信顺序,因此,设置C为16。之所以这样定义的原因是我们希望能充分利用流量组G来预测整个会话。在我们看来,流量组G中包含的数据包数量越多,则越具有代表性。因此,我们使得C尽可能大以充分发挥流量组G代表性。我们将二次切分机制(Pcap-Sessions切分和Session-Packets切分)总结如图2所示,原始流量按照会话的流量表现形式进行Pacp-Sessions切分,然后通过设置会话流量中数据包的最大数量C对会话流量进行Session-Packets切分。本步骤具体由EditCap工具实现。
[0048] 4)统一输入尺寸:使用神经网络需要固定大小的输入,因此我们将流量组G统一为784字节,如果流量尺寸大于784字节,则仅保留最开始的784字节;如果流量尺寸小于784字节,则用设定字符串(比如0x00)补齐到784字节。本步骤具体由Powershell脚本实现。
[0049] 5)转换为IDX:我们将784字节的流量转换为28*28的流量矩阵,即将一维784字节的流量编码顺序转换成28*28的流量矩阵。随后将这些流量矩阵及其标签打包为IDX文件,IDX文件是许多CapsNet和CNN模型的标准输入。本步骤具体由Python脚本实现。
[0050] (2)基于CapsNet训练模型
[0051] 本发明基于CapsNet算法,以由IDX封装的流量矩阵及标签为数据集,为加密流量建立服务分类模型及应用分类模型。算法主要包含卷积操作和动态路由,其架构图如图3所示。
[0052] 1)卷积操作
[0053] 首先模型读取经过以上预处理的28*28的流量矩阵,同时对它们作归一化处理。在ReLU卷积层中,首先使用256个尺寸为9*9的卷积核对每一流量矩阵执行步数为1的卷积操作,生成256个尺寸为20*20的特征矩阵。然后,第二个卷积层PrimaryCaps作为胶囊的输入层构建向量结构。PrimaryCaps在256个特征矩阵中执行8次不同权重的卷积操作,每次卷积操作将使用32个尺寸为9*9的卷积核执行步数为2的卷积操作,最终生成6*6*32个8维向量,即活动向量,每个活动向量都是由8个普通卷积单元组成的胶囊单元。
[0054] 2)动态路由
[0055] 神经网络的第三层DigitCaps用于传递和更新胶囊的输入,包括仿射变换和动态路由两个步骤。在仿射变换中,低层PrimaryCaps层输出的活动向量ui与权重矩阵Wij相乘得到预测向量 高层胶囊的输入sj由 加权求和所得,被定义为:
[0056]
[0057] 其中,每一活动向量ui分别对应一权重矩阵Wij,Wij由符合标准正态分布的随机数初始化生成,通过损失函数进行更新,cij是由迭代的动态路由确定的耦合系数。
[0058] 动态路由机制的目的在于寻找胶囊输出与下一层胶囊输入的最佳路径,而找到“最佳路径”的方法之一就是通过迭代的方式找到最符合输出的输入向量,符合度通过输出向量和输入向量(仿射变换和加权求和后的向量)的内积所表征,这个符合度直接被加入到cij中,本发明通过多次参数优化决定将迭代次数设置为3。公式(5)中cij的更新公式如下:
[0059] cij=softmax(bij)   (6)
[0060] 其中,bij是胶囊i耦合到胶囊j的对数先验概率。
[0061] 胶囊输出向量的长度表示属于某个类别的概率,因此其取值范围应在[0,1]之间,此过程通过压缩函数来实现,其定义如下:
[0062]
[0063] 其中,vj是胶囊j的输出向量,sj是胶囊j所有的输入向量。
[0064] Wij和整个网络的其他卷积参数通过损失函数进行更新,因此,我们采用Margin loss函数作为损失函数,其定义为:
[0065] Lc=Tcmax(0,m+-||vc||2)+λ(1-Tc)max(0,||vc||-m-)   (8)
[0066] 其中,c是预测类别,Tc是一个指示函数,当c预测正确时,Tc等于1,反之,Tc等于0。m+是向量长度||vc||的上边界,m-是向量长度||vc||的下边界。另外,我们按照0.0005的比例缩小重构损失,以使它不会主导训练过程中的Margin loss损失函数。
[0067] 待识别的流量矩阵经过CapsNet,输出N个16维向量,N表示流量待分类的类别总数,向量的长度代表流量属于某个类别的概率,向量的方向代表流量的属性包括固定字符串的位置及数据包间的顺序。然后将N个16维向量通过softmax分类器输出待识别流量矩阵属于每一类别的概率,最大概率的类别为流量的预测类别,预测类别是本模型的最终输出。
[0068] (3)加密流量的识别及应用与服务分类
[0069] 利用经过以上步骤训练的模型完成加密流量的识别与分类,即对于一待识别分类的流量,首先将其划分并转换为流量矩阵,然后将流量矩阵输入上述训练好的模型即可得到该流量的类别,包括:1)服务分类,2)应用分类。
[0070] (4)实验结果对比
[0071] 为验证本发明的有效性,我们采用ISCX VPN-nonVPN数据集作为原始数据,它包含150个原始流量文件,其中包含6种常规加密流量(Chat、Streaming、VoIP等)和6种VPN流量(VPNChat、VPNStreaming、VPNVoIP等),另外,有9个原始流量文件是由Tor软件捕获的5种不同应用程序产生的流量。由于Tor流量只支持互联网上的加密链接和TCP流,很难跟踪和分析它们的流量。因此,我们提取它们来实现Tor的应用程序分类。最后,我们借助精度、查准率、查全率、F1值四个指标与现有方法比较,以此评估本发明的有效性。
[0072] 具体地,我们将实验分为:1)评估和比较数据预处理中删除MAC地址和IP地址及二次切分机制的有效性;2)评估和比较SPCaps在加密流量服务分类任务中的有效性;3)评估和比较SPCaps在加密流量应用分类任务中的有效性。
[0073] 1)预处理结果
[0074] 我们采用上述原始流量转换步骤对ISCX VPN-nonVPN数据集进行预处理,在执行Pcap-Sessions切分后,我们统计了用于服务分类的会话流量的字节尺寸分布如图4所示。
[0075] 可以看出,会话流量的尺寸分布极不平衡,在这12种流量中,超过50%的会话流量不足0.5KB,这其中大多是与分类任务无关的流量。尤其是,Chat、Email、File、和Voip中有80%以上的会话流量不足0.2KB。因此,会话流量的尺寸分布证实了Session-Packets切分在预处理过程中的必要性和合理性。根据公式(4),在Session-Packets切分步骤中我们设置每个会话中包的最大数量为16。最后,在加密流量的服务分类任务中,类别名称、所含应用程序和流量总计如表1所示。
[0076] 表1为加密流量服务分类的样本内容
[0077] 类别 应用程序 总计Chat AIM Facebook Hangouts ICQ Skype 11365
Email Email Gmail 12822
File Ftps SCP Sftp Skype 19553
P2P Torrent 60000
Streaming Facebook Hangouts Netflix Skype Spotify Vimeo YouTube 21273Voip Facebook Hangouts Skype Voipbuster 21000
VPNChat AIM Facebook Hangouts ICQ Skype 13710
VPNEmail Email 2890
VPNFile Ftps Sftp Skype 17528
VPNP2P Bittorrent 6000
VPNStreaming Facebook Netflix Spotify Vimeo YouTube 12000
VPNVoip Hangouts Skype Voipbuster 14805
[0078] 2)预处理对比
[0079] 在原始流量的转换过程中,我们提出删除Mac地址和IP地址来避免过拟合,同时我们提出Session-Packets切分对传统的会话流量进行第两次切分。除此之外,为了证明在流量分类中CapsNet比1dCNN更合适,在每次实验中,我们均使用这两个神经网络算法进行对比。因此,我们在ISCX VPN-nonVPN数据集上共执行了六项不同的加密流量服务分类任务,实验结果如表2所示。
[0080] 表2为预处理对比实验结果
[0081]
[0082]
[0083] 结果显示,无论是1dCNN还是CapsNet,我们提出的删除Mac地址和IP地址以及Session-Packets切分均展示了更好的分类效果。除此,在两个神经网络的对比实验中可以看出,CapsNet比1dCNN展示了更高的分类精度和F1值。
[0084] 3)加密流量服务分类的对比
[0085] 为了评估和比较SPCaps在加密流量服务分类中的有效性,我们采用ISCX VPN-nonVPN中的12中流量进行实验。如表3所示,实验结果显示精度可达99.1%,而且每个类别的查准率和查全率均在97%以上。
[0086] 表3为加密流量服务分类实验结果
[0087]
[0088] 接下来,在加密流量服务分类中,我们将SPCaps与现有的基线方法进行比较,比较结果如表4所示。结果显示,SPCaps表现出更好的分类效果且达到了实际应用标准。
[0089] 表4为加密流量服务分类的SPCaps与基线方法比较结果
[0090]方法 输入形式 查全率 查准率 F1值
SPCaps Session-Packets 99.3 99.3 99.3
1dCNN Session 90.6 88.9 89.7
SAE Deep Packets 92 92 92
1dCNN Deep Packets 94 93 93
[0091] 4)加密流量应用分类的对比
[0092] 为了评估SPCaps在Tor流量的应用程序分类任务中的有效性,我们对ISCX VPN-nonVPN中的5种由Tor捕获的不同应用程序的流量进行实验,实验结果如表5所示。结果显示,SPCap在Tor流量的应用程序分类任务中,精度可达99.8%。
[0093] 表5为加密流量应用分类实验结果
[0094]
[0095]
[0096] 接下来,在加密流量应用分类中,我们将SPCaps与现有的基线方法进行比较,比较结果如表6所示。结果显示,SPCaps在Tor的应用分类中取得了突破效果。
[0097] 表6为加密流量应用分类SPCaps与基线方法比较结果
[0098]方法 查全率 查准率 F1值
SPcaps 99.4 99.5 99.5
SAE 57 44 30
1dCNN 35 40 36
[0099] 以上实验均表明了SPCaps可以实现有效的加密流量分类,且实验结果达到了实际应用的标准。
[0100] 以上所述实施例仅表达了本发明的实施方式,其描述较为具体,但并不能因此理解为对本发明范围的限制。应当指出,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明的保护范围应当以所附权利要求为准。