FlowPic  \text{ FlowPic }  FlowPic :加密流量分类与应用识别的通用表示

FlowPic: A Generic Representation for Encrypted Traffic Classification and Applications Identification

Name Institution Email
Tal Shapira School of Electrical Engineering, Tel-Aviv University talshapira1@mail.tau.ac.il
Yuval Shavitt School of Electrical Engineering, Tel-Aviv University shavitt@eng.tau.ac.il
来源 级别 年份
IEEE Transactions on Network and Service Management SCI 2区 2021

摘要

识别网络流类型或特定应用程序具有多重优势,例如支持流量工程、检测和防止违反组织安全策略的应用程序或应用类型。加密技术(如  VPN  \text{ VPN }  VPN )的使用使得此类识别具有挑战性。现有方案主要依赖人工提取特征,再通过监督学习技术进行分类。本文提出了一种新颖的加密互联网流量分类和应用程序识别方法:将基础流数据转换为直观图像(  FlowPic  \text{ FlowPic }  FlowPic ),再利用图像分类深度学习技术(  CNNs  \text{ CNNs }  CNNs )识别流类别(浏览、聊天、视频等)及具体应用程序。实验表明,该方法在特定应用程序或流分类任务中均能实现高精度分类,对  VPN  \text{ VPN }  VPN   Tor  \text{ Tor }  Tor 流量同样有效。我们的分类器还能高成功率识别训练阶段未包含的类别新应用这意味着新版本或新应用无需额外训练即可完成分类。
索引术语—互联网流量分类,应用程序识别,安全管理,图像识别,卷积神经网络。


I. 引言

近年来,互联网流量分类已成为热门研究领域[1]-[4],其应用于服务质量(  QoS  \text{ QoS }  QoS )实现、流量工程、执法监管甚至恶意软件检测。然而,随着互联网流量加密趋势的增强以及  VPN  \text{ VPN }  VPN   TOR  \text{ TOR }  TOR 使用量的上升,该任务愈发困难。当前加密流量分类技术大多依赖从流量流中提取统计特征(即特征提取),随后通过特征选择过程剔除无关特征,最终采用决策树、  SVM  \text{ SVM }  SVM (支持向量机)、  KNN  \text{ KNN }  KNN (K近邻)等浅层监督学习方法进行分类

近年来,深度学习[5]的进步推动了多个领域的重大发展。卷积神经网络(  CNNs  \text{ CNNs }  CNNs )尤其在图像分类领域[6]取得突破性进展,该领域也是  CNNs  \text{ CNNs }  CNNs 研究的前沿方向。凭借这些进展,  CNNs  \text{ CNNs }  CNNs 的应用已在医疗、文本分类、视觉文档分析、年龄性别识别及基因组学等领域[5]变得普遍。此外,图像分类技术的成熟使其能够集成至智能手机等日常产品中。

本文提出了一种新颖的互联网流量分类方法,可将流量归类为语音(  VoIP  \text{ VoIP }  VoIP )、视频、文件传输、聊天和浏览等类别,并实现具体应用程序识别。我们基于图像识别的优异成果,将互联网流转换为图像:针对每个流,通过数据包大小和到达时间生成图像(称为  FlowPic  \text{ FlowPic }  FlowPic ),再将  FlowPic  \text{ FlowPic }  FlowPic 输入  CNN  \text{ CNN }  CNN 进行分类。实验表明该方法具有极高的分类精度(如流量类别分类准确率超96%,浏览类除外,详见表IV)。该方法对  VPN  \text{ VPN }  VPN 流量的分类准确率达99.2%,对  Tor  \text{ Tor }  Tor 流量的分类准确率也超89%(文件传输类除外)。如表IV所示,即使仅使用非  VPN  \text{ VPN }  VPN /  Tor  \text{ Tor }  Tor 流量训练  CNN  \text{ CNN }  CNN ,仍能以78.9%-99.4%的准确率分类  VPN  \text{ VPN }  VPN 流量类别。此外,使用10个语音/视频应用程序训练模型时分类准确率达99.7%,使用5个经  VPN  \text{ VPN }  VPN 传输的同类应用程序时准确率达100%。Chen等人[7]虽提出将流参数自卷积图像输入CNN ,但其图像缺乏人类可理解的直观性。

研究表明,本方法能捕获流量类别的本质特征。例如,训练时排除某类应用(如不含Facebook视频数据),仍能以99.9%的准确率将其正确归类。这意味着新应用或新版本的出现可能无需重新训练现有模型。

本研究的核心贡献在于提出一种通用互联网流量分类框架:利用流中全部时序和尺寸信息,而非依赖人工提取特征;支持基于单向流短时间窗口分类,无需完整双向会话数据;所有实验(流量类别分类、加密技术识别和应用程序检测)采用统一架构,未针对特定问题调整模型以追求额外精度提升。

本方法的另一优势是不依赖数据包载荷内容,避免了隐私侵犯问题。相较于基于载荷内容分类的方法[8]-[11],本方法仅需传输每个数据包的两个字段(大小和到达时间),大幅降低存储需求,使近实时分类成为可能。

全文结构如下:第二节综述相关工作,第三节介绍数据集,第四节阐述  FlowPic  \text{ FlowPic }  FlowPic 的生成与结构,第五节描述  CNN  \text{ CNN }  CNN 架构与训练过程,第六节展示实验结果。最后两节总结全文并展望未来研究方向。


II. 相关工作

近期研究中探讨了三种类型的互联网流量分类问题:1) 互联网流量分类[12],也称为流量特征化,如  VoIP  \text{ VoIP }  VoIP 、文件传输、视频等;2) 互联网应用识别[13][14],如  Facebook  \text{ Facebook }  Facebook   YouTube  \text{ YouTube }  YouTube   Skype  \text{ Skype }  Skype 等;3) 特定应用内的用户行为识别[15],例如在  apple iMessage  \text{ apple iMessage }  apple iMessage [16]发送文本消息或在  YouTube  \text{ YouTube }  YouTube [17][18]观看特定视频。

针对这些分类问题存在多种方法,主要分为三大类:1) 基于载荷的流量分类方法[19][20],即深度数据包检测(  DPI  \text{ DPI }  DPI )。由于侵犯隐私、计算成本高且无法处理当前大多数加密流量,这些方法存在缺陷;2) 基于端口的方法——依赖数据包头部字段值(最常用的是  TCP  \text{ TCP }  TCP /  UDP  \text{ UDP }  UDP 端口号)。这类方法快速简单,过去被广泛使用,但随着动态端口和默认端口的普及,其效率下降;3)基于统计与机器学习的方法[21],通常通过手动提取与时间/大小相关的特征,并应用复杂模式或监督学习算法作为分类器。

此外,还有混合方法[22]结合了已知端口分类器、数据包载荷签名等。我们将重点讨论最相关的工作,主要是统计与机器学习方法。

许多研究聚焦于特征生成过程。2005年,Moore等人[23]基于双向流创建了包含 248 \text{248} 248个描述符的列表,包括  RTT  \text{ RTT }  RTT (往返时延)统计、基于大小的统计、到达间隔时间统计和频率等。同年,Moore与Zuev[24]应用朴素贝叶斯核估计器进行分类。Fahad等人[25]研究特征选择(  FS  \text{ FS }  FS ),比较五种经典  FS  \text{ FS }  FS 方法并提出集成方法,在Moore的列表[23]上验证发现,虽然计算成本较高,但其鲁棒性和性能显著提升准确性。

基于流特征(时间/大小相关特征)的研究包括:Draper-Gil等人[26]使用流字节/秒、到达间隔时间等统计特征,对  Non-VPN  \text{ Non-VPN }  Non-VPN   VPN  \text{ VPN }  VPN 流量生成双向流,应用  C4.5  \text{ C4.5 }  C4.5   KNN  \text{ KNN }  KNN 分类器达到 80 \text{80} 80%以上准确率。Zhang等人[27][28]采用 20 \text{20} 20个单向流统计特征,通过词袋(  BoF  \text{ BoF }  BoF )技术建模同应用的流关联信息,提出鲁棒流量分类(  RTC  \text{ RTC }  RTC )方案,其性能显著优于主流机器学习方法。

