加密流量分类-论文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、网络流量分类流程框架

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)


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

3.2 卷积神经网络(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也有许多变体,如
去噪自编码器(DAEs),通过提取损坏的样本来迫使模型学习更健壮的特征,从而输出完整的输入样本。
变分自编码器(VAEs),旨在从目标分布生成虚拟样本。
可以叠加深层的,称为堆叠自动编码器(SAE)

3.5 对抗生成网络(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.

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

  1. 加密流量分类-论文6:Learning to Classify A Flow-Based Relation Network for Encrypted Traffic Classification

    加密流量分类-论文6:Learning to Classify A Flow-Based Relation Network for Encrypted Traffic Classification 0 ...

  2. 加密流量分类-论文5:MATEC_A_lightweight_neural_network_for_online_encrypted_traffic

    加密流量分类-论文5:MATEC_A_lightweight_neural_network_for_online_encrypted_traffic 0.摘要 1.问题引入 2.流分类的相关工作(综述 ...

  3. 加密流量分类-论文11 FlowPic: A Generic Representation for Encrypted Traffic Classification and Applications

    FlowPic: A Generic Representation for Encrypted Traffic Classification and Applications Identificati ...

  4. Deep Learning for Hyperspectral Image Classification:An Overview

    这是一篇2019年10月份的关于高光谱图像分类的综述,有李树涛和陈雨时两位大佬的署名. 1.Introduction two main challenges: 1.the large spatial ...

  5. 【研究型论文】EC-GCN: A encrypted traffic classification framework based on multi-scale GNN

    文章目录 EC-GCN: A encrypted traffic classification framework based on multi-scale graph convolution net ...

  6. 基于深度学习的网络加密流量分类与入侵检测框架

    写在前面: 本文翻译供个人研究学习之用,不保证严谨与准确 github链接:https://github.com/WithHades/network_traffic_classification_pa ...

  7. [论文翻译] Deep Learning

    [论文翻译] Deep Learning 论文题目:Deep Learning 论文来源:Deep learning Nature 2015 翻译人:BDML@CQUT实验室 Deep learnin ...

  8. 论文翻译七:Adversarial Transfer Learning for Deep Learning Based Automatic Modulation Classification

    30天挑战翻译100篇论文 坚持不懈,努力改变,在翻译中学习,在学习中改变,在改变中成长- Adversarial Transfer Learning for Deep Learning Based ...

  9. AI医药论文笔记--Deep learning improves prediction of drug–drug and drug–food interactions

    深度学习用于提高对药物-药物相互作用和药物-食物相互作用的预测 论文题目 Deep learning improves prediction of drug–drug and drug–food in ...

最新文章

  1. devops和docker_通过免费的2小时Docker课程学习DevOps基础知识
  2. docker镜像构建工具kaniko构建过程缓慢原因探究
  3. mysql 查询两张表结构相同的数据库_数据库原理习题(含答案)
  4. android seekbar 源码,Android SeekBar调节音量
  5. SQL Server 数据库身份认证以及包含数据库
  6. mac上使用python 安装anaconda和pycharm
  7. 新颖训练方法——用迭代投影算法训练神经网络
  8. 思科网络技术学院教程:企业中的路由和交换技术简介第十章实验总结
  9. 浅谈学习的深度和广度
  10. rust相框加载图片代码_用代码为相片加相框的方法
  11. C语言的整型常量与实型常量
  12. pmv计算c语言软件,晨光暖通计算工具
  13. 计算机打印机副机无法打印,打印机共享无法打印怎么办,教您解决电脑打印机共享无法打印...
  14. java鼠标左键点击四溅,重生之我是一只鼠
  15. Distill文章-A gentle introduction to graph Neural Networks(图神经网络是怎么构造的)
  16. 光场相机 标定微透镜阵列
  17. hikaricp和mysql驱动_配置HikariCP连接池
  18. 设置GPS模块ublox 的波特率和数据输出格式
  19. TLE星历以及轨道计算方法
  20. 需求分析师如何分析需求

热门文章

  1. 简单叙述python的编程规范_简明 Python 编程规范
  2. 坐标反算c语言程序,道路坐标正反算无限个拐点计算器测量程序(新20070825)
  3. 女生适合学酒店管理 电子商务还是计算机,读中专是学旅游服务与酒店管理好呢?还是计算机好呢?这两个专业那个更好呢?...
  4. C4K Power supply failed?
  5. 基于.Net TcpListener 实现 WebSocketServer 通讯
  6. Java MD5加密解密
  7. Allegro器件添加 no prob区域操作指导
  8. C++入门基础(万字总结)(建议收藏!!!)
  9. asp.net:如何取消设置的起始页
  10. ddn专线(ddn专线接入)