【RNN+加密流量A】EBSNN: Extended Byte Segment Neural Network for Network Traffic Classification

文章目录

  • 论文简介
    • 摘要
    • 存在的问题
    • 论文贡献
      • 1. EBSNN
      • 2. 实验
    • 总结
      • 论文内容
      • 数据集
      • 可读的引用文献

论文简介

原文题目:EBSNN: Extended Byte Segment Neural Network for Network Traffic Classification
中文题目:用于网络流量分类的扩展字节段神经网络
发表期刊:IEEE Transactions on Dependable and Secure Computing(TDSC)
发表年份:2022-9-1
作者:Xi Xiao
latex引用

@article{xiao2021ebsnn,
  title={EBSNN: Extended byte segment neural network for network traffic classification},
  author={Xiao, Xi and Xiao, Wentao and Li, Rui and Luo, Xiapu and Zheng, Haitao and Xia, Shutao},
  journal={IEEE Transactions on Dependable and Secure Computing},
  volume={19},
  number={5},
  pages={3521--3538},
  year={2021},
  publisher={IEEE}
}

摘要

网络流分类是入侵检测和网络管理的重要组成部分。现有的方法大多基于机器学习技术,依赖于从流或包中手动提取的特征。然而,随着网络应用的快速增长,这些方法很难处理新的复杂应用。在本文中,我们设计了一种新的神经网络——扩展字节段神经网络(EBSNN)来对网络流量进行分类。

EBSNN首先将数据包分成报头段和有效载荷段,然后将其送入具有注意机制的循环神经网络组成的编码器中。基于输出,另一个编码器学习整个数据包的高级表示。特别是,从报头段学习了侧信道特征以提高性能。最后,通过softmax函数获取报文的标签。此外,EBSNN可以通过检查前几个数据包来对网络流进行分类。在真实数据集上的实验表明,EBSNN在应用识别任务和网站识别任务中都取得了比现有方法更好的性能。

存在的问题

  1. 由于有大量的新应用程序,手动寻找适用于所有应用程序的新特性既耗时又容易出错。
  2. 现代应用的网络流量具有复杂性和动态性,传统的挖掘方法不能很好地泛化到指纹识别的特定应用。

论文贡献

  1. 设计了一种新的深度学习网络——扩展字节段神经网络(EBSNN),用于流量分类。EBSNN引入了聚合策略,该策略仅依赖于流中的前k个数据包来识别流。在流级分类和网站识别任务上的扩展证明了EBSNN的可扩展性。
  2. EBSNN利用侧信道特性来提高性能。header是EBSNN的输入,从中自动学习和利用合适的侧信道特征。
  3. 与[10]中仅包含10个类的数据集相比,我们在这项工作中收集并发布了来自29个应用程序和20个热门网站的两个大型现实数据集,涵盖了大多数日常生活领域。此外,还实现了更多的基线方法来进行性能评估。除了传统的基于机器学习的方法(Securitas[11])外,还使用了另一种基于深度学习的方法DeepPacket[12]作为基线。

论文解决上述问题的方法:

与传统的基于机器学习的方法相比,深度学习具有惊人的泛化和鲁棒性,可以自动学习更复杂和更具表现力的特征。由于网络数据包可以被视为网络应用之间的一种自然语言,我们提出了一种新的深度学习神经网络——扩展字节段神经网络(EBSNN),用于流量分类。

论文的任务:

  • 识别发送流量的应用程序
  • 根据捕获的流量确定要访问的目标网站

1. EBSNN

【RNN+加密流量A】EBSNN: Extended Byte Segment Neural Network for Network Traffic Classification_第1张图片

  • 工作流程:

    1. 每个数据包都经过预处理并输入到段生成器中,并被分成一系列的段,包括报头段和有效载荷段。
    2. 然后,注意力编码器将每个片段转换为一个片段向量。
    3. 之后,将数据包的所有这些向量组合到另一个注意编码器中,得到整个数据包的表示向量(图1中,不同颜色的注意编码器具有不同的RNN层)。
    4. 最后,将表示向量引入到softmax函数中,计算包的预测标签。
  1. 预处理

    header由Ethernet II报头、IPv4报头和TCP/UDP报头组成。

    1. 首先以二进制格式读取数据包,并将其转换为16进制整数序列。将其分成4段:以太网报头、IPv4报头、TCP/UDP报头、有效负载子序列
    • IPv4报头长度:IPv4报头中的Internet header length字段
    • TCP/UDP报头长度:TCP报头中的Data Offset字段(UDP报头中的length字段)
    • U U U:Internet header length字段的值
    • V V V:对于TCP头,V是Data Offset字段的值;对于UDP报头,V是Length字段的值
    • W W W:原始数据包的长度
      【RNN+加密流量A】EBSNN: Extended Byte Segment Neural Network for Network Traffic Classification_第2张图片
      【RNN+加密流量A】EBSNN: Extended Byte Segment Neural Network for Network Traffic Classification_第3张图片
    1. mask和padding

    mask:header段中不是每个字节都有意义,例如IPv4报头中的源IP和目的IP会导致过拟合,因此需要对这些字段用00进行mask。以下是报头中无意义的字节:

    • Ethernet II报头:由于这个报头只包含EtherType、源MAC地址和目的MAC地址,我们干脆放弃整个Ethernet II报头
    • IPv4报头:IP identification (IPv4头中32-37位),IP checksum(80-5位),源IP地址(96-127位),目的IP地址(128-159位)。
    • TCP/UDP报头:源端口(0-15位),目的端口(16-31位)

    padding:payload段的长度 M M M大多数情况下不是字段长度 N N N的整数,因此需要对尾部用00进行填充,payload段被分成 ⌈ M / N ⌉ \lceil M/N \rceil M/N个字节段。

    1. 将这4段输入到段生成器,输出两种字节段(header segment、payload segment),每个字节段的长度是固定的,记作 N N N
      【RNN+加密流量A】EBSNN: Extended Byte Segment Neural Network for Network Traffic Classification_第4张图片
  2. 模型

    • 第一个attention encoder
      【RNN+加密流量A】EBSNN: Extended Byte Segment Neural Network for Network Traffic Classification_第5张图片
      【RNN+加密流量A】EBSNN: Extended Byte Segment Neural Network for Network Traffic Classification_第6张图片

      每个字节段会生成一个s,最后合并生成一个 S = [ s 1 , s 2 , . . . , s L ] ∈ R f ∗ L S = [s_1,s_2,...,s_L]\in R^{f*L} S=[s1,s2,...,sL]RfL,其中 L L L是字段数

    • 第二个attention encoder

      d = A t t e n t i o n e n c o d e r ( [ s 1 , . . . , s L ] ) d = Attention encoder([s_1,...,s_L]) d=Attentionencoder([s1,...,sL]),其中输出d是所有片段的上下文信息

    • 为了解决类不平衡的问题使用了focal loss

  3. Extension to Flow-Level Classification(扩展到流级分类)

    【RNN+加密流量A】EBSNN: Extended Byte Segment Neural Network for Network Traffic Classification_第7张图片
    一些研究[16],[47]表明一个流的前k个数据包包含关于流的重要信息。因此我们输入前k个数据包,使其经过EBSNN,最后聚合softmax投票结果来输出流的分类结果。

    丢弃ACK,SYN等不包含有效载荷的零长度数据包

