一种用于加密流分类的多模态深度学习框架A Novel Multimodal Deep Learning Framework for Encrypted Traffic Classification论文

一、背景

l 网络应用程序流量被加密
l 基于传统有效载荷交通分类方法和基于端口的流量分类方法不在有效
l 已有的模型不能用于更细粒度的操作

二、pean介绍

概括

PEAN模型是一种软件架构模式,它是基于Node.jsPostgreSQL的开发模式。PEAN模型中,P代表PostgreSQL数据库,E代表Express框架,A代表AngularJS前端框架,N代表Node.js,它们分别是构成PEAN模型的四个组成部分。PEAN框架使用原始字节和长度序列作为输入,并使用Self-Attention机制来学习 biflow 中网络数据包之间的深层关系。此外,引入了无监督的预训练,以增强PEAN表征网络数据包的能力。

特点

PEAN模型的主要特点是使用Node.js作为服务器端框架,Express作为Web框架,PostgreSQL作为数据库,AngularJS作为前端框架,同时还使用了一些其他的技术和工具,如BootstrapGruntBower等。

优点

  1. PEAN使用多模式端到端策略进行更深入的网络流量建模,从数据包内容和数据包长度视图学习流量信息,从而可以通过捕获多个视点中的模式来提高性能。
  2. Transformer用于PEAN中,以捕获数据包的顺序关系,并合并来自网络流量不同部分的信息。并且Transformer的多头自我注意机制的直觉可以从不同的角度关注数据的内容,这与我们上面提到的挑战相对应。
  3. PEAN引入了一种无监督的预训练方式来增强网络分组字节的表示,可以更好地了解字节之间的相互关系,对于识别加密的流量非常有用。

缺点

是需要较高的技术水平,对于初学者可能存在一定的难度。同时,由于使用了多种技术和工具,需要进行相应的配置和管理,这也会带来一定的复杂性。

三、具体架构

论文中提出的模型PEAN的体系结构有5层。

预训练层是学习字节嵌入模型的第一层,其中Transformer是核心组件,其多头自我关注机制允许其学习相互关系字节之间。预训练层的任务是通过无监督预训练获得表征字节的能力。第二层是分组编码层,其重用在第一层中学习的模型参数以获得分组级嵌入表示。第三层,顺序层使用另一个Transformer来学习不同包嵌入的相互关系,以获得网络流的嵌入表示。第四层是补充层,它使用分组长度序列执行简单的LSTM建模,以从第二模态学习模型的补充特征。最后一层分类层将来自顺序层和补充层的隐藏特征组合起来,以执行融合和分类。

问题定义

第一层:预训练层(Pre-Training Layer)

预训练的目的是训练一个具有字节编码能力的模型,帮助我们在后期的数据包编码层中将数据包编码为向量。

这样的预训练方式有以下优点:

  1. 在预训练阶段,每个字节的嵌入表示都与其他字节相关,因此整个数据包表示会有更强的统一性。
  2. 众所周知,收集网络流量很简单,但给它们贴上标签却很困难。由于预训练方法是无监督的,大量未标记的可以直接用于预训练,提高模型的包编码能力,便于未来模型的扩展和更新。

英译:

A. Pre-Training Layer :

The purpose of pre-training is to train a model with bytes encoding capability that can help us to encode a packet into a vector in the later Packet Encoding Layer。

Such a pre-training manner has the following advantages:

  1. In the pre-training phase, the embedding representation of each byte is related to other bytes, so the whole packet representation will have stronger unity.
  2.  As we all know, collecting network traffic is simple but labeling them is difficult. Since the pre-training method is unsupervised, a large amount of unlabeled can be directly used for pre-training to improve the model’s packet encoding ability, which is convenient for future model extension and updates.

 第二层:包编码层(Packet Encoding Layer)

 目的:利用在第一层学习到的模型改获得一个数据包的向量表示

 第三层:序贯层(Sequential Layer)

网络流量是一种具有时间序列关系的流型数据,相邻的数据包包含一定的相关性。

Network traffic is a stream-type data with time sequence relation, and the adjacent packets contain a certain correlation.

在此基础上,设计了一个序贯层来学习数据包之间的关系。因为这样的想法涉及对数据包的细粒度操作,许多基于统计或基于流程的方法是无能的,这是我们端到端框架的优势。

Based on this, we design a Sequential Layer to learn the relationship between packets . Because such a thought involves fine-grained operations on packets, many statistical-based or flow-based methods are incompetent, which is the advantage of our end-to-end framework.

