摘要
针对加密流量难以识别的问题,提出一种利用神经网络提取通信双方建链信息以识别加密流量的方法。该方法首先获取加密连接建立阶段的交互流量,将流量数据转化为灰度图,然后利用卷积神经网络提取其图像特征,进而提取加密数据流的类别特征。由于在建链阶段就可提取类别信息,所以该方法具有早期识别特性,这能使加密流量的识别与管控实现有机结合。另外,针对背景流量属性集无限大、训练数据不完备的问题,提出将随机数据加入到背景流量中进行数据增强的近似完备法。在真实环境中进行测试,结果显示该方法的准确率达到95.4%,识别耗时为0.1 ms,明显优于对照算法。
近年来,加密数据传输技术被广泛应用,流量加密已成为当前网络的事实标准。流量加密保证了数据传输的安全,但也给网络管理带来了巨大挑战;由于无法对加密流量进行解密,网络管理人员从数据负载内容本身获得的信息非常有限,以致对加密流量的管理非常困难,这使它成为了违法犯罪活动逃避监管的常用工具。报告显
目前网络流量分析技术主要有4
近年来兴起的深度学习方法在语音识别和图像识别等领域取得了巨大成功。深度学习已被广泛用于各类异常识别问
加密连接通常分为两个阶段:建链阶段和数据传输阶段。第一阶段为加密建立连接的建立,执行握手、认证和交换秘钥等动

图1 加密连接的两个阶段
Fig.1 Two stages of encrypted connection
基于深度学习的流量识别方法需要按照一定粒度将流量切分为多个离散单元。流量的切分方式有5种:主机、服务、TCP、流和会话。现在主流的切分方式为流和会

图2 网络流与会话
Fig.2 Network flow and conversation
在TCP/IP协议栈中,网络协议可以分为4层:网络接口层、网络层、运输层和应用层。在数据传输时对应各协议层附加了不同的头部,如

图3 TCP/IP协议数据包结构
Fig.3 Data packet structure of TCP/IP protocol
本文方法从建链阶段双方交互的数据出发,流量切分粒度为会话,使用数据包中所有协议层的数据,结合深度学习方法,识别加密流量。
基于建链信息的密数据流识别方法总体流程包括5个部分:(1)数据预处理,将流量数据按照会话进行切分,获得每一次会话建链阶段的数据,去除类别无关的特征;(2)将建链阶段的数据可视化;(3)针对加密流量识别任务,构建卷积神经网络;(4)模型训练与调优,利用训练数据对卷积神经网络进行训练,逐步调优参数;(5)模型测试,利用测试数据对训练好的模型进行测试与评价,如

图4 加密流量识别的整体流程
Fig.4 Overall process of encrypted traffic identification
为了尽可能多地保存加密流量的特征,在数据预处理阶段将网卡中获得的原始流量切分成会话形式,并使用所有协议层的数据,即整个数据包。训练数据中存在大量的非类别特征,这些特征应当去除。非类别特征是指和特定样本相关,但和类别不相关的特征。例如,每个数据包都含有该次通信的IP地址、端口号和报文的唯一标识符等。由于生成训练数据时流量都由特定的连接产生,所以这些字段和每一次连接强相关,但它们并不能反映流量的类别属性。训练神经网络模型时,模型将非类别特征和加密流量类型标签之间的相关关系,极大地降低模型的泛化性。用随机数代替这些字段的值可以去除这些分类别特征。
一般地,TCP数据包的非类别特征及位置如
加密流量预处理完毕后,将其转化为灰度图。处理步骤为将每个会话中的包依次排列。将每个包中二进制码按照字节重新编码,每个字节对应灰度图中像素值,重复这一过程直到选取1 024字节,若所有的数据不足1 024字节,则末端用0补足1 024字节。这样就将流量数据转化成了一维的像素序列,然后再将像素序列进行正方化,得到一张大小为32像素×32像素的灰度图。

图5 流量文件生成灰度图的过程
Fig.5 Process of generating gray images from flow files
搭建卷积神经网络模型,其有8个可训练层:5个卷积层和3个全连接层,还有3个不可训练的池化层。