近年神经网络相关研究包括:Ertam与Avci[29]用遗传算法(  GA  \text{ GA }  GA )从 12 \text{12} 12个属性选择特征,基于小波核极限学习机(  ELM  \text{ ELM }  ELM )对 7 \text{7} 7类常规流量(  non-VPN  \text{ non-VPN }  non-VPN )实现 95 \text{95} 95%以上准确率。Lopez-Martin等人[11]结合  RNN  \text{ RNN }  RNN   CNN  \text{ CNN }  CNN ,基于会话中每个数据包的 6 \text{6} 6个特征分类,使用端口信息时准确率达 95 \text{95} 95%,无端口信息时降至 84 \text{84} 84%,暴露其方法局限性。

基于数据包载荷的方法如:Wang[8]与Wang等人[9]将载荷转换为归一化字节序列输入神经网络,并利用一维卷积神经网络(  CNN  \text{ CNN }  CNN ,详见第五节)改进  ISCX VPN-nonVPN  \text{ ISCX VPN-nonVPN }  ISCX VPN-nonVPN 数据集[26]分类效果。Lotfollahi等人[10]在相同数据集上应用  CNN  \text{ CNN }  CNN 与自编码器取得良好性能。这类方法虽在测试数据表现优异,但依赖原始字节结构易过拟合,且无法泛化到未知应用或处理  VPN  \text{ VPN }  VPN /  Tor  \text{ Tor }  Tor 加密流量。Wang等人[9]的  VPN  \text{ VPN }  VPN 分类成功依赖于训练/测试数据使用相同加密方法与密钥。

Chen等人[7]将流参数自卷积转换为图像输入神经网络,但方法描述不足难以复现。其实验包括 5 \text{5} 5种协议(  FTP  \text{ FTP }  FTP   HTTP  \text{ HTTP }  HTTP   SSH  \text{ SSH }  SSH   TFTP  \text{ TFTP }  TFTP   TLSV  \text{ TLSV }  TLSV )分类和 5 \text{5} 5种应用分类,后者在未公开数据集上准确率显著低于本文工作。

在我们初步成果[1]发表后,相关研究如Zhang等人[30]提出自主模型更新方案处理新应用,Pacheco等人[31]模拟卫星通信并提出深度学习框架分类异构流量。Aceto等人[4]系统比较深度学习(  DL  \text{ DL }  DL )算法在移动加密流量中的应用,认为  DL  \text{ DL }  DL 潜力巨大但尚未成熟。后续工作[32]提出多模态  DL  \text{ DL }  DL 框架  MIMETIC  \text{ MIMETIC }  MIMETIC ,结合载荷与协议字段进行分类。Iliyasu与Deng[33]针对加密流量标注难题,提出基于  DCGAN  \text{ DCGAN }  DCGAN 的半监督方法,以少量标注样本实现高准确率。

近期Hardegen等人[34]提出流数据流处理流水线,基于  NetFlow  \text{ NetFlow }  NetFlow 数据训练  DL  \text{ DL }  DL 模型预测流量优化特征。Qin等人[35]率先避免人工特征选择,采用双向流载荷大小分布(  PSD  \text{ PSD }  PSD )概率,通过Renyi交叉熵度量  PSD  \text{ PSD }  PSD 相似性。如第四节所述,我们扩展  PSD  \text{ PSD }  PSD 方法构建二维直方图流表示,同时利用时间与大小相关特征。


III. 数据集

为验证我们的方法,我们使用来自新不伦瑞克大学(UNB)的带标签数据包捕获(  pcap  \text{ pcap }  pcap )文件数据集:“ISCX VPN-非VPN流量数据集”(ISCX-VPN)[26]和"ISCX Tor-非Tor数据集"(ISCX-Tor)[36],以及我们自建的小型数据包捕获库(TAU)[1]。ISCX-VPN包含 7 \text{7} 7种流量类型(  VoIP  \text{ VoIP }  VoIP   Chat  \text{ Chat }  Chat 等)的捕获流量,涵盖常规流量会话(非VPN)和VPN会话。ISCX-Tor同样包含 7 \text{7} 7种流量类型,覆盖常规流量会话(非VPN)和Tor会话。由于UNB数据集中聊天类流量不足,我们额外捕获了  WhatsApp Web  \text{ WhatsApp Web }  WhatsApp Web 聊天、  Facebook  \text{ Facebook }  Facebook 聊天和  Google Hangout  \text{ Google Hangout }  Google Hangout 聊天的流量。最终使用的组合数据集仅包含样本充足的五类流量:  VoIP  \text{ VoIP }  VoIP 、视频、聊天、浏览和文件传输。这些类别包含三种加密技术:非VPN、VPN(除浏览类外)和TOR。需注意我们的分类与[26][36]的建议略有差异,各类别具体应用及加密技术详见表I。

在这里插入图片描述

表I 各流量类别与加密技术对应的捕获协议及应用列表

A. 数据集准备

数据集由多个捕获文件构成,每个文件对应特定应用、流量类别和加密技术。由于应用程序执行单任务时可能同时产生多类会话(例如使用  Facebook  \text{ Facebook }  Facebook 进行  VoIP  \text{ VoIP }  VoIP 时,会伴随  STUN  \text{ STUN }  STUN 会话维护通话质量,以及  HTTPS  \text{ HTTPS }  HTTPS 会话维持网站连接),我们通过人工筛选确保数据准确性

  1. 移除明显不匹配标签的会话(如  TCP  \text{ TCP }  TCP 流中的  UDP  \text{ UDP }  UDP 数据包)
  2. 删除指向其他已知服务IP地址的数据包

每个  pcap  \text{ pcap }  pcap 文件按应用、加密技术和流量类别标注后,被拆分为单向流。流定义采用五元组格式:{源IP, 源端口, 目的IP, 目的端口, 协议}。本数据集已公开提供¹https://www.eng.tau.ac.il/~shavitt/FlowPic.htm

B. 数据增强

为增加训练样本并减少过拟合,我们将每个单向流切分为等长区块。实验采用 60 \text{60} 60秒块[26],设置 45 \text{45} 45秒重叠窗口(相邻区块起始时间差 15 \text{15} 15秒)。该方法借鉴目标检测中的边界框掩模技术[37]:例如 10 \text{10} 10分钟  VoIP  \text{ VoIP }  VoIP 通话可生成 10 \text{10} 10个非重叠块或 37 \text{37} 37个重叠块,每个区块具有细微差异。需注意增强过程在训练/测试集划分后进行,确保同一会话的区块不会跨集合重叠。各类别加密技术的总区块数详见表II。

在这里插入图片描述

表II 各流量类别与加密技术对应的会话区块数量

C. 敏感性分析

为评估数据增强过程对结果的影响,我们对比了仅含非重叠 60 \text{60} 60秒会话区块数据与上述重叠会话数据集在"类vs全"任务(详见第VI-A节)中的表现。通过重叠样本训练:

• 样本充足的  VoIP  \text{ VoIP }  VoIP 、视频、浏览类未获得提升
• 样本稀缺的聊天和文件传输类分类准确率提升 0.5 \text{0.5} 0.5%

我们通过测试不同区块长度( 15 \text{15} 15 30 \text{30} 30 60 \text{60} 60 120 \text{120} 120秒非重叠区块),对  FlowPic  \text{ FlowPic }  FlowPic 构建方法的敏感性展开深入分析。结果显示,不同区块长度的平均准确率差异最大为 1.25 \text{1.25} 1.25%,表明结果对区块长度不敏感。本文后续实验均采用 60 \text{60} 60秒区块


IV. 图像转换阶段

A. FlowPic 构建

作为预处理阶段,我们从每个流中提取记录,每条记录包含流中每个数据包的{  IP  \text{ IP }  IP 数据包大小,到达时间}对列表。随后,将相同流量类别且采用相同加密技术的所有列表合并为单一集合。

