深度学习的网络流量分类及异常检测

论文整理:2018-基于深度学习的网络流量分类及异常检测方法研究_王伟

✍🏻作者简介:机器学习,深度学习,卷积神经网络处理,图像处理
🚀B站项目实战:https://space.bilibili.com/364224477
🐋 希望大家多多支持,我们一起进步!
😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收藏 📂加关注+
🤵‍♂ CSDN个人主页:@purple的个人主页

导师给了个服务器IP分类的项目,因为之前没做过这种,就找了一篇博士论文。 看论文顺序:中文博士论文—中文综述—英文博士论文—英文综述

网络流量异常:

  • 性能原因:网络结构设计不合理,如拥塞控制不当,设备故障+ 安全原因:网络攻击,如DDos,蠕虫病毒

异常检测方法:

  • 基于网络流量分类 (重要)+ 基于统计+ 基于聚类+ 基于信息论

一般的网络流量分类方法:

  • 基于端口:简单易实现,但准确度较低。 端口共65535个,0-1024公用

  • 不可靠原因:新应用不再有固定端口号,p2p常用随机端口; 很多应用采用端口伪装技术(故意使用公用端口)躲避防火墙或入侵检测系统 NAT的使用,端口地址转换

  • 基于有效载荷/DPI(深度报文检测):无法处理加密流量,复杂度较高(字节匹配,难以实时)

  • 检查包头和载荷在内的整个数据包内容+ 发现预定义的固定字符串或字符串模式(指纹)+ 常用正则表达式匹配

  • 优势:准确率高,早期识别(只需要对网络流的前几个数据包进行检测)+ 劣势:指纹获取比较困难,无法检测未知流量

以上两种属于基于规则的方法,根据人工制定且硬编码的固定规则进行匹配分类

  • 基于统计 :基于机器学习。

  • 基本思想:不同种类的应用产生的流量特性不同 ​ 例如,web是短时间内大量流量,VoIP是长时间内少量流量的稳定传输 + 常见流量特征:

  • 网络流特征:双方一次通信的所有数据包 ​ 网络流持续时间,总字节数,平均每个数据包的字节数 + 数据包特征:每个数据包的特征 ​ 通信方向,包间隔时间
    常用预处理过程,提取特征数据 + 优势:计算复杂度较低,可以用于加密流量 + 缺点:需要专门的特征设计,分类准确度没有DPI高,特别是无监督学习,误警率较高

  • 基于行为 :基于机器学习

  • 基本思想:不同应用有不同的行为模式+ 使用特征:主机通信的行为信息

深度学习:基于表征学习(特征学习):对原始输入数据进行逐层学习,自动得到高层次的特征数据

流量分类类型

恶意/正常流量分类
加密/非加密流量分类
	流量加密已成事实标准 TLS
深度学习
  • CNN:卷积神经网络,空间特征学习。常用于CV,图片分类,图片语义分割,物体识别+ RNN:循环神经网络,时序特征学习。常用于语音识别和NLP,LSTM长时短记忆网络用于NLP的情感分析、机器翻译

网络流量分类常见数据单元

  • 单向+ 双向

CNN:将流量视为流量字节组成的流量图像,学习空间特征

RNN:视为流量字节组成的单元序列,或多个网络数据包组成的单元序列,学习时序特征

2.1 网络流量分类

恶意流量分类
  • 基于指纹

  • 基于端口:可靠性不高 + 基于深层包:提取特定字符串模式作为流量指纹,建立指纹库,对新流量进行正则表达式匹配 ​ 在云端存储指纹库

  • 基于异常

  • 基于统计+ 基于行为

加密流量分类
  • 基于载荷 基于端口和深层包,用模式匹配检查包头格式 + 基于特征 基于统计和行为 ,网络流特征和数据包特征

2.2 网络流量异常检测

异常分类:

  • 点异常+ 上下文异常+ 集合异常

网络攻击:

  • 拒绝服务攻击+ 探测+ 本地用户提权+ 远程用户非法使用
入侵检测
  • 基于主机的:监视主机日志信息,如对文件系统、注册表的改动+ 基于网络的:分析网络流量

  • 误用检测:基于已有指纹库进行匹配+ 异常检测:机器学习模型

基于分类的方法
  • SVM+ 贝叶斯网络+ 神经网络
基于统计的方法
  • 给出的数据服从某种概率分布,通过不一致性发现异常数据+ 方法:混合模型、信号处理、PCA
基于聚类的方法

聚类检测的三个假设:

  • 只对正常数据进行聚类,与正常聚类结果差别较大的判为异常+ 正常数据离聚类的形心更近,异常数据离得远,可用距离度量+ 小的聚类和稀疏的聚类常被视作异常

  • 常规聚类:k-Means+ 协同聚类:在列和行两个方向同时应用聚类算法(降维)

基于信息论的方法
  • 熵、条件熵、相对熵、信息增益

2.3 深度学习

  • 深度:更强大的复杂函数拟合能力

  • SVM/逻辑回归LR、决策树等千层结构算法的局限性:样本有限的情况下表示复杂函数能力有限;泛化能力差

  • 学习:

  • 表征学习,直接从原始数据学习+ 分层学习

