【RNN+加密流量A】ET-BERT: A Contextualized Datagram Representation with Pre-training Transformers for...

论文简介

原文题目:ET-BERT: A Contextualized Datagram Representation with Pre-training Transformers for Encrypted Traffic Classification
中文题目:ET-BERT:一种基于预训练转换器的数据报上下文化表示方法,用于加密流量分类
发表会议:WWW '22: The ACM Web Conference 2022
发表年份:2022-4-25
作者:Xinjie Lin
latex引用

@inproceedings{lin2022bert,
  title={Et-bert: A contextualized datagram representation with pre-training transformers for encrypted traffic classification},
  author={Lin, Xinjie and Xiong, Gang and Gou, Gaopeng and Li, Zhen and Shi, Junzheng and Yu, Jing},
  booktitle={Proceedings of the ACM Web Conference 2022},
  pages={633--642},
  year={2022}
}

摘要

加密流分类需要从内容不可见不平衡的流量数据中获取判别性和鲁棒性的流量表示,以实现准确的分类,这是实现网络安全和网络管理的一项挑战,但也是必不可少的。现有解决方案的主要局限是高度依赖深度特征,而深度特征过度依赖于数据大小,难以在未见数据上进行泛化。如何利用开放域未标记的流量数据学习具有较强泛化能力的表示仍然是一个关键的挑战。

在本文中,我们提出了一种新的流量表示模型,称为来自变压器的加密流量双向编码器表示(ET-BERT),它从大规模未标记数据中预训练深度上下文化数据报级表示。预训练模型可以在少量特定任务的标记数据上进行微调,并在五个加密流量分类任务中实现最先进的性能,显着将ISCX-VPN-Service的F1提高到98.9%(5.2%↑),跨平台(Android)提高到92.5%(5.4%↑),CSTNET-TLS的F1提高到1.3到97.4%(10.0%↑)。值得注意的是,我们通过分析密码的随机性提供了经验强大的预训练模型的解释。它为我们理解加密流量分类能力的边界提供了新的思路。

代码可从https://github.com/linwhitehat/ET-BERT获得。

存在的问题

  • 基于明文特征的指纹匹配[37]:不适用于新出现的加密技术(例如TLS 1.3),因为明文变得更加稀疏或混淆。
  • 基于统计特征的机器学习[27,36]:高度依赖专家设计的特征,泛化能力有限。
  • 基于原始流量特征的ML[21,22]:高度依赖于标记训练数据的数量和分布,容易造成模型偏差,难以适应新出现的加密。

论文贡献

  1. 提出了一种加密流量分类的预训练框架,该框架利用大规模未标记的加密流量来学习一系列加密流量分类任务的通用数据报表示
  2. 提出了两个流量特定的自监督预训练任务,如掩码BURST模型和同源BURST预测,它们捕获字节级和BURST级上下文关系,以获得通用的数据报表示
  3. ET-BERT泛化能力强,在通用加密应用分类、加密恶意软件分类、VPN上的加密流量分类、Tor上的加密应用分类、TLS 1.3上的加密应用分类等5个加密流量分类任务上实现了新的最先进的性能,显著优于现有作品5.4%、0.2%、5.2%、4.4%、10.0%。
  4. 同时,对预训练模型的强大性能进行了理论解释和分析。

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

基于预训练的方法采用大量未标记数据来学习无偏数据表示。通过对有限数量的标记数据进行微调,可以轻松地将此类数据表示转移到下游任务。

  • 泛化能力增强
  • 不依赖专家知识
  • 能够识别新出现(训练数据中不存在)的加密流量
  • 不需要标记数据

论文的任务:

使用bert进行加密流量多分类,预训练模型没变,下游任务选的是单句预测

1. ET-BERT

