《基于深度学习的加密流量识别研究》-2022毕设笔记

参考文献:
基于深度学习的网络流量分类及异常检测方法研究_王伟
基于深度学习的加密流量分类技术研究与实现_马梦叠
基于深度学习的加密流量识别研究综述及展望_郭宇斌
基于深度学习的加密流量算法识别研究_王上淇

一、准备工作

(一) 毕设整体思路

  1. 首先使用VPN-noVPN构建数据集;
  2. 对数据集进行预处理;
  3. 设计模型,训练数据集;
  4. 预测数据,验证模型效果。

(二)环境准备

  1. python 3.8.12
  2. 需要安装的库有:numpy,h5py,matplotlib,tensorflow
  3. anconda->tensorflow

(三) 构建数据集

在构建数据集时,需要将连续流量切分成离散单元。

0. 准备工作

(1)下载ISCX VPN-nonVPN数据集https://www.unb.ca/cic/datasets/vpn.html。在下载时速度缓慢,可以使用百度网盘进行离线下载。
(2)下载USTC-TK2016工具集,根据实际情况对部分代码进行修改。

  • 将0_Tool文件夹下的SplitCap更新完最新版本。
  • 添加一个0_Pcapng2Pcap.ps1脚本,用来将数据集中的pcapng文件转换成从pcap文件。将pcapng文件转换成pcap文件,使用wireshark的editcap工具将pcapng文件转为pcap文件。editcap -F libpcap dump.pcapng dump.pcap
  • 注释1_Pcap2Session.ps1脚本中提取应用层代码。
  • 2_ProcessSession.ps1脚本中的切分长度改为1024。
  • 3_Session2png.py脚本中的图片长度改为32。
  • 修改4_Png2Mnist.py脚本中的代码,将图片样本存储在npy文件中,并压缩成npz格式。

1. 流量切分方式

(1)常见的流量切分方式有:TCP连接、流(flow)、会话(session)、主机、服务。目前研究使用较多的时流和会话。
(2)流,指具有相同五元组(源IP,源端口、目的IP、目的端口、传输层协议)的所有包。
(3)会话,指双向流组成的所有包,即目的和源可以互换。

2. 协议层次

(1)直观上,流量特征主要体现在应用层,但其它协议层的信息有时也反应流量特征。
(2)本论文选取两种协议层的选择:使用所有协议层数据(ALL)、仅使用应用层数据(L7)。需要指出的是,在ALL数据中,各流量特有的IP地址和MAC地址等信息可能会影响分类特征提取。为消除这些因素影响,需对流量数据的特有信息进行随机化处理,这常被称为流量清洗或匿名化。

本论文的流量表示形式有四种:流+所有层,流+应用层,会话+所有层,会话+应用层。
由于《基于深度学习的网络流量分类及异常检测方法研究》得出了使用以“会话+所有层”方式切分的流量,进行流量识别的识别准确率最高,所以本次研究使用“会话+所有层”的形式进行切分流量

(四)加密流量的特征

基于深度学习的加密流量分类技术研究与实现_马梦叠 P34

1. 空间特征

不同应用类型的加密流量在包大小、数据流字节数、流大小等空间特性方面存在显著差异,同一类型的应用的空间特性又极为相似。因此,可以根据流量的空间特征来进行流量识别。
加密流量的字节可描述为灰度图像像素值,这样此种分类问题可转化为图像分类问题。而卷积神经网络CNN常用来处理图像问题,因此本次研究使用的深度学习算法是卷积神经网络

2. 时间特征

不同应用类型的加密流量在数据包到达时间间隔、数据包持续时间、数据包到达顺序等时序特性方面存在显著差异,同一类型的应用的时序特性又极为相似。一维CNN模型可以对流量的时间特征进行提取。

二、搭建模型

  1. 知识准备:CNN模型的主要结构、核心操作、优缺点。
  2. 初始化CNN模型:7层(卷积层、池化层、卷积层、池化层、展平层、全连接层、全连接层)。
  3. 确定参数。

三、进行四组流量识别实验

  1. VPN与非VPN流量识别实验
  2. 常规加密流量识别实验
  3. VPN封装加密流量识别实验
  4. 12种加密流量识别实验

四、改进实验

  1. 改进模型的加密流量识别实验:使用一维CNN替换二维CNN
  2. 数据增强的加密流量识别实验:对数量较少的图片流量样本进行数据增强。

五、总结与展望

  1. 流量本质是时序数据,所以使用时间特征进行识别的准确率相对较高。
  2. 对于样本数据不平衡的实验,容易产生过拟合现象,采用数据增强的方法可以有效降低数据不平衡的影响,防止过拟合的发生。
  3. 本次研究可以在特征选取、数据不平衡两方面进行改进。
  • 特征选取方面:选取时间序列等流特征代替数据包数据作为数据来源。
  • 数据不平衡方面:使用交叉验证方法进行模型训练;对于样本不足的流量种类加入人工构造的数据。
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值