一种用于加密代理流量检测的轻量级深度学习方法
加密代理因其规避互联网审查的能力而被犯罪分子广泛用于非法活动(例如在线赌博和暗网交易)。因此,检测加密代理流量至关重要。近年来,基于深度学习的方法已成为主流。许多基于深度学习的方法将互联网流量转换为图像,但转换后的图像通常很大,导致巨大的计算和存储资源开销。为了解决这个问题,提出了一种新的方法来压缩图像大小,以在保持同等性能的同时降低检测加密代理流量的开销。通过分析流的时空特征,我们发现可以利用流中前几个数据包的大小、方向和间隔时间序列来检测加密代理流量。我们比较分析了数据包的大小、方向、间隔时间和图像像素值的特征,并设计了几个方程,将流中前N个数据包的大小、方向和间隔时间序列编码成图像。此外,我们还构建了一个轻量级卷积神经网络(CNN)来对转换后的图像进行分类。实验结果表明,该方法可将图像尺寸至少缩小 90%,并在 ShadowsocksR 流量检测中达到 99.67% 的 F1 得分,在 VPN 流量检测中达到 99.44% 的 F1 得分。这些结果表明,该方法有效且高效。由于其高效的性能,该方法可以应用于大规模网络流量分析任务。
1. 简介
在过去的几年中,越来越多的网络用户使用加密代理服务(例如 V2Ray [ 1 ]、虚拟专用网络(VPN)[ 2 ] 和 ShadowsocksR [ 3 ])。
加密代理是用户规避互联网监管和审查的有效工具。然而,它们也被犯罪分子用于非法活动(例如,色情传播、网络赌博、网络攻击和网络欺诈)[ 4 ]。因此,加密代理流量检测对于网络安全监控至关重要。
目前,加密代理流量检测主要有两种主流方法:传统机器学习方法和基于深度学习的方法。许多传统的机器学习方法依赖于人工设计的特征,而特征的提取和选择依赖于专家的经验,并且该过程非常耗时耗力,极大地限制了这些方法的泛化能力。近年来,基于深度学习的检测方法因其能够自动学习特征而受到广泛关注。许多基于深度学习的方法将网络流量转换为图像,但转换后的图像通常较大。例如,参考文献[5-8]中的方法将流的数据包有效载荷的前S个字节转换为图像。它们将流的有效载荷字节连接起来,截取前S个字节作为字节流,并将每个字节转换为0到255之间的整数。由于字节流包含大量字节,因此转换后的图像很大,例如784个字节和1521个字节。大图像会导致巨大的计算和存储开销。
为了解决上述问题,提出了一种新的方法来压缩图像大小,以减少检测加密代理流量的开销,同时仍能保持相当的性能。该方法的灵感来源于一个常见的事实:流量的前几个数据包会表现出特定于应用程序的流量特征(例如,客户端-服务器密钥协商)[ 9 , 10 ]。
通过对比分析数据包的大小、方向、间隔时间和图像像素值的特点,我们发现可以通过压缩和扩展的方式将数据包的大小、方向和间隔时间(数据包间隔时间是指同一主机发送或接收的两个数据包之间的时间差)分别编码成图像的像素值。设计了几个方程,只将一个流的前N个数据包的大小、方向和间隔时间序列编码成图像。基于压缩的思想,将数据包的大小和数据包的方向压缩编码成图像的像素值。基于扩展的思想,将数据包的间隔时间扩展编码成图像的像素值。最后,将所有特征的像素值序列连接在一起。此外,构建了一个轻量级的CNN对转换后的图像进行分类。
由于该方法采用了基于映射的特征编码机制,并且只使用少量的特征数据(即流的前 N 个数据包的大小、方向和间隔时间序列),而不是包含大量字节的数据包有效载荷,因此大大压缩了变换后图像的大小。该方法的变换图像比许多基于图像的深度学习方法的变换图像小至少 90%。因此,该方法可以显著减少所需的计算和存储资源,并以轻量级的方式工作。同时,由于该方法的变换图像全面捕捉了双向和单向时空特征的流差异,因此该方法是准确的,并且获得了与最先进的方法(例如参考文献 [ 5,11 ] 中的方法)相当的性能。
此外,该方法能够自动提取和选择特征,避免了手动设计和选择特征的繁琐且耗时的工作。该方法能够实时检测加密代理流量,效率高,可用于大规模网络的流量分析任务。本研究的主要贡献如下:
-
•
发现流的前几个数据包的大小、方向和间隔时间序列可用于检测加密的代理流量。
-
•
我们提出了一种新的加密代理流量检测方法。该方法通过压缩图像大小来减少计算和存储资源开销。
-
•
该方法适用性广泛,可用于网络流量分类、VPN流量检测以及ShadowsocksR和Shadowsocks流量检测。
路线图。第 2 节介绍相关工作。第 3 节分析特征。第 4 节描述所提出的方法,第 5 节进行评估。第 6 节讨论了所提方法的局限性。第 7 节提出结论。
2.相关工作
总结了加密代理流量检测方法和网络流量分类方法,并根据其特点将其分为基于深度学习的方法和传统机器学习的方法。
传统的机器学习方法利用传统的机器学习模型和统计特征对网络流量进行分类或检测加密代理流量。邓等[ 12 ]从网络流量中提取一些特征(如流的包数、流的传出包数、最大突发长度等),然后使用随机森林算法检测Shadowsocks流量。曾等[ 4 ]从主机的DNS行为、主机的流量行为、流之间的关系中提取一些特征(如流突发长度的最大值、流突发次数等),然后使用随机森林算法检测Shadowsocks流量。程等[ 13 ]提出一种结合主动检测和机器学习的方法,他们收集服务器的端口和IP作为数据库,然后使用XGBoost算法对Shadowsocks服务器进行分类。
Shim 等人 [ 9 ] 提出了一种应用级流量分类方法。他们利用一条流的前 N 个数据包的统计信息(即顺序、有效载荷大小和方向)为该应用程序生成独特的有效载荷大小序列 (PSS) 签名。他们通过匹配 PSS 签名来识别应用程序流量。Lu 等人 [ 10 ] 提出了两种基于统计数据的分类器,即消息大小序列分类器 (MSSC) 和消息大小分布分类器 (MSDC)。MSSC 是一种实时方法。MSSC 利用流的前 15 个数据包的大小和方向序列将网络流量分类到应用程序中。MSDC 使用数据包大小分布将网络流量分类到应用程序(例如 Skype 和 SMTP)。
传统的机器学习方法通常通过反复试验的方式手动提取和选择特征。这个过程依赖于专家经验,耗时耗力。随着互联网的发展,网络应用更加多样化,网络流量也更加复杂,设计一些具有良好泛化能力的特征变得更加困难。
基于深度学习的方法能够自动提取和选择特征 14,15 []。Wang 等人 [ 16 ] 首先提出将 TCP 流的有效载荷转换为图像。他们使用自动编码器 (SAE) 或人工神经网络 (ANN) 来识别协议流量并检测异常协议流量。许多方法改进了参考文献 [ 16 ] 中的方法。Wang 等人 [ [17 ] 将参考文献 16 ]中的方法应用于加密流量分类。他们只将流的前几个数据包的有效载荷转换为图像。Cheng 等人 [ 6 ] 提出了一种轻量级卷积神经网络 (CNN) 来实时