第四层:补充层(Supplement Layer) 

 目的:由于原始网络流包含的数据包是不规则的,不同数据包的长度不相等,在端到端策略中对数据包进行处理,使其具有一致的长度(通过截断或填充它们),以适应神经网络的输入格式,但这样的操作会使数据包真实长度信息丢失,包长度可以达到很好的分类效果在截断和填充之前,使用包长度序列进行简单的LSTM建模,以学习补充来自第二层模态的模型特征。

第五层:分类层(Classification Layer)

我们尝试对神经网络的学习进行引导,使其能够学习到分别训练的两部分的最佳性能。具体来说,我们改进了损失函数。新的损失函数不仅衡量最终分类结果的性能,还考虑了每个部分中学习到的特征的分类性能。

We try to guide the learning of the neural network, so that it can learn the best performance of the two parts trained separately. Specifically, we improve the loss function. The new loss function not only measures the performance of the final classification result but also considers the classification performance of the features learned in each part.

 pean结构图

四、 实验测评

基线介绍

我们使用五个模型作为基线:MaMPF[15]、1D-CNN[33]、FS-Net[23]、AppNet[38]和MIMETIC[39]。其中, 1D-CNN和FS-Net则被表示为经典的深度学习模型。有趣的是,1D-CNN是一种端到端的深度方法,而FS-Net是一种深度学习方法,

MaMPF被表示为优秀的机器学习模型,,MaMPF 是一种基于 Python Web 应用开发框架,它可以帮助开发者快速构建高性能、可扩展的 Web 应用程序

1D-CNN 指的是一维卷积神经网络,适用于处理一维信号数据,比如时间序列、音频信号等。与传统的全连接神经网络相比,1D-CNN 可以自动学习数据中的局部特征,从而减少了需要手动提取特征的工作。

FS-Net是一个端到端的分类模型,它从原始流中学习代表性特征,然后在一个统一的框架中对它们进行分类。采用多层编码器-解码器结构,可以深入挖掘流的潜在序列特征,并引入重构机制,提高特征的有效性。

AppNet模型是一个用于描述和实现分布式应用程序的框架。它采用了基于消息传递的通信模型,使得不同的应用程序可以分别运行在独立的节点上,并通过消息交换相互协作。

MIMETIC模型是一种多尺度仿真方法,用于模拟物理过程和行为。它是通过将某些离散参数调整到最优状态来实现多尺度模拟的, MIMETIC模型在建立复杂系统的数学模型方面非常有用,特别是在没有足够的数据进行模拟的情况下。

定量测评

PEAN在所有评价指标中取得了最好的表现。

首先,PEAN在所有评价指标中取得了最好的表现。PEAN的准确率为99.22%,比最佳基线(AppNet,97.91%)高1.34%;FTF评分为99.15%,比最佳基线(AppNet,97.71%)高1.47%。此外,PEAN在多个平均指标上也取得了改进,表明PEAN在所有应用中都具有最好的分类平衡性。具体而言,PEAN的TPR-avg达到98.55%(比MIMETIC高0.99%),FPR-avg仅为0.05%(比AppNet和MIMETIC高140%),F1macro为98.63%(比MIMETIC高1.12%)

p.s.  FTF:反应模型整体分类性能

       TPR-avgFPR-avg:评估模型性能

我们已经可以看到深度学习方法的优势,即;,更强的特征学习能力。而且现在很多深度学习任务都会配备GPU加速卡,使得传统机器学习算法在检测速度上失去优势。

遮挡分析

分类时,网络流的一些原始字节也可能包含SNI字段,这可能会导致标签泄漏问题。因此,我们通过屏蔽SNI域来扩展数据集,以更准确地验证PEAN的性能。我们对数据集中网络流的握手数据包进行了不同程度的截断,来实现遮挡分析,进行对PEAN在各种情况下的表现评估。

表IV给出了完整握手包(有和没有SNI)下的实验结果。我们可以看到,PEAN在所有指标中仍然取得了最好的性能。实验结果与包含SNI的数据集相比,PEAN的准确率下降0.2%,F1macro下降0.38%,FTF下降0.21%,性能下降基本上可以忽略不计,甚至高于其他所有包含SNI场的模型的分类结果。有和没有SNI的对比结果表明,PEAN不仅从SNI场学习网络流的特征,而且有效地利用了其他信息,取得了很有前景的分类结果。值得注意的是,1D-CNN的分类性能下降非常明显,准确率下降了9.38%,F1macro下降了12.76%,FTF下降了11.23%,这意味着1D-CNN过度依赖于从SNI学习到的特征,没有很好地利用其他部分的信息。FS-Net是一种基于长度序列的方法,在有无SNI的情况下均表现出稳定的分类性能

