加密流量分类-论文1:Deep Learning for Encrypted Traffic Classification: An Overview
- 0、摘要
- 1、介绍
- 2、网络流量分类流程框架
- 2.1 问题定义
-
- 2.2 数据收集
- 2.3 数据集预处理
- 2.4 流量特征
- 3 深度学习技术
-
- 3.1 多层感知机(MLP)
- 3.2 卷积神经网络(CNN)
- 3.3 循环神经网络(RNN)
- 3.4 自编码器(AE)
- 3.5 对抗生成网络(GAN)
- 3.6 模型选择
-
- 3.6.1 时间序列(Time Series)+报头(Header)
- 3.6.2 负载(playload)+报头(Header)
- 3.6.3 统计特征(Statistical Features)
- 3.7 训练与验证
- 3.8 定期评估/更新
- 4 开放机遇与挑战
-
- 4.1 更强大的加密协议
- 4.2 多标签分类
- 4.3 中间流分类?(Middle Flow Classification)
- 4.4 零日应用问题(Zero-day Application)
- 4.5 迁移学习与领域自适应
- 4.6 多任务学习
0、摘要
这是篇关于加密流量分类的综述,加密流量分类的入门之作,流量分类应用范围广泛,从isp的QoS提供和计费,到防火墙和入侵检测系统的安全应用。从最简单基于端口的、数据包检测到经典的机器学习方法,到由于深度学习的兴起,神经网络成为加密流量分类的主流。本文介绍了常用的深度学习方法及其在流量分类任务中的应用。然后讨论了开放的问题和它们的挑战。
关键词:流量分类、深度学习、机器学习
1、介绍
简要介绍了加密流量分类方法的发展演变,具体如下:
1.1 基于端口(port)的流量分类
- 优点:简单
- 缺点:该方法的准确性一直在下降,因为较新的应用程序要么使用众所周知的端口号来掩盖其流量,要么不使用标准的注册端口号。
1.2 基于有效载荷或数据包检验(data packet inspection:DPI)
\qquad 原理是不同类型的网络流量之中有特定的字符流(也称之为指纹),只需要在数据包的任意位置匹配这些字符流,从而进行分类。
- 优点:简单快速,只需要检测网络流的前几个数据包。
- 缺点:方法仅适用于未加密的流量,且计算开销较大。
1.3 基于流量统计特征
\qquad 这些方法依赖于流量的统计或时间序列特性,能够处理加密和未加密的流量。通常采用经典的机器学习(ML)算法,如随机森林(RF)和k-最近邻(KNN)。
- 优点:可以用于加密流量,不需解密。
- 缺点:依赖于人类的特征提取工程,开销大,耗时长。
1.4 基于深度学习方法
- 优点:深度学习可以通过训练自动选择特征,消除领域专家选择特征的需要,并且具有相当高的学习能力,因此可以学习高度复杂的模式,能够学习原始输入和相应输出之间的非线性关系,而不需要将问题分解为特征选择和分类的小子问题。
- 缺点:黑盒子,可解释性弱。
2、网络流量分类流程框架
![加密流量分类-论文1:Deep Learning for Encrypted Traffic Classification: An Overview_第1张图片](http://img.e-com-net.com/image/info8/a9e994af7e2440859228f6e7f4b16e4c.jpg)
2.1 问题定义
定义分类目标,从哪个领域分类。如nlp中文本分类,一大段关于某个电影的评论文本,可以是情感分类的角度出发分为积极、消极、中性,也可以是影评的类型出发分为关于内容的评论、关于电影演员演技的评论、关于电影启示的评论等等。流量分类分类中,具体的,可以如下:
- 关于网络协议:流量是何种协议
- 关于应用程序:流量是何种app中的
- 关于流量类型:流量是干什么的,如浏览,视频等等
- 关于网站
- 关于用户行为:用户是干什么导致此种流量产生
- 关于浏览器
- 关于操作系统
还可以分为:
2.2 数据收集
对于大多数与流量相关的分类问题,还没有一个公认的数据集。可能的原因包括:
1)可能的流量类别数量巨大,一个数据集几乎不可能包含所有的流量类型;
2)没有普遍接受的数据收集和标记方法;
3)不同的收集方法和场景导致不同的特征可用性和分布。
2.3 数据集预处理
- 在网络环境中,包重发、重复ack和无序包可能会改变应用程序的流量模式,需要去重。
- 另一个对深度学习方法性能至关重要的预处理步骤是数据归一化 。在这一步中,所有的输入特征都被缩放到[0,1]范围内的值。使得梯度下降计算时收敛更快,并均衡所有特征的重要性。
2.4 流量特征
- 时间序列(Time Series):报文长度、到达时间和连续报文的方向等等。[加密依旧可用]
- 头部(Header)
- 负载数据(Payload Data)
- 统计特征(Statistical Features):平均包长度、最大包长度、最小到达间隔时间等等。[加密依旧可用]
3 深度学习技术
3.1 多层感知机(MLP)
![加密流量分类-论文1:Deep Learning for Encrypted Traffic Classification: An Overview_第2张图片](http://img.e-com-net.com/image/info8/3e3abd8c827c433ca17245362ccd73b3.jpg)
一般输入的特征映射至高维,后面逐渐降为到输出类别的维度,层之间一般为全连接(Fully Connected,FC)
3.2 卷积神经网络(CNN)
![加密流量分类-论文1:Deep Learning for Encrypted Traffic Classification: An Overview_第3张图片](http://img.e-com-net.com/image/info8/12c734fedcc248909aad62deff8bc69b.jpg)
卷积提取特征,池化降低数据量,一般通过若干个卷积与池化操作后,将向量展平通过一到两个FC层后映射到输出类别的维度。
CNN的三大特性:
- 局部连接(感受野)
- 权重共享(卷积)
- 空间或时间上的下采样(池化)
一般方法:
- 一维向量表示一个流(flow)或者会话(session),截取前N个字节数据,作为CNN的输入
- 将网络流量的时序数据转换为二维图像,作为CNN的输入
3.3 循环神经网络(RNN)
在深度学习中,一般会使用RNN的两个变体:
- 长短期记忆网络(LSTM)
- 循环门控单元(GRU)
RNN擅长处理序列数据,这两种变体解决了传统RNN的梯度消失或者梯度爆炸的问题,
在流量分类上,混合模型(CNN+LSTM)优于纯LSTM或CNN模型。为了同时捕捉流的空间和时间特征,一些研究同时使用了CNN和RNN。
3.4 自编码器(AE)
![加密流量分类-论文1:Deep Learning for Encrypted Traffic Classification: An Overview_第4张图片](http://img.e-com-net.com/image/info8/fc96c4c00dab4096accce9e0fb945b08.jpg)
- 编码器将输入特征映射到一个低维空间。
- 解码器的目标则是将此低维向量解码成与原输入相近的特征。
由此,低维向量中则“蕴含”了原先高维输入的所有信息,达到了抓住高维复杂信息的本质作用。AE是一种无监督学习方法,AE也有许多变体,如
去噪自编码器(DAEs),通过提取损坏的样本来迫使模型学习更健壮的特征,从而输出完整的输入样本。
变分自编码器(VAEs),旨在从目标分布生成虚拟样本。
可以叠加深层的,称为堆叠自动编码器(SAE)
3.5 对抗生成网络(GAN)
![加密流量分类-论文1:Deep Learning for Encrypted Traffic Classification: An Overview_第5张图片](http://img.e-com-net.com/image/info8/e482cfab43174a8ea144d0edd6f37f7d.jpg)
GAN是一种无监督技术,它同时训练生成模型和判别模型。
- 生成器(Generator)旨在生成目标分布的(假)样例,“骗过”鉴别器。输入一般为高斯分布的随机噪声,输出一个生成伪样本。
- 鉴别器(Discriminator)模型旨在区分真实数据和生成数据。输入为真实样本与伪样本,判定真是样本与伪样本的真实性,如果鉴别器无力辨别真假,则模型可能收敛。
这两个模型通常都是神经网络。首先通过鉴别器训练生成器,使其误差概率最大化。然后,固定生成器,训练鉴别器,使输入真实数据和生成数据的误差概率最小。这个过程一直持续到它收敛为止。
生成模型可用于处理网络流量分类中数据集的不平衡问题。不平衡问题指的是每个类别的样本数量差异很大的情况。
3.6 模型选择
![加密流量分类-论文1:Deep Learning for Encrypted Traffic Classification: An Overview_第6张图片](http://img.e-com-net.com/image/info8/44695e781c6941a7af3508e30861d34e.jpg)
- 特征选择直接影响神经网络输入结构和维度,这些维度影响计算复杂度和用于分类的数据包数量(内存复杂度)。
- 根据所选择的特征选择合适的模型
3.6.1 时间序列(Time Series)+报头(Header)
时间序列特性几乎不受加密的影响,基本经典的ML算法与MLP都可以适用,当然CNN等模型可以获得更好的效益与更好的结果。
3.6.2 负载(playload)+报头(Header)
在当前加密的通信中,前几个包含握手信息的包通常是未加密的,它们已经成功地用于分类。但是负载中包含大量字节,导致数据维度较高,传统的ML与MLP不能很好适用,一般使用CNN或者CNN与LSTM结合的模型进行流量分类。
3.6.3 统计特征(Statistical Features)
统计特征的数量是有限的,因此输入维度也是有限的。因此,大多数论文对这些特征使用了经典的ML方法,或在少数情况下使用MLP方法。
虽然大多数研究通过观察整个流程来获得统计特征,但研究表明,根据数据集和统计特征的选择,从前10到180个数据包中获得统计特征可能足以进行分类。
不适合在线快速分类,因为它需要捕获足够多的数据包来从一个流中获得可靠的统计特征。
3.7 训练与验证
通常,数据集被分为三个独立的集:训练集、验证集和测试集。该模型在训练集上进行训练,通过观察验证集的准确性来调整模型的超参数。最后利用测试集得到了无偏精度。
简言之,训练集上进行梯度下降更新模型参数,验证集上选择最优超参数组合,测试集上进心模型评估。
3.8 定期评估/更新
在大多数与网络相关的应用程序中,流量在变化,依此流量特性总是在变化的。因此需要更新模型,增加模型分类普适性、健壮性。
4 开放机遇与挑战
4.1 更强大的加密协议
例如关于QUIC和TLS 1.3协议的流量分类,还没有得到很好的研究。以往对TLS 1.2的研究主要使用握手时的纯文本字段。但是,通过在TLS 1.3和QUIC中引入0-RTT连接,第一个包中只有少数字段保持未加密,不清楚它们是否足以用于分类。
4.2 多标签分类
单个流可以包含多个类标签,称为多路复用流。最困难的挑战是如何适当地收集和标记这些多标签流量。
4.3 中间流分类?(Middle Flow Classification)
目前大部分的流量分类就是基于流的前几个数据包,因此,ISP需要存储所有流的前几个数据包,空间负担重。如果可以基于流中间的几个数据包,那么ISP就可以等待并且检测大象流(elephant flow),然后捕获流中间的几个数据包进行分类,能减少内存和计算开销。
关于大象流、老鼠流:
- 大象流(elephant flow):大象流是通过网络链路进行大量的,持续的传递数据的过程。
- 老鼠流(mouse flow):老鼠流是通过网络链路进行少量的,短时间的数据传递过程。
发邮件,看网页,聊微信,这些都属于老鼠流。而虚机的迁移,数据的迁移,MapReduce等等,属于大象流。
4.4 零日应用问题(Zero-day Application)
零日应用是指新的流量类,它们的样本不存在于训练集中。已经表明,在某些情况下,零日应用程序可以在网络流量中占60%的流量和30%的字节。最近只有少数[14]研究提出了解决方案,通常依赖于检测未标记的簇,然后对它们进行标记。在ML社区中,主动学习(由模型选择哪些数据点应该被标记)已经被研究了多年。(聚类算法)
在最近一项对图像分类的研究中,强化学习和LSTM的结合被用于执行两种可能的操作之一:预测类别或要求一个新标签。
4.5 迁移学习与领域自适应
收集到足够大的代表性数据集是不容易的,通常更容易获得为其他任务捕获的大型数据集,这可能有助于模型提取公共特征。此外,训练一个深度模型通常耗费时间长,而对模型进行再训练通常收敛更快,因此最好是对已经为类似任务进行过训练的模型进行再训练。
- 迁移学习允许在源任务上训练的模型用于不同的目标任务,并且假设源任务与目标任务输入分布相似。
- 领域自适应处理的是任务相同,但源和目标的输入分布不同的情况。
4.6 多任务学习
一个模型中有一个以上的损失函数被优化。研究表明,即使对于单任务问题,增加一些辅助任务也可以提高泛化能力和性能。然而,对于网络流量分类任务还没有进行过研究。可能有很多方法可以定义辅助任务,而不需要额外的标记。多任务学习在网络流量分类中的有效性还没有得到研究。
第一次写论文博客,很水,写给自己看顺便总结一下,如有理解错误的地方,谢谢指正。
- 参考:
[1].S. Rezaei and X. Liu, “Deep Learning for Encrypted Traffic Classification: An Overview,” in IEEE Communications Magazine, vol. 57, no. 5, pp. 76-81, May 2019, doi: 10.1109/MCOM.2019.1800819.
[2].大象流老鼠流的解释:https://www.zhihu.com/question/50171430
[3].王茂南. 基于深度学习的加密流量识别技术研究[D].北京邮电大学,2021.DOI:10.26969/d.cnki.gbydu.2021.000480.