基于深度生成模型的半监督网络流量分类

本文提出了一种基于深度生成模型的半监督网络流量分类方法,仅需少量标记流就能达到95%以上的准确率。通过特征提取模块自动发现流量数据的表示特征,再利用半监督分类模块进行训练。实验证明,该方法不仅可检测恶意软件流量,还能按协议、应用和攻击类型进行分类。
摘要由CSDN通过智能技术生成

写在前面:
本文翻译供个人研究学习之用,不保证严谨与准确
github链接:https://github.com/WithHades/network_traffic_classification_paper
本文原文:Li, T., Chen, S., Yao, Z., Chen, X., & Yang, J. (2018). Semi-supervised network traffic classification using deep generative models. 2018 14th International Conference on Natural Computation, Fuzzy Systems and Knowledge Discovery (ICNC-FSKD), 1282–1288.

基于深度生成模型的半监督网络流量分类

摘要
  网络流量分类在网络管理和安全领域中起着基础性的作用。近年来,机器学习技术被用来对网络流量进行分类。特别半监督学习非常适合实际情况,在这种情况下,很难获得预先标记的训练流。提出了一种基于深度生成模型的半监督网络流量分类方法。具体来说,特征提取模块的目的是在低维特征空间中自动发现原始流量数据的表示特征。然后,利用这些表示特征,利用半监督分类模块训练分离分类器。通过异常检测层、协议层和应用层三个不同层次的数据集对该方法进行了验证。结果表明,该方案不仅可以检测恶意软件流量,而且可以根据恶意软件的协议、应用和攻击类型对流量进行分类。利用整个数据集不到20%的标记流,可以达到95%以上的准确率,与有监督学习方法相比是一个令人满意的值。

  关键词: 网络流量分类半监督学习深度生成网络特征工程学习, 网络攻击检测

I. 介绍

  随着大数据时代的到来,新型的互联网应用应运而生,网络的构成也变得更加复杂。网络管理员应该了解更多关于网络流量的应用程序和协议的信息,以便更好地实现网络调度和攻击防御策略。近几十年来,基于用户行为分析的网络流量分类在优化网络配置、降低网络安全风险、提供更好的服务质量等方面具有不可或缺的价值,引起了人们的广泛关注[1]。
  有三类流量分类方法:基于端口的、基于深度包检查(DPI)的和基于流量统计的方法[1]。传统的基于端口的方法通过将数据包中的端口号映射到已知的应用程序来识别网络应用程序。但随着动态端口业务的增长和网络地址转换的采用,基于端口的分类变得不可靠。基于DPI的方法在IP包的有效负载中搜索应用程序的签名,这有助于避免动态端口问题[2]。目前,它是最实用的方法。然而,基于DPI的方法在处理加密流量时失败了。
  基于统计的方法没有通过匹配预定义的规则来执行流量分类,而是利用一组流量的可观察特征(例如,分组大小的均值和方差以及分组之间的间隔时间)来展示网络流量的不同行为和潜在特性。大多数基于统计的方法可以进一步分为有监督或无监督学习算法。一方面,监督学习主要利用机器学习的方法,从具有一组选择性特征的标记流中提取模式来学习流量分类器。然而,性能取决于在实践中很难获得的预标记流的质量和数量[3]。另一方面,无监督方法通过聚类技术(如Kmeans)对一组未标记流进行分类。然后,通过人工标注的方式,将聚类结果用于构建分类器。然而,准确度远不能令人满意。
  本文在深入生成模型和变分推理理论的基础上,利用密度模型提出了一种半监督网络流量分类方法。我们的方案只需要少量的标记流,但达到了令人满意的90%以上的精度。本文的主要贡献概括如下:

  • 我们使用一个深度生成模型作为特征抽取器来提供原始流的表示特征。相关的流将被聚类到一个潜在的特征空间上,使得分类更加准确。
  • 我们提出了一个半监督方案来解决只有少量标记流的流量分类问题。该方法结合了近年来在深生成模型和变分推理理论领域的成功结果。
  • 我们在三个不同层次的网络流量数据集上进行了实验。结果表明,该方案不仅可以检测恶意软件流量,而且可以根据恶意软件的协议、应用和攻击类型对流量进行分类。

