《基于深度学习的加密流量识别研究》-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. 本次研究可以在特征选取、数据不平衡两方面进行改进。
  • 特征选取方面:选取时间序列等流特征代替数据包数据作为数据来源。
  • 数据不平衡方面:使用交叉验证方法进行模型训练;对于样本不足的流量种类加入人工构造的数据。
  • 2
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 16
    评论
摘要: 网络应用加密流量识别一直是网络安全领域中的重要问题之一。传统的加密流量识别方法主要基于特征提取和机器学习算法,但是这些方法存在着高维特征提取困难、易受攻击等问题。本文提出了一种基于深度学习的网络应用加密流量识别方法。该方法通过卷积神经网络对加密流量进行特征提取,结合全连接神经网络进行分类。实验结果表明,本方法能够有效地识别不同的网络应用加密流量,具有较高的准确率和鲁棒性。 关键词:深度学习;加密流量识别;卷积神经网络;全连接神经网络 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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值