我们的目标是构建基于流二维直方图的图像。如第  II  \text{ II }  II 节所述,该图像可视为有效载荷大小分布(  PSD  \text{ PSD }  PSD )的阵列[35],其中每个  PSD  \text{ PSD }  PSD 属于单向流中特定时间区间。在第一阶段,通过定义 X \text{X} X轴为数据包到达时间、 Y \text{Y} Y轴为数据包大小来绘制所有记录对。由于绝大多数数据包大小未超过  1500  \text{ 1500 }  1500 字节(以太网  MTU  \text{ MTU }  MTU 值),因此忽略大小超过  1500  \text{ 1500 }  1500 的数据包(不到  5  % \text{ 5 }\%  5 %的数据包),并将 Y \text{Y} Y轴范围限制为  1  \text{ 1 }  1   1500  \text{ 1500 }  1500 

对于 X \text{X} X轴,首先通过减去流中首个数据包的到达时间来归一化所有到达时间值。为简化处理,将二维直方图设为正方形图像。为此,将所有归一化后的到达时间值映射到  0  \text{ 0 }  0   1500  \text{ 1500 }  1500 区间(例如  60  \text{ 60 }  60 秒映射为  1500  \text{ 1500 }  1500 )。接着将所有归一化对插入二维直方图,其中每个单元格记录对应时间区间和大小范围内的数据包数量

此过程生成  1500  \text{ 1500 }  1500 ×  1500  \text{ 1500 }  1500 直方图(译者注:直方图而非散点图),其单元格值之和等于原始时间窗口内的总数据包数(不含被忽略的数据包)。将每个直方图存储在图像矩阵中,称为  FlowPic  \text{ FlowPic }  FlowPic 。后续将这些图像作为模型输入。

B. FlowPics 探索

 1  \text{ 1 }  1 展示了互联网流量分类的若干难点。

在这里插入图片描述

图1 . 多个视频应用的FlowPics示例。注意,为便于图示,黑色像素表示1到255之间的任意值,而白色像素表示值0(即在对应delta time内未出现具有相应大小的数据包)


每类互联网流量包含多个行为各异的应用和服务(图  1  \text{ 1 }  1 示例为视频流)。例如,  Netflix  \text{ Netflix }  Netflix 传输的数据包大小几乎固定(取决于视频内容),而  Skype  \text{ Skype }  Skype   Facebook  \text{ Facebook }  Facebook   Google Hangout  \text{ Google Hangout }  Google Hangout 等应用的数据包大小分布更为广泛。通过观察图  1  \text{ 1 }  1 可认识第二个问题:视频流不仅包含显示元素,还可能包含与  VoIP  \text{ VoIP }  VoIP 行为相似的音频流,以及类似聊天传输的小数据包协调控制流相比之下,  Skype  \text{ Skype }  Skype 等应用会将视频流与音频流分离

 2  \text{ 2 }  2 展示了通过不同加密服务的多类流量  FlowPics  \text{ FlowPics }  FlowPics 

在这里插入图片描述

图2 . FlowPics 示例图示,每行对应不同的流量类别,每列对应不同的加密技术。注意,为便于图示,黑色像素表示1到255之间的任意值,白色像素表示值0(值为0表示在对应时间间隔内未出现具有相应大小的数据包)


可明显观察到加密技术选择对每类流量行为的影响:某些类别的  FlowPics  \text{ FlowPics }  FlowPics 在不同加密技术下表现迥异。例如,图  2  \text{ 2 }  2 显示未使用  VPN  \text{ VPN }  VPN   Tor  \text{ Tor }  Tor 的聊天流包含少量低频小数据包;而通过  VPN  \text{ VPN }  VPN 时,多个流(couple of)被合并为一个会话通过  Tor  \text{ Tor }  Tor 时,用户所有(all)流被合并为单个加密会话。当  VPN  \text{ VPN }  VPN   Tor  \text{ Tor }  Tor 流混合多个流时,假设标记流占主导地位,其他流可视为噪声。

另一显著现象是:  Tor  \text{ Tor }  Tor 加密流量流由离散数据包大小组成,与非  VPN  \text{ VPN }  VPN 流量的多尺寸数据包形成对比,这源于分组密码加密的使用。对  FlowPic  \text{ FlowPic }  FlowPic 图像的探索验证了初始动机:尽管存在易于识别的强特征(如  VoIP  \text{ VoIP }  VoIP 流量包含大量高频小数据包),但仍存在无法用数值特征显式表示的独特模式。因此,深度学习方法将带来显著优势。


V. 卷积神经网络

A. 背景

卷积神经网络( ConvNets \text{ConvNets} ConvNets CNNs \text{CNNs} CNNs)由 Cun \text{Cun} Cun 等人[38]首次提出,在深度学习领域具有重要地位[39]。与具有相似层规模的标准前馈神经网络相比, CNNs \text{CNNs} CNNs 的可训练参数数量显著减少,因此更易于训练。

卷积层生成的特征图( feature maps \text{feature maps} feature maps)中,每个单元通过称为滤波器( filter \text{filter} filter,或核 kernel \text{kernel} kernel)的权重集与前一层的局部区域连接。每个单元的卷积结果通过激活函数传递,且同一特征图中的所有单元共享相同滤波器(称为参数共享 parameter sharing \text{parameter sharing} parameter sharing)。这种机制使得网络对输入的小幅平移具有近似不变性,并赋予卷积层平移等变性( equivariance \text{equivariance} equivariance)。通过将滤波器尺寸设置为小于输入尺寸(称为局部感受野 local receptive fields \text{local receptive fields} local receptive fields),可大幅减少参数存储量,既提升学习效率又缓解过拟合。

池化函数( pooling \text{pooling} pooling)通过汇总相邻输出的统计量(如空间下采样 spatial sub-sampling \text{spatial sub-sampling} spatial sub-sampling)替代特定层的输出,其作用是缩减表示的空间尺寸以降低网络参数量和计算量,从而进一步抑制过拟合。最常用的最大池化( max-pooling \text{max-pooling} max-pooling)[40]会输出前一层矩形邻域内的最大值。

典型的 CNN \text{CNN} CNN 通常以若干全连接层( fully-connected layers \text{fully-connected layers} fully-connected layers)结尾,其中相邻层的神经元全互连,最后一层称为输出层。最常见的输出层为 softmax \text{softmax} softmax 层,该函数将 K K K 维任意实值向量( K K K 为类别数)归一化为 [ 0 , 1 ] [0, 1] [0,1] 区间的概率分布向量,各分量对应类别的概率得分。

B. 网络架构

我们采用 LeNet-5 \text{LeNet-5} LeNet-5 风格架构[41]并辅以优化技术[6],构建适用于多类互联网流量分类任务的统一架构。如图 3 \text{3} 3所示,该架构包含七层(不含输入层),所有卷积层和全连接层输出均经过 ReLU \text{ReLU} ReLU 激活函数[42]。

在这里插入图片描述

图 3 .LeNet-5风格CNN架构示意图。网络输入为1500×1500图像,随后是两个依次堆叠的卷积块,每个块包含一个卷积层和一个最大池化层。将输出展平为一维向量后连接至全连接层。所有卷积层和全连接层的输出均经过ReLU激活函数,在CONV2层和全连接层应用随机失活(dropout),最终使用softmax层进行分类。


输入为 1500 \text{1500} 1500× 1500 \text{1500} 1500 的二维矩阵( pixel image \text{pixel image} pixel image)。首层卷积层( CONV1 \text{CONV1} CONV1)含 10 \text{10} 10 15 \text{15} 15× 15 \text{15} 15 滤波器,步长 1 \text{1} 1,输出 10 \text{10} 10 1486 \text{1486} 1486× 1486 \text{1486} 1486 特征图。随后, 2 \text{2} 2× 2 \text{2} 2 最大池化层( POOL1 \text{POOL1} POOL1)将特征图下采样至 150 \text{150} 150× 150 \text{150} 150。第二卷积层( CONV2 \text{CONV2} CONV2)含 20 \text{20} 20 10 \text{10} 10× 10 \text{10} 10 滤波器(步长 5 \text{5} 5,参数总量 20,020 \text{20,020} 20,020),输出 20 \text{20} 20 30 \text{30} 30× 30 \text{30} 30 特征图。第二池化层( POOL2 \text{POOL2} POOL2)进一步下采样至 15 \text{15} 15× 15 \text{15} 15。展平层( flatten \text{flatten} flatten)将 20 \text{20} 20 个特征图转换为 4500 \text{4500} 4500 维向量。全连接层( FC \text{FC} FC)含 64 \text{64} 64 个神经元(参数量 288,064 \text{288,064} 288,064)。输出层为 softmax \text{softmax} softmax 层,其尺寸依子任务设定:二分类( 2 \text{2} 2 类)、多类流量分类( 5 \text{5} 5 类)、加密技术分类( 3 \text{3} 3 类)或应用识别( 10 \text{10} 10 类)。末层参数量为 65 × m \text{65} \times m 65×m m m m 为类别数),此参数为架构中唯一跨任务差异项。

