加密流量分类-论文2:Deep Packet: A Novel Approach For Encrypted Traffic Classification Using Deep Learning

加密流量分类-论文2:Deep Packet: A Novel Approach For Encrypted Traffic Classification Using Deep Learning

  • 0、摘要
  • 1、介绍
  • 2、相关工作
  • 3、深度学习背景
    • 3.1 自编码器(Autoencoder,AE)
    • 3.2 卷积神经网络(Convolutional Neural Network, CNN)
  • 4、方法
    • 4.1 数据集
    • 4.2 预处理
    • 4.3 网络架构
  • 5、实验
  • 6、总结

0、摘要

  论文提出的方案称为“深度包”(deep packet),可以处理网络流量分类为主要类别(如FTP和P2P)的流量表征,以及需要终端用户应用程序(如BitTorrent和Skype)识别的应用程序识别。与现有的大多数方法不同,深度报文不仅可以识别加密流量,还可以区分VPN网络流量和非VPN网络流量。网络架构基于CNN与SAE,能同时进行应用识别流量类型的分类任务。

1、介绍

  准确的流量分类已成为提供适当的服务质量(quality of service, QoS)、异常检测等高级网络管理任务的先决条件之一。流量分类在与网络管理相关的学术界和工业界都引起了极大的兴趣。

  本文贡献:

  • 在Deep Packet中,不需要专家来提取与网络流量相关的特征。这种方法省去了查找和提取特征的繁琐步骤。(只要是基于DL的方法都能做到这一点)
  • Deep Packet可以在两个粒度级别(应用程序识别和流量表征)上识别流量,并获得最先进的结果。
  • 深度数据包可以准确地分类最难的一类应用程序,已知是P2P。

2、相关工作

  等于是一个综述,概览了之前流量分类的一些方法以及它的适用性与优缺点。可以参考论文解读1

  • Port-based approach(基于端口):提取过程简单,端口号不受加密方案的影响。然而,端口混淆、网络地址转换(NAT)、端口转发、协议嵌入和端口随机分配的普遍存在大大降低了这种方法的准确性,目前已经不适用
  • Payload Inspection Techniques(基于有效载荷):即深度包检测(DPI)。
  • Statistical and machine learning approach(基于统计特征+机器学习方法):这些方法依赖于流量的统计或时间序列特性,能够处理加密和未加密的流量。

  总之,以前的方法,特征提取阶段依赖于人类的特征工程,耗时、昂贵且出错率高。

3、深度学习背景

  依旧是综述,关于神经网络的。这里主要介绍了两种神经网络结构。

3.1 自编码器(Autoencoder,AE)

  AE是一种无监督框架。考虑一个训练集{x1, x2,…, xn}其中对于每个训练数据我们有xi∈Rn。自编码器目标定义为yi = xi,对于i∈{1,2,…, n},即网络的输出等于输入。自动编码器试图学习数据集的压缩表示,即将高维数据通过编码器降维,然后降维后的数据通过解码器升维,输出尽量与输入相同。这样。降维后的数据则包含了原始输入数据的信息。一般地,编码器与解码器的结构都是对称的。
加密流量分类-论文2:Deep Packet: A Novel Approach For Encrypted Traffic Classification Using Deep Learning_第1张图片
  在实践中,为了获得更好的性能,一般使用堆栈式自动编码器(SAE)。将多个自动编码器堆叠起来,每个编码器的输出都是连续层的输入,而连续层本身就是一个自动编码器。堆叠式自动编码器的训练过程采用贪婪的分层方式完成。首先,该方法训练网络的每一层,同时冻结其他层的权值。在训练完所有层之后,为了得到更准确的结果,对整个神经网络进行微调。在微调阶段,利用反向传播算法调整各层权重。此外,对于分类任务,可以在最后一层应用额外的softmax层。
加密流量分类-论文2:Deep Packet: A Novel Approach For Encrypted Traffic Classification Using Deep Learning_第2张图片