反向传播算法
卷积神经网络
  • 语音识别,自然语言处理+ 卷积神经网络的改进

  • 局部感受野(稀疏连接):下一层某个神经元只和上一层的的部分神经元连接。(一般的神经网络是全连接)+ 权值共享(参数共享):每个神经元与前一层的所有连接采用相同权重值+ 池化(下采样):对于获得的特征,将其分割成多个相邻小区域,并简化为一个单值。平均值池化、最大值池化

  • 通过改进,减少了训练参数,位移不变性、尺度不变性、旋转不变性+ 时序数据:语音、文本: 一维CNN+ 时域频域数据:视音频:二维CNN+ 视频和立体图像:三维CNN

长时短记忆循环神经网络 LSTM
  • 传统神经网络中,输出值只和当前输入值有关+ 序列数据的预测问题:下一个值由当前值和前面若干词共同决定+ RNN通过在隐层的神经元中添加自连接的权重值,使得每次训练可以记录前面训练时的输出值状态,实现了保存序列信息+ LSTM

  • 输入门+ 遗忘门+ 输出门

三、基于表征学习的恶意流量分类方法

  • 思想:将原始流量数据视为图片,用图片分类的CNN进行分类+ 流量分类—>图片分类

数据集::USTC-TFC2016

网络流量表示形式

基于机器学习的流量分类方法,需要按一定粒度把连续流量且分为多个离散单元。每个单元中的每个包,按照OSI或TCP/IP可划分为多个层。

  • 流量粒度 网络流量切分方式:TCP连接、流、会话、服务、主机 :有相同五元组(源IP、源端口、目的IP、目的端口、传输层协议)的所有包 会话:双向流组成的所有包,即上面的源和目的可以互换

  • CNN要求数据输入大小一致:只选取流或会话的前n个字节

  • 协议层次 流量特征主要体现在应用层。 流量清洗/匿名化:对流量数据的特有信息随机化处理

数据预处理:
  • 流量切分 pcap 数据 + 流量清理:用随机生成的新地址替换MAC和IP地址(如果流量来自同一网络环境则不需要)。清除没有内容的数据包,重复数据只保留一个 + 图片生成:文件按照784字节统一长度处理,超过则截取,不足则补充0x00。转换为灰度图片 + IDX转换:将图片转换成IDX格式,包含像素信息和统计信息,是CNN的输入文件标准格式

四、基于一维CNN的端到端(深度学习)加密流量分类方法

根据协议层不同,流量加密技术分为

  • 应用层加密:bittorrent,skype+ 表示层加密:TLS+ 网络层加密:IPsec

主流的流量分类方法:

  • 基于端口的:准确率偏低+ 基于DPI:无法解密内容+ 基于统计+ 基于行为

采用的数据集 :ISCX VPN-nonVPN ,7种常规加密和7种协议封装流量

  • 思想:直接从流量原始数据自动学习流量特征,学到的高级特征直接在softmax层进行分类+ 流量—>类比成字符值,用文档分类技术处理

五、基于两阶段LSTM的流量分类

  • 用LSTM学习数据包网络流两个层次上的特征+ 思想:用NLP技术

步骤

  • 预处理:流量切分+ 数据编码:ont-hot 独热数据形式,每个流量字节被编码为一个n维向量+ 数据包内时序特征学习+ 网络流内时序特征学习+ softmax分类器+ 测试与对比

六、基于层次化时空特征学习的流量异常检测

  • 思想:使用CNN学习数据包内的空间特征(流量转化为图像),作为下层;使用RNN(LSTM)学习数据包之间的时序特征,作为上层;上层建立在下层基础上 + 数据集:DAPRA 1998和ISCX2012

七、展望

  • 非平衡数据集问题 + 领域知识的应用 数据包的结构信息 + 基于半监督和无监督学习的异常检测 少量有标签和大量无标签数据

🧿选题指导,设计代做: https://space.bilibili.com/364224477

设计代做项目方向涵盖:

基于Python,MATLAB设计,OpenCV,,CNN,机器学习,R-CNN,GCN,LSTM,SVM,BP目标检测、语义分割、Re-ID、医学图像分割、目标跟踪、人脸识别、数据增广、
人脸检测、显著性目标检测、自动驾驶、人群密度估计、3D目标检测、CNN、AutoML、图像分割、SLAM、实例分割、人体姿态估计、视频目标分割,PyTorch、人脸检测、车道线检测、去雾 、全景分割、
行人检测、文本检测、OCR、姿态估计、边缘检测、场景文本检测、视频实例分割、人脸对齐、超分辨、去噪、强化学习、行为识别、OpenCV、场景文本识别、去雨、机器学习、风格迁移、视频目标检测、去模糊、活体检测、人脸关键点检测、3D目标跟踪、视频修复、人脸表情识别、时序动作检测、图像检索、异常检测等毕设指导,毕设选题,毕业设计开题报告,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jackie_AI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值