在这里插入图片描述

  • Datagram2Token

    1. BURST生成器在一个会话流中提取持续的服务器到客户端或客户端到服务器的数据包,称为BURST[28,33],以表示会话的部分完整信息。

      BURST:一组时间相邻的网络数据包,这些数据包来自单个会话流中的请求或响应。
      在这里插入图片描述
      其中𝑚和𝑛分别表示源到目的和目的到源的最大单向包数。

      简单来理解:一个BURST代表了一个根据正反向流被切割好的会话中的一个流。如图所示,假设深蓝色为正向流,那么浅蓝色就是反向流。
      在这里插入图片描述

    2. 然后BURST2Token过程通过bi-gram模型将每个BURST中的数据报转换为token embedding。同时,这个过程也将BURST分成两个部分,为预训练任务做准备。

      1. 将BRUST中的流用16进制编码序列表示
      2. 使用bi-gram来编码16进制序列,即每个单元由两个相邻的字节单元组成。这样一来,每个单元的取值范围在0~65535,因此字典大小 ∣ V ∣ = 65536 |V|=65536 V=65536
      3. 将编码后的16进制序列平均分为两个子序列: s u b − B R U S T A sub-BRUST^A subBRUSTA s u b − B R U S T B sub-BRUST^B subBRUSTB
      4. 添加特殊token:[CLS]、[SEP]、[PAD]、[MASK]
        在这里插入图片描述
    3. 最后,Token2Emebdding将每个标记的标记嵌入、位置嵌入和分割嵌入连接起来,作为预训练的输入表示。

      我们通过三种嵌入来表示BURST2Token中得到的每个token:token embedding、position embedding和segment embedding。
      在这里插入图片描述

  • Pre-training

    • Masked BURST Model:这个任务类似于BERT b[6]使用的掩码语言模型。ET-BERT被训练来根据上下文预测屏蔽位置的token。损失函数如下:在这里插入图片描述

    • Same-origin BURST Prediction:对于该任务,使用二元分类器来预测两个子BURST是否来自相同的BURST。具体来说:

      • 50%的概率 s u b − B U R S T B sub-BURST^B subBURSTB是实际 s u b − B U R S T A sub-BURST^A subBURSTA后半部分(来自同一个BURST)
      • 50%的概率是一个随机 s u b − B U R S T sub-BURST subBURST

      损失函数如下:
      在这里插入图片描述
      其中 B j = ( s u b − B j A , s u b − B j B ) , y j ∈ [ 0 , 1 ] B_j = (sub-B_j^A,sub-B_j^B),y_j \in [0,1] Bj=(subBjA,subBjB)yj[0,1]

  • Fine-tuning
    由于微调和预训练的结构基本相同,我们将特定于任务的数据包或流表示输入到预训练的ET-BERT中,并在端到端模型中微调所有参数。在输出层,将[CLS]表示提供给多类分类器进行预测。我们提出了两种微调策略来适应不同场景的分类:

    • 将数据包级别作为输入,专门试验ET-BERT是否能适应更细粒度的流量数据,称为ET-BERT(packet)
    • flow level作为输入,致力于公平客观地比较ET-BERT与其他方法,称为ET-BERT(flow)。

    这两种微调模型的主要区别在于输入流量的信息量。我们使用流中𝑀连续数据包的拼接数据报作为输入数据,其中𝑀在我们的方法中被设置为5。第4.1节详细描述了流量数据的处理。

2. 实验

  • 数据集

    在这里插入图片描述

    • 任务1:通用加密应用分类(GEAC):根据标准加密协议对应用流量进行分类。
    • 任务2:加密恶意软件分类(EMC):由恶意软件和良性应用[41]组成的加密流量集合。
    • 任务3:VPN加密流量分类(ETCV):对使用VPN进行网络通信的加密流量进行分类。
    • 任务4:基于Tor的加密应用分类(EACT):旨在对使用Tor路由器(Tor)的加密流量进行分类,以增强通信隐私。
    • 任务5:基于TLS 1.3的加密应用分类(EAC1.3):旨在对基于新加密协议TLS 1.3的加密流量进行分类。该数据集是我们从2021年3月到7月在CSTNET下收集的120个应用程序,命名为CSTNET- tls 1.3。正如我们所知,这是迄今为止第一个TLS 1.3数据集。应用程序是从部署了TLS 1.3的Alexa Top-5000[3]获得的,我们通过服务器名称指示(SNI)标记每个会话流。在CSTNET-TLS 1.3中,由于TLS
      1.3的兼容性,SNI仍然可以访问。ECH机制将在将来禁用SNI并损害标记的准确性,但我们将在第5节中讨论一些克服它的想法。
  • 数据预处理

    1. 删除了地址解析协议(ARP)和动态主机配置协议(DHCP)的数据包,它们与传输内容的特定流量无关。
    2. 为了避免包头的影响,包头可能会在具有强识别信息(如IP和端口[19,25,40])的有限集合中引入偏干扰,我们删除了TCP头中的以太网头、IP头和协议端口。
    3. 在微调阶段,我们在所有数据集中随机从每个类中选择最多500个流和5000个数据包。
    4. 每个数据集按照8:1:1的比例分为训练集、验证集和测试集
  • 参数:

    包级别:

    • batch_size = 32
    • learning_rate = 0.00002
    • ratio of warmup = 0.1
    • epoch = 10

    流级别:

    • batch_size = 32
    • learning_rate = 0.00006
    • dropout = 0.5
  • 效果

    在这里插入图片描述

  • 消融实验

    在这里插入图片描述