C. 训练规范

为抑制过拟合,除数据增强外,采用随机失活( dropout \text{dropout} dropout)[43]技术:训练时以预设概率随机将神经元输出置零,防止网络过度依赖特定神经元。测试时启用全部神经元但输出乘以失活概率。具体配置为: CONV2 \text{CONV2} CONV2 层概率 0.25 \text{0.25} 0.25,全连接层概率 0.5 \text{0.5} 0.5

通过优化分类交叉熵( categorical cross entropy \text{categorical cross entropy} categorical cross entropy)[44]损失函数进行训练,该函数衡量 softmax \text{softmax} softmax 输出与真实标签的单热编码( one-hot encoding \text{one-hot encoding} one-hot encoding)向量差异。采用 Adam \text{Adam} Adam 优化器[45](参数 α = 0.001 \alpha = 0.001 α=0.001 β 1 = 0.9 \beta_1 = 0.9 β1=0.9 β 2 = 0.999 \beta_2 = 0.999 β2=0.999 ϵ = 1 0 − 8 \epsilon = 10^{-8} ϵ=108),批尺寸设为 128 \text{128} 128。基于 Keras \text{Keras} Keras[46] 和 TensorFlow \text{TensorFlow} TensorFlow[47] 实现,每任务训练 40 \text{40} 40 轮( 10 \text{10} 10 批次/轮),保存最佳精度模型(作为早停 early stopping \text{early stopping} early stopping 策略)。如图 4 \text{4} 4所示,网络在 10 \text{10} 10- 15 \text{15} 15 轮后收敛(以 VPN \text{VPN} VPN 多类流量分类为例),测试精度曲线饱和且与训练曲线方差较小,表明未过拟合且结果稳定。所有实验在 10 \text{10} 10- 25 \text{25} 25 轮内收敛。

在这里插入图片描述

图4.CNN在VPN多类流量分类任务中的训练与测试精度曲线随训练轮次变化的函数关系示例。每个训练轮次包含1280个样本。网络在10-15轮后达到收敛。


实际部署时,端到端延迟为 T BS + T FC + T ML T_{\text{BS}} + T_{\text{FC}} + T_{\text{ML}} TBS+TFC+TML,其中 T BS T_{\text{BS}} TBS 为时间窗( 15 \text{15} 15/ 30 \text{30} 30/ 60 \text{60} 60 秒), T FC T_{\text{FC}} TFC FlowPic \text{FlowPic} FlowPic 构建)与 T ML T_{\text{ML}} TML CNN \text{CNN} CNN 推理)均为 0.1 \text{0.1} 0.1 秒,相对 T BS T_{\text{BS}} TBS 可忽略。


VI. 实验与结果

本节报告实验结果。由于缺乏标准数据集,将本文结果与先前研究(表 III \text{III} III)进行对比存在挑战。即使少数采用相同数据集的研究[9][13][26][36],也因类别选择、评估标准等差异难以直接比较。此外,与先前工作不同,我们为多数实验构建了平衡数据集以确保可靠评估,同时也报告非平衡数据集上的评估结果。下文将结合结果讨论这些差异。

在这里插入图片描述

分类任务 平衡数据集准确率 非平衡数据集准确率 先前最佳结果(文献) 备注
 VPN  \text{ VPN }  VPN 流量分类 85.0 \text{85.0} 85.0% 93.8 \text{93.8} 93.8% 84.0 \text{84.0} 84.0% 精确率 [26] 类别定义与[26]不同 ,使用非平衡数据集
 VPN  \text{ VPN }  VPN 流量分类 98.6 \text{98.6} 98.6% 97.6 \text{97.6} 97.6% 98.6 \text{98.6} 98.6% 准确率 [9] [9]基于原始数据包分析
 Tor  \text{ Tor }  Tor 流量分类 67.8 \text{67.8} 67.8% 86.9 \text{86.9} 86.9% 84.3 \text{84.3} 84.3% 精确率 [26] 类别定义与[26]不同 ,使用非平衡数据集
在混合数据集上的流量分类 83.0 \text{83.0} 83.0% - 无先前结果
区分非 VPN 流量与其他流量 - 无先前结果 平均 97.0 \text{97.0} 97.0%
区分 VPN 流量与其他流量 - 无先前结果 平均 99.7 \text{99.7} 99.7%
区分 Tor 流量与其他流量 - 无先前结果 平均 85.7 \text{85.7} 85.7%
加密技术分类 88.4 \text{88.4} 88.4% - 99.0 \text{99.0} 99.0% 准确率 [9] [9]未包含 Tor \text{Tor} Tor类别
应用识别 99.7 \text{99.7} 99.7% 94.2 \text{94.2} 94.2% 93.99 \text{93.99} 93.99% 准确率 [13] 类别定义与[13]不同
 VPN  \text{ VPN }  VPN 应用识别 100.0 \text{100.0} 100.0% - 无先前结果
表III.不同流量分类问题的实验结果汇总(基于ISCX数据集与先前最佳结果对比)注:此对比非精确比较,原因包括但不限于:类别划分差异,分类实体不同,数据集不平衡

A. 面向不同问题的数据集标注

如前述完成数据预处理后,我们为每个子问题生成子数据集。 II \text{II} II显示原始数据集存在类别不平衡问题,可能导致分类性能下降——因分类器通常追求全局准确而偏向多数类[48]。为此,我们为每个子问题创建平衡数据集,确保各类样本数量相等

对于"类 vs. 全体"数据集,特定类的样本数等于其他类总和,同时保持其他类间样本比例不变。采用预定义分布的随机欠采样方法[48],通过随机删除多数类样本直至数据集平衡,保留各类初始分布特性。该方法使得不同流量类别的模型性能可比性显著提升【译者注:指不同对象或数据在相同或相似条件下进行比较的可能性】。

1) 多分类问题

我们研究三类多分类任务:
a. 流量分类:为 non-VPN \text{non-VPN} non-VPN VPN \text{VPN} VPN Tor \text{Tor} Tor三种加密技术分别构建含等量样本的多类数据集。此外,首次创建合并数据集( merged dataset \text{merged dataset} merged dataset)以实现独立于加密技术的流量分类,旨在探究加密技术对流量行为的影响实验表明,基于流的信息能有效表征流量类型,使方法可泛化识别流量类别而不依赖加密技术。合并数据集中,每个流量类别均包含等量的各加密技术会话。

b. 加密技术多分类:包含 Non-VPN \text{Non-VPN} Non-VPN(仅常规会话)、 VPN \text{VPN} VPN Tor \text{Tor} Tor三类。每类均构建含所有互联网流量类型的平衡合并数据集。

c. 应用识别:为展示方法优势,构建 non-VPN \text{non-VPN} non-VPN下的 10 \text{10} 10 VoIP \text{VoIP} VoIP/视频应用数据集,以及 VPN \text{VPN} VPN Tor \text{Tor} Tor 5 \text{5} 5 VoIP \text{VoIP} VoIP/视频应用数据集(如表 I \text{I} I)。选择 VoIP \text{VoIP} VoIP与视频应用因其训练样本充足且应用种类丰富。图 1 \text{1} 1展示了视频应用 FlowPic \text{FlowPic} FlowPic的差异。

2) 类 vs. 全体

每个"类 vs. 全体"数据集包含特定流量类样本与等量的其他类混合样本(其他类间比例恒定)。针对 non-VPN \text{non-VPN} non-VPN VPN \text{VPN} VPN(不含浏览类)和 Tor \text{Tor} Tor三种加密技术及合并数据集分别构建。每个合并数据集均含等量的各加密技术会话。所有子问题均采用独立训练集( 90 \text{90} 90%样本)和测试集( 10 \text{10} 10%样本)进行模型训练与评估。

B. 评估标准