图6 卷积神经网络结构
Fig.6 Structure of convolutional neural network
卷积神经网络适用于分类任务,每一类都应有确定的训练数据集,并要求训练数据是完备

图7 利用随机数据实现背景流量数据增强
Fig.7 Background flow data enhancement by using random flow data
数据来自真实环境中的流量,主要涉及两类加密流量:Shadowsocks和V2ray。Shadowsocks和V2ray主要基于Socks5协议,它们使用中转服务器实现数据传输。当浏览器访问某个目标服务时,数据先转发到本地代理客户端,由本地代理客户端加密后转发到远程代理服务器端,由远程代理服务器端请求目标服务,获取应答数据后,再原路返回到浏览器,其原理如

图8 Shadowsocks和v2ray的实现原理
Fig.8 Realization principle of Shadowsocks and v2ray
数据集共有3个类(SV,SS,SB),2个加密数据类和1个背景流量数据类。
实验任务分为两个:(1)验证近似完备法的有效性,并确定随机数据与真实数据的最佳比率R;(2)构建卷积神经网络,依据第一个实验确定的最佳比率R生成训练数据,并训练得到密数据流识别模型,然后与基线方法进行比较。神经网络学习率取0.000 1,优化方法为Adam优化方法。
通常采用准确率Acc(Accuracy),精确率Pre(Precision)和召回率Rec(Recall)来评价识别模型。对Shadowsocks和v2ray类流量的识别能力分开进行评价,当评价模型对某类流量的识别能力时,该类流量作为正类,其他流量类型作为负类。假定TP、FP、FN和TN分别是指正确分类为正样本的数量、错误分类为正样本的数量、错误分类为负样本的数量和正确分类为负样本的数量。各评价指标由以下公式计算得到
除了精度相关的评价指标,流量识别问题还应考虑加密流量识别完成的时刻。流量识别问题通常涉及到“阻断操作”,阻断是指以第三方的身份强制终断某一连接。早期识别指的是,在连接刚建立时,数据传输还没开始或数据传输结束之前,就对其进行类型识别,这在实际应用中有很重要的意义。早期识别并及时阻断非法连接,能防止危害的持续与扩大,而数据传输结束或已传输大部分数据后的阻断将失去意义,所以是否能进行早期识别也是评价流量识别模型的一个重要指标。
利用含有随机数据的数据集和不含有随机数据的数据集进行分组实验,设随机产生的背景流量为数据集SR。对比实验设置为:第0组实验只有真实环境中采集到的背景流量;其他各组实验中同时使用随机数据和真实数据,并成梯度设置随机数据量与真实数据量的比率R。对比实验中,除了随机数据占比不同,其他部分均相同,训练得到多个模型,对比实验设置如
对比实验中,训练数据集中随机数据与真实数据的比率R不同,识别效果不同,