总结

论文内容

  1. 学到的方法

    理论上的方法:使用bert进行加密流量分类

  2. 论文优缺点

    优点:

    1. 为bert在网络安全方面的应用提供了思路

    缺点:

    1. 对bert的改动不足,基本上就是照搬,没有太多的创新
  3. 创新想法

    看能不能在下游任务上或者数据粒度(这里用的BURST)上有所修改

数据集

  • 预训练使用的数据集:公共数据集:[9,32]
    • cicids2018
  • 微调使用的数据集:公共数据集:[37,41,9,10]
    • Cross-Platform(IOS)、Cross-Platform(Android)
    • USTC-TFC
    • ISCX-VPN-Service、ISCX-VPN-App
    • ISCX-Tor
  • 中国科技网(CSTNET)下被动采集流量

可读的引用文献

加密流量检测:

  • FlowPrint: Semi-Supervised Mobile-App Fingerprinting on Encrypted Network Traffic
  • Robust Smartphone App Identification via Encrypted Network Traffic Analysis
  • Deep Fingerprinting: Undermining Website Fingerprinting Defenses with Deep Learning
  • TSCRNN: A novel classification scheme of encrypted traffic based on flow spatiotemporal features for efficient management of IIoT
  • Deep packet: a novel approach for encrypted traffic classification using deep learning
  • Exploiting Diversity in Android TLS Implementations for Mobile App Traffic Classification

预训练模型:

  • RoBERTa:RoBERTa: A Robustly Optimized BERT Pretraining Approach
  • ALBERT:ALBERT: A Lite BERT for Self-supervised Learning of Language Representations
  • ERNIE:ERNIE: Enhanced Language Representation with Informative Entities
  • DistilBERT:DistilBERT, a distilled version of BERT: smaller, faster, cheaper and lighter

