中科院信工所 | ET-BERT:用于加密流量分类的带有预训练Transformer的上下文数据报表征

admin 2024年8月12日16:28:58评论24 views字数 2509阅读8分21秒阅读模式

中科院信工所 | ET-BERT:用于加密流量分类的带有预训练Transformer的上下文数据报表征

论文题目:ET-BERT: A Contextualized Datagram Representation with Pre-training Transformers for Encrypted Traffic Classification
论文作者:Xinjie Lin, Gang Xiong, Gaopeng Gou, Zhen Li, Junzheng Shi, Jing Yu
发表会议/期刊:WWW
发布时间:2022
主题类型:流量分析
笔记作者:JSY@Web攻击检测与追踪课程
通信作者主页:于静 https://mmlab-iie.github.io/

本文提出了一种新的加密流量分类模型ET-BERT,利用预训练的Transformer模型进行深度上下文数据包表示的学习。

加密流量的广泛使用带来了巨大的挑战,传统的基于深度包检测(DPI)的方法由于无法访问加密流量的内容,难以适用于加密流量分类,针对特定加密流量的方法难以适应新环境或新的加密策略。

研究方法

ET-BERT模型运作阶段由两部分组成:预训练阶段和微调阶段;其核心包括三个部分,Datagram2Token,Pre-training和Fine-tuning。中科院信工所 | ET-BERT:用于加密流量分类的带有预训练Transformer的上下文数据报表征

  • Datagram2Token用于将网络流(由五元组确定)转化为能被BERT接受的token序列。分为3步:
    • BURST Generator 用于将流量形成BURST(作者定义为单个会话中的一系列请求或响应的包,分为src和dst两个方向)。
    • BURST2Token 用于将每个BURST中的数据包转化为基于字节对编码(Byte-Pair Encoding)的token表示。
    • Token2Embedding 用于将token表示、位置表示和段表示拼接(即BERT需要的输入格式),作为预训练的输入。
  • Pre-training用于对流量数据进行BERT模型预训练。
    • Masked BURST Model (MBM):类似于BERT中的Masked Language Model,其实现方法是通过随机掩码部分token,让模型根据上下文预测被掩码的token(即BERT训练过程)。
    • Same-origin BURST Prediction (SBP):用于预测BURST之间的关系,即通过预测两个sub-BURST是否来自同一BURST源,捕捉流量包之间的依赖关系。
  • Fine-tuning用于对BERT模型进行微调,微调过程与预训练基本一致,目的是创造两个微调模型:
    • Packet-level Fine-tuning:实现对输入单个数据包进行分类。
    • Flow-level Fine-tuning:输入多个连续的数据包(流)进行分类。

实验结果

文章提供了五个实验,使用的数据集如下:

中科院信工所 | ET-BERT:用于加密流量分类的带有预训练Transformer的上下文数据报表征
  1. 通用加密应用分类(GEAC):测试在标准加密协议下的跨平台应用流量分类

  2. 加密恶意软件分类(EMC):对恶意软件和良性应用的加密流量进行分类

  3. VPN加密流量分类(ETCV):对VPN进行通信的加密流量进行分类

中科院信工所 | ET-BERT:用于加密流量分类的带有预训练Transformer的上下文数据报表征
  1. Tor上的加密应用分类(EACT):对Tor流量进行分类

  2. TLS 1.3上的加密应用分类(EAC-1.3):对基于新加密协议TLS 1.3的加密流量进行分类

中科院信工所 | ET-BERT:用于加密流量分类的带有预训练Transformer的上下文数据报表征

作者还做了消融实验:中科院信工所 | ET-BERT:用于加密流量分类的带有预训练Transformer的上下文数据报表征

对比实验:

中科院信工所 | ET-BERT:用于加密流量分类的带有预训练Transformer的上下文数据报表征

多种加密算法的实验:

中科院信工所 | ET-BERT:用于加密流量分类的带有预训练Transformer的上下文数据报表征

以及实用性实验等。

贡献分析

  • 贡献点1:论文针对加密流量分类问题,提出了一个利用大规模未标记加密流量进行预训练的框架,实现了通用数据包表示的学习。
  • 贡献点2:论文针对加密流量中隐含模式难以捕捉的问题,提出了两种自监督预训练任务(Masked BURST Model 和 Same-origin BURST Prediction),实现了字节级和BURST级上下文关系的捕捉。
  • 贡献点3: 论文针对加密流量分类任务中数据不平衡和新加密技术难以适应的问题,提出了利用预训练模型进行微调的方法,实现了在五个加密流量分类任务上取得新的最先进性能。

代码分析

  • 代码使用类库分析:该代码 https://github.com/linwhitehat/ET-BERT(72 Forks,302 Stars)不全为开源类库的集成,提供了较为良好的工具CLI和文档,可在较为用户友好的情况下运行。

  • 代码实现难度适中,工作量极大,因其包含了对大量开源数据集的整合和处理工作,以及对BERT模型的预训练和微调的工作。

  • 代码关键实现的功能如上文所示,主要有三个部分:Datagram2Token,Pre-training和Fine-tuning。其中我认为预处理部分,即Datagram2Token和数据预处理是代码中最为关键的部分,也是全文较为值得借鉴的部分。其涉及将流量包转化为BERT能识别和训练的Token。

论文点评

  • 优点:

    • 实验详实,工作量足
    • 语言简单,较为易懂
    • 考虑到的方法较为全面,性能也相较当时的SOTA更佳。
  • 可改进之处:

    • 速度和占用资源问题:BERT作为预训练模型,其模型参数较大,在运行时需要占用更多算力资源,运行时也会较为慢。也许可以通过使用模型蒸馏或模型量化的方式改善这一问题。
    • 模型过时问题:BERT较为古早,新的预训练模型,甚至LLM的技术已经被提出。也许可以通过新的预训练模型来实现该任务来改善这一问题。
    • 可扩展性问题:模型可能会产生类似“概念迁移”的问题,同样,对于较新的恶意代码产生的流量,该模型可能会难以识别。也许可以通过在线训练的方式来实现该任务来改善这一问题。
    • 可解释性问题:深度学习模型会存在可解释性问题。BERT基于Transformer,亦存在可解释性问题。解决方式仅有进一步研究和提升模型的解释性,提供更多关于模型如何进行特征提取和分类决策的细节来改善这一问题。
    • 实际应用的问题:模型仍然存在着一定的漏报率,而且由于其基于较复杂的预训练模型(BERT-base已经有几百M的大小),在线实时检测或是旁路镜像检测镜像检测的速度均无法满足要求。解决方式可以是提升检测机器的性能;但该模型的实用程度可能当前还仅能停留在实验室。
安全学术圈招募队友-ing 
有兴趣加入学术圈的请联系 secdr#qq.com

原文始发于微信公众号(安全学术圈):中科院信工所 | ET-BERT:用于加密流量分类的带有预训练Transformer的上下文数据报表征

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年8月12日16:28:58
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   中科院信工所 | ET-BERT:用于加密流量分类的带有预训练Transformer的上下文数据报表征http://cn-sec.com/archives/3058245.html

发表评论

匿名网友 填写信息