II. 相关工作

  基于端口和基于DPI的流量分类方法在实际应用中有着广泛的应用。Finsterbusch等人[6]综述了目前基于DPI的流量分类方法。相关工作主要集中在如何准确地确定映射规则,减少有效载荷检测的时间消耗,提高性能等方面。
  由于基于规则的方法面临着动态端口和加密流量的问题,近年来的研究主要集中在如何将基于流量统计的方法与机器学习技术结合起来。Nguyen和Armitage[2]对几种机器学习方法处理网络流量分类的性能进行了比较。在训练数据集完全标记的情况下,利用监督学习算法对分类器进行训练。例如,Naive Bayes[9]、支持向量机(SVM)[7]和决策树[8]已经使用选择性流特征对此问题进行了评估。随着人工智能(AI)的发展,除了上述传统的机器学习方法外,还应用了深度学习技术来构建分类器。Javaid等人[10]提出了一种基于稀疏自动编码器(SAE)的网络入侵检测方案。Wang等人[11]提出了一种基于一维卷积神经网络的加密流量分类方法。采用长-短期记忆网络(LSTM)[12]学习时间流特征,提高分类精度。
  一些无监督的学习方法,如K-均值[13]和期望最大化(EM)[14]被用来对流量进行自动聚类。乔纳斯等人[3]提出了一种基于神经自动编码器的无监督学习流量分类算法。半监督学习是一种将大量未标记流和少量标记流输入分类器的混合学习方法。Erman等人[13]首先在聚类过程中使用K-Means算法,然后利用标记流对聚类结果进行分类应用。
  在本文中,我们的方法也是半监督的,但它是一个端到端的分类模型,而不是一个单独的两步过程。标记流和未标记流用于同时训练模型,这比以前的“特征-簇-标签”方案更高效、更自动。同时,所选择的特征在反映流行为方面起着重要的作用。因此,我们没有使用手工制作的流程统计,例如[9]中提出的248个统计特征集,而是使用了先进的深生成模型。具体地说,变分自动编码器(VAE)[4]通过将原始流嵌入低维潜在特征空间来表示原始流的特征。

III. 半监督网络流量分类的深生成模型

  在这一部分中,我们提出了一个半监督方案来处理网络流量分类问题。该框架主要包括两个模块:特征提取模块和半监督分类模块。图1显示了整个框架。特征提取模块需要预先训练,目的是在无监督的情况下自动发现原始流的表示特征。然后,利用表示特征,利用半监督分类模块训练分离分类器。在该模块中,我们提出了一个概率模型来描述除了一些潜在变量之外,由特定的流量类型生成的流量。

图1 半监督流量分类框架

A. 特征提取

  使用变分自动编码器(VAE)学习原始流(n字节网络包序列)的表示特征。在图2中,使用VAE,我们可以获得低维空间中的表示特征。这些低维特征比原始流更容易分离,因为具有相似特征的流聚集在潜在特征空间上。我们将流量数据建模为对: ( x , y ) = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } (x, y) = \{(x_1, y_1), (x_2, y_2), ..., (x_N, y_N)\} (x,y)={ (x1,y1),(x2,y2),...,(xN,yN)},其中 x i ∈ R D x_i \in R^D xiRD表示第i个原始流, y i ∈ { 1 , . . . , L } y_i \in \{1, ..., L\} yi{ 1,...,L}是它的类标签。每个原始流 x i x_i xi都有相应的表示特性 z i z_i zi

  如图2所示,我们将 q ∅ ( z ∣ x ) q_{\emptyset}(z | x) q(zx)称为概率编码器,因为给定原始流x,它可以在表示特征z上产生后验分布,我们将其表示为“表示特征分布”。具体来说,我们用来推断表示特征的编码器是高斯网络:
q ∅ ( z ∣ x ) = N ( z ∣ μ ∅ ( x ) , d i a g ( σ 2 ( x ) ) ) (1) q_{\emptyset}(z|x) = N(z|\mu_\emptyset(x), diag(\sigma^2(x)))\tag{1} q(zx)=N(zμ(x),diag(σ2(x)))(1)
  编码器以深度神经网络的形式构造。这个表示分布的均值和方差 q ∅ ( z ∣ x ) q_{\emptyset}(z|x) q(zx)是编码器的输出。这里,函数 μ ∅ ( x ) \mu_\emptyset(x) μ(x) σ 2 ( x ) \sigma^2(x) σ2(x)表示为多层感知器(MLPs)。
  我们还将 q ∅ ( z ∣ x ) q_{\emptyset}(z|x) q(zx)称为概率解码器,因为给定

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值