表V给出了部分握手报文(有和没有SNI)的实验结果。当丢失一些握手数据包时,所有方法的分类性能都会显著下降,但PEAN仍然在所有指标上得分第一,是唯一一个在F1macro上得分超过96%的模型。Macro:宏

我们进一步实验,丢弃所有握手报文,观察不同模型分类结果的变化,实验结果如表VI所示。

总结:纯密文网络流确实对流量分类构成了重大障碍。并且,从以上所有的实验结果中,我们可以得出结论,端到端方法在有足够的握手包的情况下可以表现良好,而当握手包不完整时,性能会有不同程度的下降。基于特征的方法(例如,长度序列)表现更稳定,即使丢失了部分握手包,也表现出良好的性能。多模式框架可以结合两者的优点,其端到端的部分在包含握手包时试 图从字节中提取更多隐藏的特征,从而提高模型的上限, 而其基于特征的部分在握手包不完整时提供稳定的分类性 能,以保证整个模型的稳定性。

消融研究

, P E A N 取得了更好的效果

预训练层我们丢弃预训练过程,所有字节将被随机初始化为高维向量(实验中维数为128)。该方法称为“花生光”方法。

顺序层。将顺序层实现模型由Transformer改为LSTM,并将其命名为PEAN-LSTM。此外,我们去掉了顺序层,以仅使用长度序列来评估模型的性能,并将模型表示为PEAN-l(length)。•补充层。我们去除补充层,以仅使用原始字节评估模型的性能,并将其表示为PEAN-e(端到端)。

•分类层。将分类层的损失函数由lossotal改为loss3,并将此方法记为PEAN-loss3。

这也说明PEAN-e并没有过分依赖于从SNI学习到的信息,而是关注网络流的其他部分

长度序列方面,PEAN-l的实验结果显示出与FS-Net相似的趋势,握手包的丢失和SNI对PEAN-l的性能影响并不严重。只有当根本没有握手包时,PEAN-l的性能才会显著下降。此外,PEAN取得了更好的效果

预训练层确实可以增强包特征表示,提高分类性能。预训练的PEAN模型在FTF和F1macro上分别比PEAN-light模型提高了0.97%和1.29%(SNI和全握手包)。

灵敏度分析

  1. 包数(PacketNumber):从图6(a)可以看出,随着包数的增加,模型的性能呈现出先增加后降低的趋势。因为,当包数为6时,可能会有一些握手包没有被使用,信息没有被充分利用,导致结果不是最好的包数大于10,大多包含握手包,再往上加包可能带来太多密文噪声,使模型精度开始下降
  2. 字节数:从图6(b)可以看出,取一个包的前400个字节进行建模时,模型效果明显好于其他设置。产生这种现象的原因和前面类似,很少有握手报文会超过400字节,所以当字节数继续向上增加时,可能会增加密文在密文报文中的百分比。因此字节数越大,反而可能模型分类效果越差。

开销分析

我们对不同的深度学习模型进行了开销分析,包括推理时间(μs/flow)、GPU内存使用(训练和测试)和训练时间(s/100批次),结果如图7所示。我们确保在运行特定的模型任务时,这个任务是机器上唯一的cpu密集型和gpu密集型作业,并且用于训练和测试的批大小都是128个。为了计算推断时间,我们记录了模型对整个数据集进行推断所花费的总时间,然后进行划通过分样本数量来获得推断每个网络流所花费的时间。

由图可知,pean表现突出

目录

一、背景

二、pean介绍

概括

特点

优点

缺点

三、具体架构

问题定义

第一层:预训练层(Pre-Training Layer)

 第二层:包编码层(Packet Encoding Layer)

 第三层:序贯层(Sequential Layer)

第四层:补充层(Supplement Layer) 

第五层:分类层(Classification Layer)

 pean结构图

四、 实验测评

基线介绍

定量测评

遮挡分析

消融研究

灵敏度分析

开销分析


最后题外话:

这是我第一次深入阅读论文,十分艰难。非常感谢我的搭档和组织辅导的学长的合作与支持。

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值