一、背景

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结构图

四、 实验测评

基线介绍

定量测评

遮挡分析

消融研究

灵敏度分析

开销分析


最后题外话:

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

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

  1. 生物信息学|用于预测药物-药物相互作用事件的多模态深度学习框架

    本篇推文引自:A multimodal deep learning framework for predicting drug–drug interaction events 1. 摘要     动机 ...

  2. Bioinformatics | 预测药物-药物相互作用的多模态深度学习框架

    今天给大家介绍来自华中农业大学信息学院章文教授课题组在Bioinformatics上发表的一篇关于预测药物与药物相互作用事件的文章.作者提出了一个多模态深度学习框架- DDIMDL.它将不同的药物特征 ...

  3. Nature子刊:用于阿尔茨海默病痴呆评估的多模态深度学习模型

    在全球范围内,每年有近1000万新发痴呆病例,其中阿尔茨海默病(AD)最为常见.需要新的措施来改善对各种病因导致认知障碍的个体的诊断.作者报告了一个深度学习框架,该框架以连续方式完成多个诊断步骤,以识 ...

  4. Brain:一种用于阿尔兹海默症(AD)分类的可解释的深度学习框架

    <本文同步发布于"脑之说"微信公众号,欢迎搜索关注~~> 阿尔茨海默病是全球范围内痴呆症的主要原因,随着人口老龄化,其发病率负担日益加重,可能超过诊断和管理能力.目前的 ...

  5. 加密流量分类-论文1:Deep Learning for Encrypted Traffic Classification: An Overview

    加密流量分类-论文1:Deep Learning for Encrypted Traffic Classification: An Overview 0.摘要 1.介绍 2.网络流量分类流程框架 2. ...

  6. 加密流量分类-论文11 FlowPic: A Generic Representation for Encrypted Traffic Classification and Applications

    FlowPic: A Generic Representation for Encrypted Traffic Classification and Applications Identificati ...

  7. 用于阿尔茨海默症分期早期检测的多模态深度学习模型

    目前大多数阿尔茨海默症(AD)和轻度认知障碍(MCI)研究使用单一数据模式来预测,例如AD的分期.多种数据模式的融合可以提供AD分期分析的整体视图.因此,我们使用深度学习对成像(磁共振成像(MRI)) ...

  8. 加密流量分类-论文6:Learning to Classify A Flow-Based Relation Network for Encrypted Traffic Classification

    加密流量分类-论文6:Learning to Classify A Flow-Based Relation Network for Encrypted Traffic Classification 0 ...

  9. 【点云路标提取】一个用于点云道路标志提取,分类和完善的的深度学习框架

    A deep learning framework for road marking extraction, classification and completion from mobile las ...

最新文章

  1. Docker 入门系列(6)- Docker 互联
  2. [导入]通过简易的前台代码实现无限二级域名转向(来自无忧 biyuan老矣)
  3. infoseccrypto_java下载_關於php接ICBC的支付接口的解決方案
  4. 蓝桥杯 2011年第二届C语言初赛试题(1)
  5. 剑指Offer - 面试题36. 二叉搜索树与双向链表(中序循环/递归)
  6. 3种java实现多线程_实现java多线程的3种方式,99%人没用过第3种
  7. Brex联合创始人:可能将加密货币纳入资产负债表
  8. 9种让肌肤美白的简单方法 - 生活至上,美容至尚!
  9. Ubuntu中配置jdk环境变量
  10. 如何使用Frontline实时抓取蓝牙协议栈HCI LOG
  11. 测试图片色域软件,显示器色域检测
  12. KMS和MAK的区别
  13. 数据库防火墙:数据库防火墙的阻断方式
  14. linux 终端打开chrome,我应该输入什么命令来从终端运行Chrome?
  15. mysql 的capi预处理
  16. 如何制定软件测试策略
  17. 天价月饼被套上“紧箍咒”,499元成天花板?
  18. Redis的使用场景有哪些?
  19. nyoj 305 表达式求值 (递归)
  20. 打包bat成exe,双击运行不显示dos窗口,exe不报毒

热门文章

  1. Kali Linux换更新源及更新软件和系统教程
  2. echarts 柱状图 圆角 渐变背景 根据高度实现渐变
  3. Python爬虫 —— urllib库的使用(get/post请求+模拟超时/浏览器)
  4. win10禁止触摸键盘_如何阻止Windows 10的触摸键盘在登录时出现
  5. 【Android进阶】如何写一个很屌的动画(3)---高仿腾讯手机管家火箭动画
  6. 【架构实践】分布式系统的“脑裂”到底是个什么玩意?
  7. c语言函数前加long的作用,C语言中longlong型数据怎么输出,能详细说明一下long与long long的区别吗?...
  8. mysql show processlist 命令详解
  9. 同步软件sersync2
  10. html---br换行符