2. 实验

  1. 数据集

    • D1数据集:D1是一个用于应用识别的大型真实世界数据集,它基于电子邮件、音乐、视频、社交网络、搜索和购物等许多领域的29种流行应用。通过跟踪相应的应用程序进程来捕获特定协议的数据报。具体来说,流量采集器首先获取目标应用的套接字信息。然后根据套接字信息对数据报进行过滤和保存。通过这种方式,可以无噪音地收集网络流量。请注意,我们的数据集由加密和未加密的网络流量数据组成,这反映了现实世界的网络场景。

      【RNN+加密流量A】EBSNN: Extended Byte Segment Neural Network for Network Traffic Classification_第8张图片

    • D2数据集:D2是另一个用于网站识别的大型现实世界数据集,包含20个热门网站。我们在2020年通过在隔离环境中运行自定义轻量级浏览器2和网络流量转储工具(即WireShark)来收集D2。隔离环境是用Docker和网络命名空间构建的,其中只有浏览器和WireShark运行。为了收集尽可能多的纯网络流量,自定义浏览器禁用了所有嘈杂的网络流量(例如,搜索推荐,浏览器更新检查和帐户同步)。对于一些需要登录账号的网站,比如QQ Mail和Twitter,我们手动登录个人账号来获取真实的网络流量。与应用识别相比,网站识别[2],[49]是一项噪音更大的任务,因为许多网站共享相同的静态文件存储在同一个CDN中,并且表现出相似的行为。具体来说,D2由京东、网易云音乐、TED、亚马逊、百度、必应、豆瓣、Facebook、谷歌、IMDb、Instagram、爱奇艺、QQ邮箱、Reddit、淘宝、贴吧、Twitter、新浪微博、优酷、Youtube等20个网站组成,几乎涵盖了日常生活的方方面面。它们的流量大多使用https,无法通过目的IP和端口进行区分。
      【RNN+加密流量A】EBSNN: Extended Byte Segment Neural Network for Network Traffic Classification_第9张图片

  2. 参数选择:

    • input embedding size(E):64

      【RNN+加密流量A】EBSNN: Extended Byte Segment Neural Network for Network Traffic Classification_第10张图片

    • RNN embedding size:100

    • attention encoder embedding size:100

    • learning rate:0.001

    • dropout rate:0.5

    • N:16
      【RNN+加密流量A】EBSNN: Extended Byte Segment Neural Network for Network Traffic Classification_第11张图片

    • batch size:128
      【RNN+加密流量A】EBSNN: Extended Byte Segment Neural Network for Network Traffic Classification_第12张图片

      • focal loss的参数:1

        【RNN+加密流量A】EBSNN: Extended Byte Segment Neural Network for Network Traffic Classification_第13张图片

      • RNN类型:单向LSTM和GRU

        【RNN+加密流量A】EBSNN: Extended Byte Segment Neural Network for Network Traffic Classification_第14张图片

  3. 实验结果

    • D1数据集:

      【RNN+加密流量A】EBSNN: Extended Byte Segment Neural Network for Network Traffic Classification_第15张图片

    • D2数据集:

      【RNN+加密流量A】EBSNN: Extended Byte Segment Neural Network for Network Traffic Classification_第16张图片

    • 流级:

    【RNN+加密流量A】EBSNN: Extended Byte Segment Neural Network for Network Traffic Classification_第17张图片

总结

论文内容

  1. 学到的方法

    理论上的方法:

    1. 数据集的收集方法
    2. 包级别的方法

数据集

https://drive.google.com/drive/folders/1-I3a3lM6v_ANU6uu_AUmpNYt7rGu3kzt
【RNN+加密流量A】EBSNN: Extended Byte Segment Neural Network for Network Traffic Classification_第18张图片

可读的引用文献

  • Byte segment neural network for network traffic classification
  • Deep packet: A novel approach for encrypted traffic classification using deep learning
  • Robust smartphone app identification via encrypted network traffic analysis
  • MaMPF: Encrypted traffic classification based on multi-attribute Markov probability fingerprints

你可能感兴趣的:(文献阅读,rnn,人工智能,深度学习)