参考连接

  • 代码:https://github.com/linwhitehat/ET-BERT
  • 9
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
1. ARIMA 2. SARIMA 3. VAR 4. Auto-ARIMA 5. Auto-SARIMA 6. LSTM 7. GRU 8. RNN 9. CNN 10. MLP 11. DNN 12. MLP-LSTM 13. MLP-GRU 14. MLP-RNN 15. MLP-CNN 16. LSTM-ARIMA 17. LSTM-MLP 18. LSTM-CNN 19. GRU-ARIMA 20. GRU-MLP 21. GRU-CNN 22. RNN-ARIMA 23. RNN-MLP 24. RNN-CNN 25. CNN-ARIMA 26. CNN-MLP 27. CNN-LSTM 28. CNN-GRU 29. ARIMA-SVM 30. SARIMA-SVM 31. VAR-SVM 32. Auto-ARIMA-SVM 33. Auto-SARIMA-SVM 34. LSTM-SVM 35. GRU-SVM 36. RNN-SVM 37. CNN-SVM 38. MLP-SVM 39. LSTM-ARIMA-SVM 40. LSTM-MLP-SVM 41. LSTM-CNN-SVM 42. GRU-ARIMA-SVM 43. GRU-MLP-SVM 44. GRU-CNN-SVM 45. RNN-ARIMA-SVM 46. RNN-MLP-SVM 47. RNN-CNN-SVM 48. CNN-ARIMA-SVM 49. CNN-MLP-SVM 50. CNN-LSTM-SVM 51. CNN-GRU-SVM 52. ARIMA-RF 53. SARIMA-RF 54. VAR-RF 55. Auto-ARIMA-RF 56. Auto-SARIMA-RF 57. LSTM-RF 58. GRU-RF 59. RNN-RF 60. CNN-RF 61. MLP-RF 62. LSTM-ARIMA-RF 63. LSTM-MLP-RF 64. LSTM-CNN-RF 65. GRU-ARIMA-RF 66. GRU-MLP-RF 67. GRU-CNN-RF 68. RNN-ARIMA-RF 69. RNN-MLP-RF 70. RNN-CNN-RF 71. CNN-ARIMA-RF 72. CNN-MLP-RF 73. CNN-LSTM-RF 74. CNN-GRU-RF 75. ARIMA-XGBoost 76. SARIMA-XGBoost 77. VAR-XGBoost 78. Auto-ARIMA-XGBoost 79. Auto-SARIMA-XGBoost 80. LSTM-XGBoost 81. GRU-XGBoost 82. RNN-XGBoost 83. CNN-XGBoost 84. MLP-XGBoost 85. LSTM-ARIMA-XGBoost 86. LSTM-MLP-XGBoost 87. LSTM-CNN-XGBoost 88. GRU-ARIMA-XGBoost 89. GRU-MLP-XGBoost 90. GRU-CNN-XGBoost 91. RNN-ARIMA-XGBoost 92. RNN-MLP-XGBoost 93. RNN-CNN-XGBoost 94. CNN-ARIMA-XGBoost 95. CNN-MLP-XGBoost 96. CNN-LSTM-XGBoost 97. CNN-GRU-XGBoost 98. ARIMA-ANN 99. SARIMA-ANN 100. VAR-ANN 上面这些缩写模型的全称及相关用途功能详细解释
07-15
以下是对缩写模型的全称及相关用途功能的详细解释: 1. ARIMA (AutoRegressive Integrated Moving Average): 适用于平稳时间序列数据的预测,结合了自回归 (AR) 和移动平均 (MA) 的模型。 2. SARIMA (Seasonal ARIMA): 在ARIMA模型基础上添加了对季节性因素的建模,适用于带有季节性的时间序列数据的预测。 3. VAR (Vector Autoregression): 用于多变量时间序列数据的预测,基于自回归模型,能够捕捉变量之间的相互依赖关系。 4. Auto-ARIMA: 自动选择ARIMA模型的参数,通过对多个模型进行评估和选择来实现自动化。 5. Auto-SARIMA: 自动选择SARIMA模型的参数,通过对多个模型进行评估和选择来实现自动化。 6. LSTM (Long Short-Term Memory): 长短期记忆网络,一种适用于处理长期依赖关系的循环神经网络,用于时间序列数据的建模和预测。 7. GRU (Gated Recurrent Unit): 一种类似于LSTM的循环神经网络,具有更简化的结构,适用于时间序列数据的建模和预测。 8. RNN (Recurrent Neural Network): 适用于处理序列数据的神经网络模型,能够捕捉时间序列的动态特性。 9. CNN (Convolutional Neural Network): 卷积神经网络,主要用于图像处理,但也可以用于时间序列数据的预测,特别擅长局部模式的识别。 10. MLP (Multi-Layer Perceptron): 多层感知机,一种前馈神经网络模型,适用于处理非线性关系的时间序列数据。 11. DNN (Deep Neural Network): 深度神经网络,具有多个隐藏层的神经网络模型,能够学习更复杂的特征表示。 12. MLP-LSTM: 结合了多层感知机和长短期记忆网络的模型,用于时间序列数据的建模和预测。 13. MLP-GRU: 结合了多层感知机和门控循环单元网络的模型,用于时间序列数据的建模和预测。 14. MLP-RNN: 结合了多层感知机和循环神经网络的模型,用于时间序列数据的建模和预测。 15. MLP-CNN: 结合了多层感知机和卷积神经网络的模型,用于时间序列数据的建模和预测。 这些模型可以根据具体问题和数据的特性来选择和使用,以获得最佳的时间序列预测性能。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值