加密流量分类-论文1:Deep Learning for Encrypted Traffic Classification: An Overview

0、摘要

  这是篇关于加密流量分类的综述,加密流量分类的入门之作,流量分类应用范围广泛,从isp的QoS提供和计费,到防火墙和入侵检测系统的安全应用。从最简单基于端口的、数据包检测到经典的机器学习方法,到由于深度学习的兴起,神经网络成为加密流量分类的主流。本文介绍了常用的深度学习方法及其在流量分类任务中的应用。然后讨论了开放的问题和它们的挑战。
关键词:流量分类、深度学习、机器学习

1、介绍

简要介绍了加密流量分类方法的发展演变,具体如下:
1.1 基于端口(port)的流量分类

  • 优点:简单
  • 缺点:该方法的准确性一直在下降,因为较新的应用程序要么使用众所周知的端口号来掩盖其流量,要么不使用标准的注册端口号。

1.2 基于有效载荷或数据包检验(data packet inspection:DPI)
\qquad 原理是不同类型的网络流量之中有特定的字符流(也称之为指纹),只需要在数据包的任意位置匹配这些字符流,从而进行分类。

  • 优点:简单快速,只需要检测网络流的前几个数据包。
  • 缺点:方法仅适用于未加密的流量,且计算开销较大。

1.3 基于流量统计特征
\qquad 这些方法依赖于流量的统计或时间序列特性,能够处理加密和未加密的流量。通常采用经典的机器学习(ML)算法,如随机森林(RF)和k-最近邻(KNN)。

  • 优点:可以用于加密流量,不需解密。
  • 缺点:依赖于人类的特征提取工程,开销大,耗时长。

1.4 基于深度学习方法

  • 优点:深度学习可以通过训练自动选择特征,消除领域专家选择特征的需要,并且具有相当高的学习能力,因此可以学习高度复杂的模式,能够学习原始输入和相应输出之间的非线性关系,而不需要将问题分解为特征选择和分类的小子问题。
  • 缺点:黑盒子,可解释性弱。

2、网络流量分类流程框架

通用的流量分类流程图

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)

MLP结构
一般输入的特征映射至高维,后面逐渐降为到输出类别的维度,层之间一般为全连接(Fully Connected,FC)

3.2 卷积神经网络(CNN)

CNN结构
卷积提取特征,池化降低数据量,一般通过若干个卷积与池化操作后,将向量展平通过一到两个FC层后映射到输出类别的维度。
CNN的三大特性:

  • 局部连接(感受野)
  • 权重共享(卷积)
  • 空间或时间上的下采样(池化)

一般方法:

  • 一维向量表示一个流(flow)或者会话(session),截取前N个字节数据,作为CNN的输入
  • 将网络流量的时序数据转换为二维图像,作为CNN的输入

3.3 循环神经网络(RNN)

在深度学习中,一般会使用RNN的两个变体:

  • 长短期记忆网络(LSTM)
  • 循环门控单元(GRU)
    RNN擅长处理序列数据,这两种变体解决了传统RNN的梯度消失或者梯度爆炸的问题,
      在流量分类上,混合模型(CNN+LSTM)优于纯LSTM或CNN模型。为了同时捕捉流的空间和时间特征,一些研究同时使用了CNN和RNN。

3.4 自编码器(AE)

AE

  • 编码器将输入特征映射到一个低维空间。
  • 解码器的目标则是将此低维向量解码成与原输入相近的特征。

  由此,低维向量中则“蕴含”了原先高维输入的所有信息,达到了抓住高维复杂信息的本质作用。AE是一种无监督学习方法,AE也有许多变体,如
去噪自编码器(DAEs),通过提取损坏的样本来迫使模型学习更健壮的特征,从而输出完整的输入样本。
变分自编码器(VAEs),旨在从目标分布生成虚拟样本。
可以叠加深层的,称为堆叠自动编码器(SAE)

3.5 对抗生成网络(GAN)

GAN

  GAN是一种无监督技术,它同时训练生成模型和判别模型。

  • 生成器(Generator)旨在生成目标分布的(假)样例,“骗过”鉴别器。输入一般为高斯分布的随机噪声,输出一个生成伪样本。
  • 鉴别器(Discriminator)模型旨在区分真实数据和生成数据。输入为真实样本与伪样本,判定真是样本与伪样本的真实性,如果鉴别器无力辨别真假,则模型可能收敛。
      这两个模型通常都是神经网络。首先通过鉴别器训练生成器,使其误差概率最大化。然后,固定生成器,训练鉴别器,使输入真实数据和生成数据的误差概率最小。这个过程一直持续到它收敛为止。

  生成模型可用于处理网络流量分类中数据集的不平衡问题。不平衡问题指的是每个类别的样本数量差异很大的情况。

3.6 模型选择

在这里插入图片描述

  • 特征选择直接影响神经网络输入结构和维度,这些维度影响计算复杂度和用于分类的数据包数量(内存复杂度)。
  • 根据所选择的特征选择合适的模型

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.
  • 13
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
摘要: 网络应用加密流量识别一直是网络安全领域中的重要问题之一。传统的加密流量识别方法主要基于特征提取和机器学习算法,但是这些方法存在着高维特征提取困难、易受攻击等问题。本文提出了一种基于深度学习的网络应用加密流量识别方法。该方法通过卷积神经网络对加密流量进行特征提取,结合全连接神经网络进行分类。实验结果表明,本方法能够有效地识别不同的网络应用加密流量,具有较高的准确率和鲁棒性。 关键词:深度学习;加密流量识别;卷积神经网络;全连接神经网络 Abstract: Network application encrypted traffic identification has always been one of the important problems in the field of network security. Traditional encrypted traffic identification methods are mainly based on feature extraction and machine learning algorithms, but these methods have problems such as difficult high-dimensional feature extraction and vulnerability to attacks. This paper proposes a network application encrypted traffic identification method based on deep learning. This method uses convolutional neural networks to extract features from encrypted traffic and combines them with fully connected neural networks for classification. Experimental results show that this method can effectively identify different network application encrypted traffic, with high accuracy and robustness. Keywords: deep learning; encrypted traffic identification; convolutional neural network; fully connected neural network

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值