刘亮 由健林 张磊
摘要:随着虚拟专用网技术的广泛使用,VPN加密流量的分类识别对于网络安全管理的重要性愈发明显,而传统流量分类技术在提取特征和关键协议字段时效率较低.因此,本文提出一种基于卷积神经网络的深度学习模型,用以实现SSL VPN加密流量的分类识别,并减少特征工程中的人力成本.首先,将流量区分为VPN加密流量和非VPN加密流量,并且确定出这两类流量所属的服务类型;然后对所有流量进行分类,识别出产生流量的应用类型.考虑到网络流量中存在的时序关系,采用一维卷积神经网络作为深度学习的模型,通过构建Pytorch的实验环境,采用ISCX2016数据集,实现对VPN加密流量的分类任务.通过参数优化,除数据量较小的数据类型外,应用识别的平均F1-score为91.73%,流量识别的平均F1-score为91.13%.实验结果表明,基于一维卷积神经网络的深度学习方法对于识别SSL VPN流量是可行和有效的.
关键词:加密流量分类;深度学习;一维卷积;SSL VPN
收稿日期: 2022-07-27
基金项目: 四川省科技计划项目(2021YFG0159,2022YFG0171)
作者简介: 刘亮(1982-),男,四川叙永人,高级工程师,研究方向为系统安全、恶意代码分析、漏洞挖掘与利用、网络安全.
E-mail: liangzhai118@scu.edu.cn
通讯作者: 张磊.E-mail: zhanglei2018@scu.edu.cn
Classification and identification of SSL VPN
encrypted traffic based on deep learning
LIU Liang, YOU Jian-Lin,ZHANG Lei
(School of Cyber Science and Engineering,Sichuan University,Chengdu 610065,China)
With the widespread use of virtual private network technology,the importance of classification and identification of VPN encrypted traffic for network security management is becoming more and more obvious,while traditional traffic classification technology is less efficient in extracting features and key protocol fields. To address this,this paper proposes a deep learning model based on convolutional neural network to realize the classification and identification of SSL VPN encrypted traffic and reduce the labor cost in feature engineering. The model first classifies traffic into VPN encrypted traffic and non-VPN encrypted traffic,and determines their corresponding service types,and then classifies all traffic and identifies the application generating the traffic.Considering the timing relationship in the network traffic,a one-dimensional convolutional neural network is used as a deep learning model. This paper constructed a PyTorch experimental environment and used the ISCX2016 dataset to realize the task of classifying VPN-encrypted traffic. Through parameter optimization,except for data types with a small amount of data,the average F1-score of application identification is 91.73%,and the average F1-score of traffic identification is 91.13%. Experimental results show that the deep learning method based on one-dimensional convolutional neural network is feasible and effective for identifying SSL VPN traffic.
Encrypted traffic classification;Deep learning;One-dimensional convolution; SSL VPN
1 引 言
随着人们对于网络安全意识的逐步提高以及对于网络中的数据安全需求愈发强烈,网络中加密流量数据占比越来越高,虚拟专用网(Virtual Private Network,VPN)被广泛地应用至流量加密过程中.因此,对于加密流量中的VPN加密流量的分类识别是十分重要的[1].
目前,国内外的研究学者提出了很多的加密流量分类方法,主要可以分为基于有效负载、基于负载随机性、基于数据分组、基于行为和基于机器学习的识别方法[2].基于有效负载的识别方式主要是通过分析数据分组中应用层的有效载荷对流量进行识别分析,但在加载数据包的过程中会触及到数据本身的隐私性,当涉及到私有协议以及加密协议的时候,难以起作用.Korczyński等人[3]提出了一种根据SSL/TLS协议头的消息序列,创建一阶马尔可夫链,并将其作为基于马尔可夫链的随机指纹检测方法,用于该会话中的指纹信息.负载随机性的检测是基于数据包携带相同特征字段的特征,因此他们不是完全随机加密的.Khakpour等人[4]提出了一种根据熵值来识别数据流文件类型的方法,该方案主要依据二进制流的熵值介于文本流于加密流之间的特性,可以精细化的识别如视频、图像和可执行文件,也可以识别具体的图像格式的文件类型.基于数据分组分布的检测方法的原理是根据网络中不同类型业务在数据传输过程中分组大小的差异来进行识别.高长喜等人[5]提出了一种根据分组长度签名和DFI决策及混合DPI与DFI算法进行的加密流量应用识别,利用分组的序列位置、方向、分组长度等流统计特征.基于行为的识别方法根据不同应用产生的不同行为特征进行识别,基于该方式产生的分类结果往往是较为宽泛且粗颗粒度的.Schatzmann等人[6]通过分析主机与协议的关系以及周期性从HTTPS数据流中识别出加密的Web文件数据.基于机器学习的方法根据加密流量特征进行提取,但需要较大的人力成本.Alshammari等人[7]将多种机器学习的方法(AdaBoost、GP、SVM、Nave Bayes、RIPPER)相结合,对加密和未加密的流量SSH和Skype进行了测试,实验结果表明该方法具有较好的识别性能并且能够适用在不同的环境下.
加密后的流量数据不再是明文显示,因此传统的基于端口、深度包检测等流量分类方法不再适用于加密流量的分类[8].目前针对加密流量的分类主要是机器学习的方式,但是该方法需要对网络数据流提取特征,需要大量的人力成本和特定领域的知识,同时选取特征的好坏往往决定了分类器的最终效果[9].深度学习通过使用特征学习以及层次特征提取取代了手工特征获取的方式,可以有效地解决机器学习特征选择的问题.本文选择网络空间安全领域中较为常见的网络流量分类问题进行研究,即流量分类和应用程序分类,提出了一种基于卷积神经网络(Convolutional Neural Networks,CNN)算法的加密流量分类方案,针对公开的数据集ISCX VPN-non VPN进行研究,创建模型解决网络加密的分类任务.
2 相关技术背景
2.1 VPN加密流量
VPN即虚拟专用网,是指使用密码学和访问控制技术在公共网络中建立的专用通信网络,其功能在于保护网络连接及隐私服务.当客户端连接到VPN服务后,VPN服务器将会对客户端进行验证,此后服务器会对客户端的所有数据应用加密协议并创建加密隧道传输数据.VPN服务将数据打包在外部数据包中,通过封装对其加密,当数据到达VPN服务器后,外部数据包将被移除从而访问内部数据,完成解密过程.VPN通过对数据包的加密和数据包目标地址的转换实现远程访问.VPN按照隧道安全协议通常可以分为SSL VPN、PPTP VPN、LTP VPN、MPLS VPN、IPsec VPN.SSL VPN和IPsec VPN是目前最常用的两种VPN技术.论文重点研究OpenVPN客户端生成的SSL VPN流量的识别.
2.2 SSL协议
SSL VPN是采用SSL(Security Socket Layer)/TLS(Transport Layer Security)协议来实现远程接入的一种轻量级VPN技术[10].SSL/TLS 协议在传输层和应用层之间对网络连接加密,用于保护应用层数据,对传输的数据进行加密[11].目前广泛应用于Web浏览器和服务器间身份认证和加密数据传输过程中.
SSL协议可以分为两层,即SSL记录协议(SSL Record Protocol)和SSL握手协议(SSL Handshake Protocol).SSL记录协议建立在可靠的传输协议(如TCP)之上,所有的传输数据都被封装在记录中.记录是由记录头和记录数据组成的.所有的SSL通信包括握手消息、安全空白记录和应用数据都使用SSL记录层.SSL握手协议建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等.
2.3 PCAP文件格式
PCAP(Packet Capture)文件格式是一种表示网络数据流的数据包存储格式,一般由网络数据包捕获工具Wireshark和Tcpdump以Pcap文件的格式保存数据包.Pcap文件格式的一般结构如图1所示,由一个Byte全局报头(Global Header)、Byte的数据报包头(Packet Header)以及该包头所对应的数据包(Packet Data)所构成[12].Packet Data是链路层的数据帧.
2.4 卷积神经网络
神经网络(Neural Networks,NNs)是由一些简单的、高度互联的处理单元组成的计算系统,这些处理单元通过对外部输入的动态响应来处理信息.神经网络通常由大量神经元及神经元之间的连接组成,每个连接有一个权值,学习过程中通过数据样本的反馈调整权值,以实现预期的输出.
卷积神经网络CNN是一种由一个或多个卷积层和全连接层组成的反馈前向神经网络.该学习方法可以自动学习特征,从而避免了人工特征提取等繁琐的工作及可能带来的误差[13].目前CNN已经成功应用于自然语言处理和机器视觉等不同的领域,并包含1D-CNN和2D-CNN两种方式.1D-CNN可以捕获网络数据包中相邻字节之间的空间依赖关系[14],可以对流量分类找到区别的模式,能够有效的完成网络流量分类任务,因此论文选择1D-CNN实现加密流量分类任务.
3 技术方案
本文所研究的加密流量分类任务针对于原始网络数据流Pcap格式进行分类,使用公开数据集ISCX VPN-non VPN进行分类任务,构造CNN的神经网络结构模型来识别VPN加密流量.对于所属流量类型分类,将VPN流量和非VPN流量进行分类,而后对于流量所属的流量类型进行分类;对于应用类型分类,将所有流量进行分类,区分出流量所属于的应用类型.图2展示了论文的加密流量分类流程.
基于深度学习的SSL VPN加密流量的分类识别的总体框架如图3所示.由于原始数据集中包含许多与流量分类无关的特征,首先对数据进行预处理,除去与加密流量分类无关或内容相同的数据.对于清洗过后的数据集,不同类别样本间差距较大,采用欠采样来平衡不同类别间的差异.而后划分训练集和测试集,构造CNN神经网络结构进行训练,生成分类模型,并在测试集上进行验证,完成加密流量分类任务.
3.1 数据集
实验采用公开的VPN-Non-VPN数据集(ISCXVPN),数据集由加拿大网络安全研究所搜集[15].数据集中使用TCPDump和Wireshark软件捕获流量.对于VPN流量,使用OpenVPN进行SSL VPN连接,此外,该数据集中还包含捕获的Tor软件流量,如表1所示.该数据集共产生七类应用流量,包括Web、电子邮件、聊天、流媒体、文件传输、IP语音和点对点.这些文件分为两类,分别是通过VPN会话和非VPN会话捕获的数据包[16].
3.2 数据预处理
卷积神经网络作为深度学习的一种模型,输入特征的提取是使用卷积操作完成的,对于卷积层而言,一个N×N平方的神经元作为输入,滤波ω为m×m,该层的输出为zl,大小为(N-m+1)×(N-m+1),则计算如下式.
因此在数据预处理阶段,需要对原始数据进行处理以便卷积层中进行卷积操作.
VPN-Non-VPN数据集是在数据链路层捕获的,以太网报头中的有关物理链路的信息对于应用程序识别或流量类型识别是没有实际作用的,故在预处理阶段首先去除以太网报头.在传输层中,TCP和UDP两种协议的报头长度不同,TCP协议通常为20字节的报头长,UDP为8字节的报头长,需要在UDP协议的报头末尾补充0,使得长度相同.然后去除应用层没有数据或DNS数据包.数据集是使用有限数量的主机和服务器捕获,因此屏蔽IP地址来防止可能的过拟合现象.卷积神经网络需要固定大小的输入,而大多数网络数据包的大小受到1500 byte最大传输单元(MTU)的限制,实验中将截断长度设置为1500 byte,不足1500 byte的数据包在末尾补零.最后将数据包字节除以255,将输入值控制在[0,1]范围内,从而便于更快捷的运算.数据预处理过程如图4所示.
数据预处理之后,由于样本不同类别间数量差异较大,使用欠采样(under-sampling)的方式随机去除主要类的样本使得数据集相对均衡,来降低数据集本身不平衡对模型分类造成的影响.而后,按照8∶2的比例划分训练集和测试集.
3.3 CNN分类模型
基于CNN的加密流量分类模型如图5所示.它由两个卷积层、一层最大池化层、一层Flatten层和三个全连接层组成,最后使用Softmax分类器应用于分类任务中.在卷积层中,每一层都使用RELU()激活函数,增加网络结构中的非线性关系.经过卷积层处理后的数据输入至最大池化层,通过Flatten层将多维的输入一维化,作为卷积层到全连接层的过渡,随后将该层的输出作为输入传递至全连接神经元所组成的三层网络中.为避免过拟合现象,使用0.05的dropout()函数.最后使用Softmax()分类器进行分类任务,使用Adam作为模型的优化器,对模型进行训练.
4 实验与分析
基于深度学习的SSL VPN加密流量的分类识别模型采用Python语言编写,使用深度学习中的PyTorch库实现,实验环境配置见表2.
4.1 评价指标
准确率,精确率,召回率和F1-score是统计分类中常用的4个指标.准确率代表方法的整体效果,精确率,召回率和F1-score决定了某类流量的识别效果.因此实验中选择精确率,召回率和F1-score作为流量分类的评价指标.
精确率表示识别的流量在多大程度上是准确的,并衡量识别系统的准确性.召回率表示已识别出多少正确条目,衡量识别系统的召回率.F1-score是在精确率和召回率基础上提出的概念,用于对两者整体评价.下面式子为3个指标的计算方式,其中TP、FP和FN分别表示真阳性、假阳性和假阴性.
4.2 流量分类结果
基于CNN的分类模型中对于所属应用分类和流量类型分类采用不同的超参数设定,超参数的设定参照文献[17]中对加密流量分类取得最好结果的参数,两种分类训练模型使用的超参数见表3.
在测试集上评估模型的分类效果,分类结果如表4和表5所示.
在应用类型分类中,对于FTPS应用的识别效果最好,F1-score为0.997,而对于AIM Chat、Email、Gmail和ICQ类应用分类识别的效果较差,这些类别所具有的共性特点在于数据集中该类别的数据量较少.对于其他数据内容,召回率达到92%,实现了应用类型的分类结果.对于流量类型分类,对于VPN流量的识别效果要比Non VPN流量识别效果更好,在VPN流量分类中,VPN Torrent的识别效果最好,F1-score为0.998,VPN Chat识别效果相对较差,F1-score为0.796.
在应用程序识别和流量类型分类的测试集上评估神经网络产生如图6和图7所示的列归一化混淆矩阵.其中,混淆矩阵的列对应于样本实际所对用的类,矩阵的行表示为模型预测后所属标签,主对角线上的颜色的深浅表示对每个类别的分类召回率.在应用分类中,可以发现在识别AIM Chat与ICQ产生了混淆,这两者均被用于在线聊天应用,具有一定的相似性.在流量类型分类中,部分Chat类型流量被分类至Email流量中,是由于Email流量中也会额外的提供在线聊天的服务,从而产生了混淆.
综合应用识别和流量识别的分类结果,表明CNN的神经网络结构能从训练集中提取和学习识别特征,并成功进行流量分类.
4.3 实验评估
(1)方法评估.本文采用卷积神经网络实现加密流量分类任务,相比于文献[8-20]中的工作,本文中不仅对流量所属的流量类型进行分类,同时对于所产生流量的应用类型也进行了分类.对应用分类和流量分类中的分类结果在精确率、召回率和F1值上也有提升.
(2)分类结果评估.对于网络加密流量的分类,数据集和评估标准在加密流量分类中并不一致,因此,分类结果评估中考虑采用相同实验数据集(ISCX VPN-NonVPN数据集)并且提供分类具体指标的内容进行评估实验.
对于加密流量应用类型的分类,对比文献[21]中使用两层图卷积网络的加密流量分类方法,对各应用流量分类的结果,使用F1-score评分进行对比,如表6所示.对于加密流量应用类型识别,本文在9种应用类别中取得更好的分类结果.
对于VPN加密流量类型分类,对比文献[18]和文献[20]中构造的神经网络分类结果,如表7所示.文献[18]中构造了四层卷积层的神经网络结构对加密流量数据进行分类.对比两者加密流量类型的分类结果,采用F1-score评分进行对比.对于File Transfer、Streaming和VOIP流量类型,本文取得更好的分类效果.对比文献[20]中的分类结果,对于Email、File Transfer和Streaming流量类型,本文取得更好的分类结果.
(3)有效性评估.本文将构建的神经网络模型在数据集上的分类结果与文献[22]中采用决策树算法和文献[18]中采用的CAE和CNN模型进行六类加密流量分类结果的对比,从而验证本文提出的神经网络模型的有效性,如表8所示.
从分析结果可知,本文构建的网络模型在加密流量类型分类上取得较好的结果,相较于文献[18]中提出的卷积网络模型,本文在精确率、召回率和F1-score上分别提高了0.21%、7.84%和3.48%,相比于决策树和卷积自动编码的网络模型,本文的分类结果也取得最好的效果.
综合分类结果评估和有效性评估内容,在应用类型具体分类结果和流量类型分类中,各类别的具体分类结果相比于其他工作有一定程度的提升,从整体上看,本文在加密流量分类上也可以实现流量分类任务.
5 结 论
本文提出一种基于一维卷积神经网络的加密流量分类模型,实现对加密流量的类型和所属应用类型的识别.实验结果表明,通过构造的一维卷积神经网络可以实现对加密流量的分类,同时分析了产生混淆的原因.对于这两类分类模型,除数据量较小的数据类型外,应用识别的平均F1值达到91.73%,流量识别的平均F1值达到91.13%,能够实现对SSL VPN加密流量的有效识别.
参考文献:
[1]吉庆兵,陈江涛,潘炜.基于深度学习的加密网络流量识别方法研究[J].通信技术,2021,54: 152.
[2]孙中军,翟江涛,戴跃伟. 一种基于DPI和负载随机性的加密流量识别方法[J]. 应用科学学报,2019,37: 711.
[3]Korczyński M,Duda A. Markov chain fingerprinting to classify encrypted traffic [C]//IEEE INFOCOM 2014-IEEE Conference on Computer Communications. Toronto,Canada:IEEE,2014: 781.
[4]Khakpour A R,Liu A X. An information-theoretical approach to high-speed flow nature identification[J]. IEEE/ACM T Netw,2013,2: 1076.
[5]高长喜,吴亚飚,王枞.基于抽样分组长度分布的加密流量应用识别[J].通信学报,2015,36: 65.
[6]Schatzmann D,Mühlbauer W,Spyropoulos T,et al. Digging into HTTPS: flow-based classification of webmail traffic [C]//Proceedings of the 10th ACM SIGCOMM Conference on Internet Measurement. Melbourne,Australia: ACM,2010.
[7]Alshammari R,Zincir-Heywood A N. Can encrypted traffic be identified without port numbers,IP addresses and payload inspection? [J]. Comput Netw,2011,55: 1326.
[8]李毅聃,阮方鸣,陈润泽.基于聚合残差网络的加密流量分类方法[J].现代计算机,2022,28: 38.
[9]Yao H,Liu C,Zhang P,et al. Identification of encrypted traffic through attention mechanism based long short term memory [J]. IEEE T Big Data,2022,8: 241 .
[10]王顺满,王成儒,杨鼎才.安全套接层协议及其设计[J].计算机安全,2001(4): 30.
[11]Shi J,Liu M,Hou C,et al. Online encrypted mobile application traffic classification at the early stage: challenges,evaluation criteria,comparison methods [C]//Proceedings of the 2021 IEEE 6th International Conference on Computer and Communication Systems (ICCCS). Chengdu,China: IEEE,2021: 1128.
[12]Aceto G,Ciuonzo D,Montieri A,et al. Encrypted multitask traffic classification via multimodal deep learning[C]//ICC 2021-IEEE International Conference on Communications. Montreal,Quebec,Canada: IEEE,2021: 1.
[13]Wang Y,Yun X,Zhang Y,et al. A multi-scale feature attention approach to network traffic classification and its model explanation [C]//Proceedings of the IEEE Transactions on Network and Service Management.USA: IEEE: 2022: 875.
[14]Huo Y,Ge H,Jiao L,et al. Encrypted traffic identification method based on multi-scale spatiotemporal feature fusion model with attention mechanism[C]//Proceedings of the 11th International Conference on Computer Engineering and Networks. Singapore Springer,2022: 857.
[15]王宇航,姜文刚,翟江涛.面向SSL VPN加密流量的识别方法[J].计算机工程与应用,2022,58: 143.
[16]Ma Q,Huang W,Jin Y,et al. Encrypted traffic classification based on traffic reconstruction [C]//Proceedings of the 2021 4th International Conference on Artificial Intelligence and Big Data (ICAIBD). Chengdu,China: IEEE,2021: 572.
[17]Lotfollahi M,Jafari S M,Shirali H Z R,et al. Deep packet: a novel approach for encrypted traffic classification using deep learning [J]. Soft Comput,2020,24: 1999.
[18]Guo L,Wu Q,Liu S,et al. Deep learning-based real-time VPN encrypted traffic identification methods [J]. J Real-Time Image Proc,2020,17: 103.
[19]郭路路,段明,王磊,等.基于卷积自编码的Open VPN加密流量识别方法[J].信息工程大学学报,2019,20: 410.
[20]宋继红,王桐桐.基于特征融合卷积神经网络的加密流量分类方法[J].信息与电脑:理论版,2021,33: 49.
[21]Sun B,Yang W,Yan M,et al. An encrypted traffic classification method combining graph convolutional network and autoencoder [C]//Proceedings of the 2020 IEEE 39th International Performance Computing and Communications Conference (IPCCC). Austin,USA: IEEE,2020: 1.
[22]Draper-Gil G,Lashkari A H,Mamun M S I,et al. Characterization of encrypted and vpn traffic using time-related [C]//Proceedings of the 2nd international conference on information systems security and privacy (ICISSP). [S.l.]: Online Streaming, 2016: 407.
引用本文格式:
中 文: 刘亮,由健林,张磊. 基于深度学习的SSL VPN加密流量的分类识别[J]. 四川大学学报: 自然科学版,2023,60: 062004.
英 文: Liu L, You J L,Zhang L.Classification and identification of SSL VPN encrypted traffic based on deep learning [J]. J Sichuan Univ: Nat Sci Ed,2023,60: 062004.