图9 比率R对识别效果的影响
Fig.9 Influence of R on recognition effect
当随机数据和真实数据的比例为1/9时,
由实验1确定了随机数据与真实数据的最佳比率在1/9附近,
本文提出了一种基于建链信息的密数据流识别方法。首先,将加密流量的所有数据包切分成会话形式,以单个会话作为一个样本;然后截取会话数据的前1 024字节,获得会话连接的建链信息;再将这1 024字节大小的样本转换成大小32像素×32像素的灰度图;最后利用卷积神经网络提取连建链阶段流量数据的图像特征,进行加密流量识别,并采用加入随机数据的近似完备法进行数据增强,解决了背景数据空间无限大、实际数据集不完备的问题。最后在真实环境中进行了测试,结果表明该方法具有准确率高、速度快以及早期识别等优点,该方法能很好地解决密数据流的识别问题,其早期识别优势具有实用意义,速度快具有实时性使其能够用在骨干网络管理中。
参考文献
国家计算机网络应急技术处理协调中心. 2019年中国互联网网络安全报告[R].北京:国家计算机网络应急技术处理协调中心,2020. [百度学术]
National Computer Network Emergency Response Technical Team/Coordination Center of China. 2019 China Internet Cybersecurity Report[R]. Beijing: CNCERT/CC, 2020. [百度学术]
彭立志. 互联网流量识别研究综述[J].济南大学学报(自然科学版),2016,30 (2): 95-104. [百度学术]
Peng Lizhi. A survey of internet traffic identification[J]. Journal of University of Jinan (Sci.&Tech. ),2016,30(2): 95-104. [百度学术]
MADHUKAR A, WILLIAMSON C. A longitudinal study of P2P traffic classification[C]//Proceedings of 14th IEEE Internation Symposium on Modeling, Analysis, and Simulation. Monterey, CA, USA: IEEE, 2006: 179-188. [百度学术]
刘泷. 基于DPI的网络业务流量识别技术研究[D]. 曲阜: 曲阜师范大学, 2017. [百度学术]
Liu Long. Research on network service traffic identification technology based on DPI[D]. Qufu: Qufu Normal University, 2017. [百度学术]
Bujlow T, Carelaespanol V, Barletros P, et al. Independent comparison of popular DPI tools for traffic classification[J]. Computer Networks, 2015, 76: 75-89. [百度学术]
潘吴斌,程光,郭晓军,等. 网络加密流量识别研究综述及展望[J].通信学报, 2016, 37(9): 154-167. [百度学术]
Pan Wubin, CHENG Guang, GUO Xiaojun, et al. Review and perspective on encrypted traffic identification research[J]. Journal on Communications, 2016, 37(9): 154-167. [百度学术]
赵博,郭虹,刘勤让,等. 基于加权累积和检验的加密流量盲识别算法[J].软件学报, 2013, 24(6): 1334⁃1345. [百度学术]
Zhao Bo, Guo Hong, Liu Qinrang, et al. Protocol independent identification of encrypted traffic based on weighted cumulative sum test[J]. Journal of Software, 2013, 24(6): 1334⁃1345. [百度学术]
Dhote Y, Agrawal S, Deen A J, et al. A survey on feature selection techniques for internet traffic classification[C]//Proceedings of International Conference on Computational Intelligence and communication Networks. Jabalpur, India: IEEE, 2015: 1375-1380. [百度学术]
Deng Ziye, Liu Zihan, Chen Zhouguo, et al. The random forest based detection of shadowsocks’s traffic[C]//Proceedings of International Conference on Intelligent Human-Machine Systems and Cybernetics (IHMSC). Hangzhou, China: IEEE, 2017: 75⁃78. [百度学术]
张先勇,汤鲲. 基于XGBoost算法结合域名信息筛选的流量识别方法[J]. 电子设计工程, 2019, 27(6): 177-182,187. [百度学术]
Zhang Xianyong, Tang Kun. Traffic identification method based on XGBoost algorithm combined with domain name information screening[J]. Electronic Design Engineering, 2019, 27(6): 177-182,187. [百度学术]
陈良臣,高曙,刘宝旭,等. 网络加密流量识别研究进展及发展趋势[J]. 信息网络安全, 2019, 19(3): 25-31. [百度学术]
Chen Liangchen, Gao Shu, Liu Baoxu, et al. Research status and development trends on network encrypted traffific identifification[J]. Netinfo Security, 2019, 19(3): 19-25. [百度学术]
Merabet H E, Hajraoui A. A survey of malware detection techniques based on machine learning[J]. International Journal of Advanced Computer Science and Applications, 2019, 10(1): 366-373. [百度学术]
Zhang Y D, Chen J G, Chen K M, et al. Network traffic identification of several open source secure proxy protocols[J]. International Journal of Network Management, 2019. DOI:10.1002/nem.2090. [百度学术]
董浩,李烨. 基于卷积神经网络的复杂网络加密流量识别[J]. 软件导刊, 2018, 17(9): 207-211. [百度学术]
Dong Hao, LI Ye. Encrypted traffic classification in complex network based on convolution neural network[J]. Software Guide, 2018,17(9): 207-211. [百度学术]
Velan P, Cermak M, Celeda P, et al. A survey of methods for encrypted traffic classification and analysis[J]. Networks, 2015, 25(5): 355-374. [百度学术]