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

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

网络流量异常:

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

异常检测方法:

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

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

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

    • 不可靠原因:新应用不再有固定端口号,p2p常用随机端口;

      很多应用采用端口伪装技术(故意使用公用端口)躲避防火墙或入侵检测系统

      ​ NAT的使用,端口地址转换

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

    • 检查包头和载荷在内的整个数据包内容
    • 发现预定义的固定字符串或字符串模式(指纹)
    • 常用正则表达式匹配
      • 优势:准确率高,早期识别(只需要对网络流的前几个数据包进行检测)
      • 劣势:指纹获取比较困难,无法检测未知流量

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

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

    • 基本思想:不同种类的应用产生的流量特性不同

      ​ 例如,web是短时间内大量流量,VoIP是长时间内少量流量的稳定传输

    • 常见流量特征:

      • 网络流特征:双方一次通信的所有数据包

        ​ 网络流持续时间,总字节数,平均每个数据包的字节数

      • 数据包特征:每个数据包的特征

        ​ 通信方向,包间隔时间

      常用预处理过程,提取特征数据

    • 优势:计算复杂度较低,可以用于加密流量

    • 缺点:需要专门的特征设计,分类准确度没有DPI高,特别是无监督学习,误警率较高

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

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

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

分类的类型

恶意/正常流量分类
加密/非加密流量分类
	流量加密已成事实标准 TLS

深度学习

  • CNN:卷积神经网络,空间特征学习。常用于CV,图片分类,图片语义分割,物体识别
  • RNN:循环神经网络,时序特征学习。常用于语音识别和NLP,LSTM长时短记忆网络用于NLP的情感分析、机器翻译

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

  • 单向
  • 双向

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

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


2.1 网络流量分类

恶意流量分类

  1. 基于指纹

    • 基于端口:可靠性不高

    • 基于深层包:提取特定字符串模式作为流量指纹,建立指纹库,对新流量进行正则表达式匹配

      ​ 在云端存储指纹库

  2. 基于异常

    • 基于统计
    • 基于行为

加密流量分类

  1. 基于载荷

    基于端口和深层包,用模式匹配检查包头格式

  2. 基于特征

    基于统计和行为 ,网络流特征和数据包特征

2.2 网络流量异常检测

异常分类:

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

网络攻击:

  1. 拒绝服务攻击
  2. 探测
  3. 本地用户提权
  4. 远程用户非法使用

入侵检测

  • 基于主机的:监视主机日志信息,如对文件系统、注册表的改动
  • 基于网络的:分析网络流量
    • 误用检测:基于已有指纹库进行匹配
    • 异常检测:机器学习模型

基于分类的方法

  1. SVM
  2. 贝叶斯网络
  3. 神经网络

基于统计的方法

  • 给出的数据服从某种概率分布,通过不一致性发现异常数据
  • 方法:混合模型、信号处理、PCA

基于聚类的方法

聚类检测的三个假设:

  1. 只对正常数据进行聚类,与正常聚类结果差别较大的判为异常
  2. 正常数据离聚类的形心更近,异常数据离得远,可用距离度量
  3. 小的聚类和稀疏的聚类常被视作异常
  • 常规聚类:k-Means
  • 协同聚类:在列和行两个方向同时应用聚类算法(降维)

基于信息论的方法

  • 熵、条件熵、相对熵、信息增益

2.3 深度学习

  • 深度:更强大的复杂函数拟合能力
    • SVM/逻辑回归LR、决策树等千层结构算法的局限性:样本有限的情况下表示复杂函数能力有限;泛化能力差
  • 学习:
    • 表征学习,直接从原始数据学习
    • 分层学习

反向传播算法

卷积神经网络

  • 语音识别,自然语言处理
  • 卷积神经网络的改进
    1. 局部感受野(稀疏连接):下一层某个神经元只和上一层的的部分神经元连接。(一般的神经网络是全连接)
    2. 权值共享(参数共享):每个神经元与前一层的所有连接采用相同权重值
    3. 池化(下采样):对于获得的特征,将其分割成多个相邻小区域,并简化为一个单值。平均值池化、最大值池化
  • 通过改进,减少了训练参数,位移不变性、尺度不变性、旋转不变性
  • 时序数据:语音、文本----一维CNN
  • 时域频域数据:视音频—二维CNN
  • 视频和立体图像—三维CNN

长时短记忆循环神经网络 LSTM

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

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

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

数据集::USTC-TFC2016

网络流量表示形式

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

  1. 流量粒度

    网络流量切分方式:TCP连接、流、会话、服务、主机

    流:有相同五元组(源IP、源端口、目的IP、目的端口、传输层协议)的所有包

    会话:双向流组成的所有包,即上面的源和目的可以互换

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

    流量特征主要体现在应用层。

    流量清洗/匿名化:对流量数据的特有信息随机化处理

数据预处理:

  1. 流量切分 pcap 数据

  2. 流量清理:用随机生成的新地址替换MAC和IP地址(如果流量来自同一网络环境则不需要)。清除没有内容的数据包,重复数据只保留一个

  3. 图片生成:文件按照784字节统一长度处理,超过则截取,不足则补充0x00。转换为灰度图片

  4. IDX转换:将图片转换成IDX格式,包含像素信息和统计信息,是CNN的输入文件标准格式

你可能感兴趣的:(论文阅读,深度学习,分类,网络)