3.2 卷积神经网络(Convolutional Neural Network, CNN)

  • 卷积:进行特征抽取
  • 池化:聚合低级特征,获得局部不变性,并且能降低网络训练与测试的参数量。
      一维卷积神经网络(1D-CNNs)可以捕获网络数据包中相邻字节之间的空间依赖关系,从而找到每一类协议/应用程序的区别模式,从而对流量进行准确的分类。

4、方法

4.1 数据集

  ISCX VPN-nonVPN:该数据集实在数据链路层捕获的,因此,每个数据包都包含一个以太网报头、一个IP数据报报头、一个TCP/UDP报头。

4.2 预处理

  1. 删除以太网报头
  2. 将UDP报头填充0至20字节长度(TCP通常具有20字节长度的报头,而UDP具有8字节长度的报头。为了使传输层的段一致,在UDP段的报头末尾注入0,使它们的长度与TCP报头相等)
  3. 屏蔽IP数据报报头的IP
  4. 删除不相关的数据包,例如没有负载的数据包(TCP握手时SYN、ACK设置为1以及FIN设置为1的数据包)或者DNS数据段(将url转为IP地址的)
  5. 将原始数据包转为字节向量
  6. 截断超过1500的向量,不足1500长度的填充0
  7. 将向量的每个元素除以255来规范化字节向量
  8. 针对样本不均衡问题,对样本更多的类进行欠采样,直到类相对平衡。
    加密流量分类-论文2:Deep Packet: A Novel Approach For Encrypted Traffic Classification Using Deep Learning_第3张图片

4.3 网络架构

加密流量分类-论文2:Deep Packet: A Novel Approach For Encrypted Traffic Classification Using Deep Learning_第4张图片

  • 关于SAE的部分:
    由五个全连接层(FC),分别由400、300、200、100和50个神经元组成。为防止过拟合问题,每层后采用dropout技术,dropout率为0.05。针对应用识别和流量表征任务,在SAE的最后一层,分别添加了一个包含17个神经元和12个神经元的softmax分类器。
  • 关于CNN的部分:
    包括两个连续的卷积层,然后是池化层。将二维张量压缩为一维矢量,并将其送入三层全连接神经元网络,该网络采用dropout技术以避免过拟合。最后,将类似于SAE架构的softmax分类器应用于分类任务。
    加密流量分类-论文2:Deep Packet: A Novel Approach For Encrypted Traffic Classification Using Deep Learning_第5张图片
    CNN的超参数如下:
    加密流量分类-论文2:Deep Packet: A Novel Approach For Encrypted Traffic Classification Using Deep Learning_第6张图片

5、实验

  • 对于CNN的调参,此处改变了两个卷积层的滤波器大小、滤波器数量和步幅。总共评估了116个应用识别和交通表征任务的加权平均F1分数模型。通过结果得出如下结论:对于流量分类任务,无法选择最优模型,因为“最优模型”的定义是不明确的,而且模型的精度和它的复杂性(即训练速度和测试速度)之间存在权衡
  • 增加神经网络的复杂度并不一定会带来更好的性能。可能的原因有:
      一个复杂的模型在训练阶段更容易遇到梯度消失问题,从而导致模型的欠拟合
       一个学习模型变得更复杂,而训练数据的大小保持不变,就会出现过拟合问题。
  • 该工作与Wang W, Zhu M, Wang J, Zeng X, Yang Z (2017)
    End-to-end encrypted traffic classification with one-dimensional convolution neural networks. In: Intel-ligence and Security Informatics (ISI), 2017 IEEE International Conference on, IEEE. 的方法类似,但Wang等人在流量表征的任务上获得了100%的精度,可能的原因是预处理过程中没有屏蔽IP地址字段,导致模型仅仅用IP地址这一特征来进行分类

6、总结

总结

你可能感兴趣的:(加密流量分类,分类,深度学习,数据挖掘)