采用准确率作为主要评估指标(深度学习领域常用),非平衡数据集额外使用 F1 \text{F1} F1分数(均衡各类贡献)。

准确率定义为正确分类样本占总预测样本的比例。测试样本分为四类:

  • 真阳性( TP \text{TP} TP:正确分类的正类样本数
  • 真阴性( TN \text{TN} TN:正确分类的负类样本数
  • 假阳性( FP \text{FP} FP:负类样本误判为正类数
  • 假阴性( FN \text{FN} FN:正类样本误判为负类数

多分类准确率公式为:
Accuracy = ∑ i ∈ classes TP i ∑ i ∈ classes ( TP i + FP i ) \text{Accuracy} = \frac{\sum_{i \in \text{classes}} \text{TP}_i}{\sum_{i \in \text{classes}} (\text{TP}_i + \text{FP}_i)} Accuracy=iclasses(TPi+FPi)iclassesTPi
其中 TP i \text{TP}_i TPi FP i \text{FP}_i FPi分别表示第 i i i类的真阳性和假阳性数。

为可视化多分类问题的结果,我们使用归一化混淆矩阵(图 5 \text{5} 5 6 \text{6} 6 7 \text{7} 7)。在混淆矩阵中,每行代表实际类别,每列代表预测类别。归一化混淆矩阵的对角线值表示对应类别的召回率,定义为 R C = T P T P + F N RC = \frac{TP}{TP+FN} RC=TP+FNTP。此外,我们将  top  \text{ top }  top - 2  \text{2 } 分类准确率作为多分类问题的第二评估指标。  Top-K  \text{ Top-K }  Top-K 分类准确率(或  Top-K  \text{ Top-K }  Top-K 错误率)[49]被广泛用于具有大量类别的多分类问题评估【译者注:  Top-K  \text{ Top-K }  Top-K 准确率就是用来计算预测结果中概率最大的前  K  \text{ K }  K 个结果包含正确标签的占比】。

我们用于不平衡数据集评估的宏  F1  \text{ F1 }  F1 分数定义为所有类别  F1  \text{ F1 }  F1 分数的平均值,其中每个类别的  F1  \text{ F1 }  F1 分数由 F 1 = 2 ⋅ P R ⋅ R C P R + R C F1 = \frac{2 \cdot PR \cdot RC}{PR + RC} F1=PR+RC2PRRC定义,而精确率由 P R = T P T P + F P PR = \frac{TP}{TP+FP} PR=TP+FPTP定义。

C. 流量分类问题

表III汇总了所有多分类问题的结果(如第VI-A1节所述)。我们重点讨论前四行的流量分类结果。

分类任务 平衡数据集准确率 非平衡数据集准确率 先前最佳结果(文献) 备注
 VPN  \text{ VPN }  VPN 流量分类 85.0 \text{85.0} 85.0% 93.8 \text{93.8} 93.8% 84.0 \text{84.0} 84.0% 精确率 [26] 类别定义与[26]不同 ,使用非平衡数据集
 VPN  \text{ VPN }  VPN 流量分类 98.6 \text{98.6} 98.6% 97.6 \text{97.6} 97.6% 98.6 \text{98.6} 98.6% 准确率 [9] [9]基于原始数据包分析
 Tor  \text{ Tor }  Tor 流量分类 67.8 \text{67.8} 67.8% 86.9 \text{86.9} 86.9% 84.3 \text{84.3} 84.3% 精确率 [26] 类别定义与[26]不同 ,使用非平衡数据集
在混合数据集上的流量分类 83.0 \text{83.0} 83.0% - 无先前结果

最显著的结果是:  Tor  \text{ Tor }  Tor 流上正确分类互联网流量类别的难度显著更高(准确率仅 67.8 \text{67.8} 67.8%),而  VPN  \text{ VPN }  VPN   Non-VPN  \text{ Non-VPN }  Non-VPN 流量的分类性能更好(准确率分别为 98.4 \text{98.4} 98.4%和 85.0 \text{85.0} 85.0%)。值得注意的是,在非平衡数据集上我们的结果明显更优(更多结果见第VI-G节和表VI)。

在这里插入图片描述

表IV. 面向 VoIP 、视频、文件传输、聊天及浏览的特定类别 vs. 全部类别分类准确率.我们的 CNN 在采用特定加密技术的训练集上训练后,在3个测试集(每个测试集包含 Non-VPN 、 VPN 或 Tor 加密的特定类别样本)上进行评估。​加粗的对角线值表示测试集与训练集具有相同流量类别和加密技术时的准确率。


如第II节所述,UNB团队[26][36]使用时域特征( time-related features)对相同  ICSX  \text{ ICSX }  ICSX 数据集进行流量分类,在  Non-VPN  \text{ Non-VPN }  Non-VPN   VPN  \text{ VPN }  VPN   Tor  \text{ Tor }  Tor 流量分类中分别取得 84.0 \text{84.0} 84.0%、 89.0 \text{89.0} 89.0%和 84.3 \text{84.3} 84.3%的最佳平均精确率(定义同 P r = T P T P + F P Pr = \frac{TP}{TP+FP} Pr=TP+FPTP)。但他们的最优结果来自不同算法(  C4.5  \text{ C4.5 }  C4.5 、随机森林),而我们的所有结果均使用完全相同的  CNN  \text{ CNN }  CNN 架构(仅权重不同)。Wang等人[9]使用每个流的前 784 \text{784} 784字节对  ISCX VPN-nonVPN  \text{ ISCX VPN-nonVPN }  ISCX VPN-nonVPN 数据集分类,通过不同表示方法在  Non-VPN  \text{ Non-VPN }  Non-VPN   VPN  \text{ VPN }  VPN 流量上分别达到 83.0 \text{83.0} 83.0%和 98.6 \text{98.6} 98.6%的准确率(未包含浏览类别)。 5 \text{5} 5表明,区分浏览和聊天是我们准确率下降的主要原因

在这里插入图片描述

图5 .4种流量分类问题的混淆矩阵:基于 Non-VPN 流量、 VPN 流量、 Tor 流量及融合数据集的分类结果。混淆矩阵的行表示各流量类别的真实标签,列表示预测标签。


5 \text{5} 5©的混淆矩阵显示,  Tor  \text{ Tor }  Tor 流量分类性能下降的原因是模型未能有效表征  Tor  \text{ Tor }  Tor 文件传输流量特征(表IV进一步证实)。除  Tor  \text{ Tor }  Tor 流量分类的  top \text{ top}  top- 2 \text{2} 2准确率为 81.0 \text{81.0} 81.0%外,其他多分类任务的  top \text{ top}  top- 2 \text{2} 2准确率均在 95 \text{95} 95%- 100 \text{100} 100%之间。如图 5 \text{5} 5所示,模型偶尔混淆聊天和浏览会话,因为两者均包含少量低频数据包(图 2 \text{2} 2),这种差异即使人眼也难以分辨。

我们还将融合训练集训练的模型(在融合测试集上准确率  83.0  \text{ 83.0 }  83.0 %)应用于  Non-VPN  \text{ Non-VPN }  Non-VPN   VPN  \text{ VPN }  VPN   Tor  \text{ Tor }  Tor 测试集,以展示学习流量类别通用行为(不依赖加密技术)的性能表现。这是首次报告融合所有加密技术的训练结果:在  Non-VPN  \text{ Non-VPN }  Non-VPN   VPN  \text{ VPN }  VPN   Tor  \text{ Tor }  Tor 测试集上分别达到  88.2  \text{ 88.2 }  88.2 %、  98.4  \text{ 98.4 }  98.4 %和  67.8  \text{ 67.8 }  67.8 %的准确率。这些结果表明,  Tor  \text{ Tor }  Tor 流量中不同流量类别的特征与  VPN  \text{ VPN }  VPN   Non-VPN  \text{ Non-VPN }  Non-VPN 流量存在显著差异(如文件传输类别)

D. 特定类别 vs. 全部类别问题

在许多场景中,需要将单个流量类别与其他类别区分。据我们所知,这是首次报告此类实验结果。表IV汇总了不同加密技术下各类流量类别的二分类结果(对照表I描述)。

针对每个流量类别,我们的  CNN  \text{ CNN }  CNN 通过 3 \text{3} 3个不同加密技术训练集进行训练,并且每一个都在 3 \text{3} 3个测试集(包含  Non-VPN  \text{ Non-VPN }  Non-VPN   VPN  \text{ VPN }  VPN   Tor  \text{ Tor }  Tor 加密的特定类别样本)上评估。

通过仅统计对角线值(测试集与训练集具有相同流量类别和加密技术时的准确率)并计算平均值,我们得到:  Non-VPN  \text{ Non-VPN }  Non-VPN 流量平均准确率 97.0 \text{97.0} 97.0%,  VPN  \text{ VPN }  VPN 流量 99.7 \text{99.7} 99.7%(不含浏览类别),  Tor  \text{ Tor }  Tor 流量 85.7 \text{85.7} 85.7%。整体平均准确率为 93.7 \text{93.7} 93.7%。  Tor  \text{ Tor }  Tor 文件传输识别外,我们的方法能有效表征不同加密流量类别的特征

分析结果表明,不同加密技术下流量特征差异显著。例如,识别特定加密服务的流量类别,并不能保证对同一流量类别(甚至同一应用)在其他加密服务中的识别能力。如表IV所示,  Tor  \text{ Tor }  Tor 流量的分类难度远高于  VPN  \text{ VPN }  VPN 。此外,  Tor  \text{ Tor }  Tor 流量行为更接近  VPN  \text{ VPN }  VPN 而非  Non-VPN  \text{ Non-VPN }  Non-VPN 流量,这与  Tor  \text{ Tor }  Tor 采用多层嵌套加密的特性一致

表V展示了融合数据集上的二分类结果。

在这里插入图片描述

表V. 面向融合数据集的特定类别 vs. 全部类别分类准确率(含 VoIP 、视频、文件传输、聊天及浏览流量)每个流量类别融合数据集包含 Non-VPN 、 VPN 和 Tor 加密技术的等量会话数量。


结果表明,我们的方法能有效提取流量类别的通用特征(独立于加密技术)。文件传输识别困难源于  Tor  \text{ Tor }  Tor 流量中多个流合并导致包尺寸分布改变(见图2中  Tor  \text{ Tor }  Tor 文件传输的  FlowPic  \text{ FlowPic }  FlowPic 形态差异)。

  1. 未知应用分类:我们的方法不依赖于特定应用特征。为此,我们创建了视频与非视频数据集(video vs. all dataset),并在训练集中排除所有  Vimeo  \text{ Vimeo }  Vimeo   YouTube  \text{ YouTube }  YouTube 样本。尽管  Vimeo  \text{ Vimeo }  Vimeo   YouTube  \text{ YouTube }  YouTube   FlowPics  \text{ FlowPics }  FlowPics 与其他视频完全不同,我们的网络在由  Vimeo  \text{ Vimeo }  Vimeo   YouTube  \text{ YouTube }  YouTube 样本和等量非视频样本组成的测试集上仍达到 83.1 \text{83.1} 83.1%的准确率。重复该过程但改为排除  Facebook  \text{ Facebook }  Facebook 样本时,准确率达到 99.9 \text{99.9} 99.9%。这可以通过  Facebook  \text{ Facebook }  Facebook   FlowPics  \text{ FlowPics }  FlowPics   Google Hangouts  \text{ Google Hangouts }  Google Hangouts   Skype  \text{ Skype }  Skype 相似性来解释(见图1)。进一步创建  VoIP  \text{ VoIP }  VoIP 与非  VoIP  \text{ VoIP }  VoIP 数据集(排除  Facebook  \text{ Facebook }  Facebook 训练样本),我们获得 96.3 \text{96.3} 96.3%的准确率。这是首个报告此类结果的论文

E. 加密技术分类

在这里插入图片描述

图6. 多类加密技术分类问题的混淆矩阵。


我们的网络在加密技术分类中达到 88.4 \text{88.4} 88.4%的准确率(与流量类别无关)。所有混淆均出现在  Non-VPN  \text{ Non-VPN }  Non-VPN   VPN  \text{ VPN }  VPN 之间,而  Tor  \text{ Tor }  Tor  97.7 \text{97.7} 97.7%召回率( 100.0 \text{100.0} 100.0%精确率)几乎完全分离

如第二节所述,UNB团队[26][36]使用时序特征在  ISCX  \text{ ISCX }  ISCX 数据集上分类流量,但将问题拆分为两个子任务:  VPN  \text{ VPN }  VPN 与非  VPN  \text{ VPN }  VPN 分类、  Tor  \text{ Tor }  Tor 与非  Tor  \text{ Tor }  Tor 分类。他们分别达到 89.0 \text{89.0} 89.0%[26]和 94.8 \text{94.8} 94.8%[36]的精确率。值得注意的是,尽管我们的  CNN  \text{ CNN }  CNN 在更复杂条件下工作(联合使用两个数据集),却在两项任务中均取得更优结果。Wang等人[9]使用流的前 784 \text{784} 784字节分类流量(仅用  VPN  \text{ VPN }  VPN 与非  VPN  \text{ VPN }  VPN 数据集),由于  VPN  \text{ VPN }  VPN 加密会改变载荷数据,其准确率高达 99.9 \text{99.9} 99.9%。

F. 应用识别

我们测试了  VoIP  \text{ VoIP }  VoIP 与视频应用在  non -VPN  \text{ non -VPN }  non -VPN 流量中的分类性能。图7显示我们的方法几乎完全分离不同应用(准确率 99.7 \text{99.7} 99.7%)

在这里插入图片描述

图7. VoIP 与视频应用识别问题的混淆矩阵。


 VPN  \text{ VPN }  VPN 流量中的 5 \text{5} 5  VoIP  \text{ VoIP }  VoIP 与视频应用进行分类(数据集中仅有 5 \text{5} 5类具备足够样本),准确率达到 100.0 \text{100.0} 100.0%(见图8)。

在这里插入图片描述

图8. VPN 流量中的 VoIP 与视频应用识别混淆矩阵。


但在  Tor  \text{ Tor }  Tor 流量中分类 5 \text{5} 5  VoIP  \text{ VoIP }  VoIP 与视频应用时,准确率仅为 44.3 \text{44.3} 44.3%。关键发现是我们能近乎完美地区分  VoIP  \text{ VoIP }  VoIP 应用与视频应用。这些结果进一步证明该方法提取互联网流量强特征的能力。

Yamansavascilar等人[13]构建 111 \text{111} 111个流特征,使用  k-NN  \text{ k-NN }  k-NN 算法在  ISCX VPN  \text{ ISCX VPN }  ISCX VPN -非  VPN  \text{ VPN }  VPN 数据集上对 14 \text{14} 14类应用实现 93.9 \text{93.9} 93.9%整体准确率。例如,其对  Skype-VoIP  \text{ Skype-VoIP }  Skype-VoIP   Vimeo  \text{ Vimeo }  Vimeo   YouTube  \text{ YouTube }  YouTube 的分类准确率分别为 45.1 \text{45.1} 45.1%、 80.10 \text{80.10} 80.10%和 86.30 \text{86.30} 86.30%。使用我们的方法  ISCX  \text{ ISCX }  ISCX 数据集中的 10 \text{10} 10  VoIP  \text{ VoIP }  VoIP 与视频流量分类时,整体准确率达 99.7 \text{99.7} 99.7%,其中  Skype-VoIP  \text{ Skype-VoIP }  Skype-VoIP   Vimeo  \text{ Vimeo }  Vimeo   YouTube  \text{ YouTube }  YouTube 的准确率分别为 99.7 \text{99.7} 99.7%、 99.4 \text{99.4} 99.4%和 98.9 \text{98.9} 98.9%。非平衡数据集下的类似实验准确率为 94.2 \text{94.2} 94.2%。

G. 不平衡数据集

此前我们报告的都是平衡数据集上的模型结果,因为在多数案例中,模型会对低频类别赋予更高权重(这些类别更难分类)。但评估模型在不平衡数据集上的表现同样重要,尤其是考虑到前人研究多聚焦于此场景。

我们评估了四个任务:  Non-VPN  \text{ Non-VPN }  Non-VPN 流量分类、  VPN  \text{ VPN }  VPN 流量分类、  Tor  \text{ Tor }  Tor 流量分类以及应用识别( 10 \text{10} 10  VoIP  \text{ VoIP }  VoIP 与视频应用)。每个任务均采用 5 \text{5} 5折分层交叉验证,确保每个会话仅出现在训练集或测试集。每个会话被分割为 15 \text{15} 15秒无重叠块。

实验中,我们将  FlowPic  \text{ FlowPic }  FlowPic 与文献[21][26]中广泛使用的 5 \text{5} 5种机器学习模型对比:决策树(DT)k- 近邻(k-NN)支持向量机(SVM)朴素贝叶斯(NB)双层神经网络(MLP)。使用  Python scikit-learn  \text{ Python scikit-learn }  Python scikit-learn 库[50]运行这些模型(默认参数),输入特征为以下 10 \text{10} 10项流量统计特征(这些特征在先前研究[7][23-26][36]中被广泛采用):

  • 包大小统计量:均值、最小值、最大值、标准差
  • 到达时间间隔统计量:均值、最小值、最大值、标准差
  • 流字节速率(BPS)
  • 流包速率(PPS)

每个 15 \text{15} 15秒块提取上述特征(仅单向流特征)。

实验结果汇总于表VI。

在这里插入图片描述

表VI. 基于不平衡数据集的 FlowPic 与常见 ML 算法对比(针对以下问题): Non-VPN 流量分类( Non-VPN ), VPN 流量分类( VPN ),Tor 流量分类( Tor ) ,应用识别( APPs )


除一个任务外,  FlowPic  \text{ FlowPic }  FlowPic 在准确率和宏 F1 \text{F1} F1分数上均优于其他算法。对于  Non-VPN  \text{ Non-VPN }  Non-VPN (常规)流量分类,  FlowPic  \text{ FlowPic }  FlowPic 以微弱差距位居第二(仅次于DT)。这可能是由于类别间严重不平衡(例如  VoIP  \text{ VoIP }  VoIP 样本 2423 \text{2423} 2423个,而  chat  \text{ chat }  chat  245 \text{245} 245个)。

结论:结构简洁的  CNN  \text{ CNN }  CNN 能在较短时间内为多种流量分类任务提供优异性能。


VII. 总结

本文提出一种基于时间与大小信息的加密互联网流量分类新方法,既能分类流量类型,又可识别具体应用。我们的方法能泛化捕获流量特征而不过度拟合特定应用。基于流记录的方案在内存、存储和运行时间上成本低廉,具备实际部署价值。此外,模型仅需单向流的短时间窗口,无需依赖完整双向会话即可分类流量。改进思路:可通过分类多个时间窗口(部分重叠)并结合投票机制提升分类效果及置信度。

方法的核心是将流量转化为  FlowPic  \text{ FlowPic }  FlowPic 图像,并利用深度学习图像识别领域的进展(基于  LeNet-5  \text{ LeNet-5 }  LeNet-5 [41]设计  CNN  \text{ CNN }  CNN 架构)。实验表明,基于流的特征对  Tor  \text{ Tor }  Tor   VPN  \text{ VPN }  VPN 等加密技术具有较强鲁棒性,能区分不同加密技术下的流量类别(包括混合数据集),甚至可独立于流量类别识别加密技术。

 ISCX VPN-非VPN  \text{ ISCX VPN-非VPN }  ISCX VPN-VPN [26]和  ISCX Tor-非Tor  \text{ ISCX Tor-非Tor }  ISCX Tor-Tor [36]数据集上的实验证明,该方法能成功分类特定流量类别下的不同应用,并通过同类别其他应用的足够样本学习识别未知应用的流量类别


VIII. 未来研究方向

我们未对  CNN  \text{ CNN }  CNN 架构进行专门优化,仅采用了一种在图像识别领域表现良好的现有架构。测试其他已知架构可能提升结果或简化训练过程。我们还可以通过调整超参数(如层数、层尺寸、激活函数等)来优化  CNN  \text{ CNN }  CNN 。此外,通过调整输入参数(如分块长度和包字节分辨率)也能减少运行时间和内存消耗。例如,通过降低包大小分辨率,可以将系统输入大小缩减为 300 \text{300} 300× 300 \text{300} 300的粗糙矩阵。此外,我们还可以通过分箱减少每像素的比特数。在极端情况下,可以使用单比特像素生成二值图像,其中黑色像素表示在对应时间间隔内至少有一个对应大小的包到达。

虽然我们的 15 \text{15} 15秒分类时间在大多数情况下并不成问题,但对某些应用仍可能是一个限制因素。因此,一个有趣的研究方向是寻找能够实现更快分类的方法。尽管已有一些已发表的解决方案,但我们认为仍有改进空间。

参考文献

[1] T. Shapira and Y. Shavitt, “FlowPic: Encrypted Internet traffic classification is as easy as image recognition,” in Proc. IEEE Workshop Netw. Intell. Mach. Learn. Netw., 2019, pp. 680–687.

[2] A. Dainotti, A. Pescape, and K. C. Claffy, “Issues and future directions in traffic classification,” IEEE Netw., vol. 26, no. 1, pp. 35–40, Jan./Feb. 2012.

[3] P. Velan, M. Čermák, P. Čeleda, and M. Drašar, “A survey of methods for encrypted traffic classification and analysis,” Int. J. Netw. Manag., vol. 25, no. 5, pp. 355–374, 2015.

[4] G. Aceto, D. Ciuonzo, A. Montieri, and A. Pescapé, “Mobile encrypted traffic classification using deep learning: Experimental evaluation, lessons learned, and challenges,” IEEE Trans. Netw. Service Manag., vol. 16, no. 2, pp. 445–458, Jun. 2019.

[5] Y. LeCun, Y. Bengio, and G. Hinton, “Deep learning,” Nature, vol. 521, no. 7553, pp. 436–444, 2015.

[6] A. Krizhevsky, I. Sutskever, and G. E. Hinton, “Imagenet classification with deep convolutional neural networks,” in Proc. Adv. Neural Inf. Process. Syst., 2012, pp. 1097–1105.

[7] Z. Chen, K. He, J. Li, and Y. Geng, “Seq2Img: A sequence-to-image based approach towards IP traffic classification using convolutional neural networks,” in Proc. IEEE Int. Conf. Big Data (Big Data), Dec. 2017, pp. 1271–1276.

[8] Z. Wang, “The applications of deep learning on traffic identification,” BlackHat USA, Las Vegas, NV, USA, 2015.

[9] W. Wang, M. Zhu, J. Wang, X. Zeng, and Z. Yang, “End-to-end encrypted traffic classification with one-dimensional convolution neural networks,” in Proc. IEEE Int. Conf. Intell. Security Inform. (ISI), Jul. 2017, pp. 43–48.

[10] M. Lotfollahi, M. J. Siavoshani, R. S. H. Zade, and M. Saberian, “Deep packet: A novel approach for encrypted traffic classification using deep learning,” Soft Comput., vol. 24, no. 3, pp. 1999–2012, 2020.

[11] M. Lopez-Martin, B. Carro, A. Sanchez-Esguevillas, and J. Lloret, “Network traffic classifier with convolutional and recurrent neural networks for Internet of Things,” IEEE Access, vol. 5, pp. 18042–18050, 2017.

[12] S. Zander, T. Nguyen, and G. Armitage, “Automated traffic classification and application identification using machine learning,” in Proc. 30th IEEE Conf. Local Comput. Netw. (LCN), Nov. 2005, pp. 250–257.

[13] B. Yamansavascilar, M. A. Guvensan, A. G. Yavuz, and M. E. Karsligil, “Application identification via network traffic classification,” in Proc. Int. Conf. Comput. Netw. Commun. (ICNC), Jan. 2017, pp. 843–848.

[14] J. Muehlstein et al., “Analyzing HTTPS encrypted traffic to identify user’s operating system, browser and application,” in Proc. 14th IEEE Annu. Consum. Commun. Netw. Conf. (CCNC), Jan. 2017, pp. 1–6.

[15] M. Conti, L. V. Mancini, R. Spolaor, and N. V. Verde, “Analyzing android encrypted network traffic to identify user actions,” IEEE Trans. Inf. Forensics Security, vol. 11, no. 1, pp. 114–125, Jan. 2016.

[16] S. E. Coull and K. P. Dyer, “Traffic analysis of encrypted messaging services: Apple imessage and beyond,” SIGCOMM Comput. Commun. Rev., vol. 44, no. 5, pp. 5–11, Oct. 2014.

[17] R. Schuster, V. Shmatikov, and E. Tromer, “Beauty and the burst: Remote identification of encrypted video streams,” in Proc. 26th USENIX Security Symp., Vancouver, BC, Canada, 2017, pp. 1357–1374.

[18] R. Dubin, A. Dvir, O. Pele, and O. Hadar, “I know what you saw last minute—Encrypted http adaptive video streaming title classification,” IEEE Trans. Inf. Forensics Security, vol. 12, no. 12, pp. 3039–3049, Dec. 2017.

[19] M. Finsterbusch, C. Richter, E. Rocha, J. A. Muller, and K. Hanssgen, “A survey of payload-based traffic classification approaches,” IEEE Commun. Surveys Tuts., vol. 16, no. 2, pp. 1135–1156, 2nd Quart., 2014.

[20] T. Bujlow, V. Carela-Español, and P. Barlet-Ros, “Independent comparison of popular DPI tools for traffic classification,” Comput. Netw., vol. 76, pp. 75–89, Jan. 2015.

[21] T. T. T. Nguyen and G. Armitage, “A survey of techniques for Internet traffic classification using machine learning,” IEEE Commun. Surveys Tuts., vol. 10, no. 4, pp. 56–76, 4th Quart., 2008.

[22] W. Lu and L. Xue, “A heuristic-based co-clustering algorithm for the Internet traffic classification,” in Proc. 28th Int. Conf. Adv. Inf. Netw. Appl. Workshops, May 2014, pp. 49–54.

[23] A. Moore, D. Zuev, and M. Crogan, “Discriminators for use in flow-based classification,” Dept. Comput. Sci., Queen Mary Univ. London, London, U.K., Rep. RR-05-13, 2005.

[24] A. W. Moore and D. Zuev, “Internet traffic classification using bayesian analysis techniques,” in Proc. ACM SIGMETRICS, 2005, pp. 50–60.

[25] A. Fahad, Z. Tari, I. Khalil, I. Habib, and H. Alnuweiri, “Toward an efficient and scalable feature selection approach for Internet traffic classification,” Comput. Netw., vol. 57, no. 9, pp. 2040–2057, 2013.

[26] G. Draper-Gil, A. H. Lashkari, M. S. I. Mamun, and A. A. Ghorbani, “Characterization of encrypted and VPN traffic using time-related features,” in Proc. 2nd Int. Conf. Inf. Syst. Security Privacy, vol. 1, 2016, pp. 407–414.

[27] J. Zhang, Y. Xiang, Y. Wang, W. Zhou, Y. Xiang, and Y. Guan, “Network traffic classification using correlation information,” IEEE Trans. Parallel Distrib. Syst., vol. 24, no. 1, pp. 104–117, Jan. 2013.

[28] J. Zhang, X. Chen, Y. Xiang, W. Zhou, and J. Wu, “Robust network traffic classification,” IEEE/ACM Trans. Netw., vol. 23, no. 4, pp. 1257–1270, Aug. 2015.

[29] F. Ertam and E. Avci, “A new approach for Internet traffic classification: GA-WK-ELM,” Measurement, vol. 95, pp. 135–142, Jan. 2017.

[30] J. Zhang, F. Li, H. Wu, and F. Ye, “Autonomous model update scheme for deep learning based network traffic classifiers,” in Proc. IEEE Global Commun. Conf. (GLOBECOM), 2019, pp. 1–6.

[31] F. Pacheco, E. Exposito, and M. Gineste, “A framework to classify heterogeneous Internet traffic with machine learning and deep learning techniques for satellite communications,” Comput. Netw., vol. 173, May 2020, Art. no. 107213. [Online]. Available: http://www.sciencedirect.com/science/article/pii/S1389128619313544

[32] G. Aceto, D. Ciuonzo, A. Montieri, and A. Pescapè, “MIMETIC: Mobile encrypted traffic classification using multimodal deep learning,” Comput. Netw., vol. 165, Dec. 2019, Art. no. 106944. [Online]. Available: http://www.sciencedirect.com/science/article/pii/S1389128619304669

[33] A. S. Iliyasu and H. Deng, “Semi-supervised encrypted traffic classification with deep convolutional generative adversarial networks,” IEEE Access, vol. 8, pp. 118–126, 2020.

[34] C. Hardegen, B. Pfülb, S. Rieger, and A. Gepperth, “Predicting network flow characteristics using deep learning and real-world network traffic,” IEEE Trans. Netw. Service Manag., vol. 17, no. 4, pp. 2662–2676, Dec. 2020.

[35] T. Qin, L. Wang, Z. Liu, and X. Guan, “Robust application identification methods for P2P and VoIP traffic classification in backbone networks,” Knowl. Based Syst., vol. 82, pp. 152–162, Jul. 2015.

[36] A. H. Lashkari, G. D. Gil, M. S. I. Mamun, and A. A. Ghorbani, “Characterization of tor traffic using time based features,” in Proc. 3rd Int. Conf. Inf. Syst. Security Privacy, vol. 1, 2017, pp. 253–262.

[37] C. Szegedy, A. Toshev, and D. Erhan, “Deep neural networks for object detection,” in Advances in Neural Information Processing Systems 26, C. J. C. Burges, L. Bottou, M. Welling, Z. Ghahramani, and K. Q. Weinberger, Eds. Red Hook, NY, USA: Curran Assoc., Inc., 2013, pp. 2553–2561.

[38] Y. L. Cun et al., “Handwritten zip code recognition with multilayer networks,” in Proc. 10th Int. Conf. Pattern Recognit., vol. 2, Jun. 1990, pp. 35–40.

[39] I. Goodfellow, Y. Bengio, and A. Courville, Deep Learning. Cambridge, MA, USA: MIT Press, 2016. [Online]. Available: http://www.deeplearningbook.org

[40] Y.-T. Zhou, R. Chellappa, A. Vaid, and B. K. Jenkins, “Image restoration using a neural network,” IEEE Trans. Acoust., Speech, Signal Process., vol. 36, no. 7, pp. 1141–1151, Jul. 1988.

[41] Y. Lecun, L. Bottou, Y. Bengio, and P. Haffner, “Gradient-based learning applied to document recognition,” Proc. IEEE, vol. 86, no. 11, pp. 2278–2324, Nov. 1998.

[42] V. Nair and G. E. Hinton, “Rectified linear units improve restricted Boltzmann machines,” in Proc. 27th Int. Conf. Int. Conf. Mach. Learn., 2010, pp. 807–814.

[43] G. E. Hinton, N. Srivastava, A. Krizhevsky, I. Sutskever, and R. Salakhutdinov, “Improving neural networks by preventing co-adaptation of feature detectors,” 2012. [Online]. Available: arXiv:1207.0580

[44] D. Campbell, R. A. Dunne, and N. A. Campbell, “On the pairing of the softmax activation and cross–entropy penalty functions and the derivation of the softmax activation function,” in Proc. 8th Aust. Conf. Neural Netw., Melbourne, VIC, Australia, 1997, pp. 181–185.

[45] D. P. Kingma and J. Ba, “Adam: A method for stochastic optimization,” 2014. [Online]. Available: arXiv:1412.6980

[46] F. Chollet et al., Keras. (2015). [Online]. Available: https://github.com/fchollet/keras

[47] (2015). TensorFlow. [Online]. Available: https://www.tensorflow.org/

[48] S. Kotsiantis, D. Kanellopoulos, and P. Pintelas, “Handling imbalanced datasets: A review,” GESTS Int. Trans. Comput. Sci. Eng., vol. 30, no. 1, pp. 25–36, 2006.

[49] J. Deng, W. Dong, R. Socher, L.-J. Li, K. Li, and L. Fei-Fei, “ImageNet: A large-scale hierarchical image database,” in Proc. CVPR, 2009, pp. 248–255.

[50] F. Pedregosa et al., “Scikit-learn: Machine learning in Python,” J. Mach. Learn. Res., vol. 12, pp. 2825–2830, Nov. 2011.

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