加密流量分类-论文8:An Encrypted Traffic Classification Method Combining Graph Convolutional Network and ...

加密流量分类-论文8:An Encrypted Traffic Classification Method Combining Graph Convolutional Network and Autoencoder

  • 0、摘要
  • 1、文章核心观点引入
  • 2、模型方法
    • 2.1 预处理(Data Preprocessing)
    • 2.2 流量图形构建(Traffic Graph Construction)
    • 2.3 分类模型
  • 4、实验
  • 5、总结与思考

Combining Graph Convolutional Network and
Autoencoder)

0、摘要

  构造了一个k -最近邻(KNN)交通图来表示交通数据的结构,从流量结构和流量数据中学习特征表示,利用两层图卷积网络(GCN)架构进行流特征提取和加密流分类。进一步使用自动编码器学习流数据本身的表示,并将其集成到gcn学习的表示中,利用了GCN和自编码器的优点,在只需要少量标记数据的情况下就能获得较高的分类性能。

1、文章核心观点引入

  • 样本的结构可以揭示标记样本与未标记样本之间的潜在相似性,为标记样本较少的分类任务提供有价值的指导

  • 在网络流量分析领域中,构建流量图来描述流量结构的方法有很多种,但是这些图主要包含了网络的通信模式和拓扑信息,很少包含流量相似度的信息

  • 构造k -最近邻图来表示交通数据的结构。我们将交通流作为KNN图中的节点。对每个节点,通过相似度计算找到其前K个相似点作为其近邻,并建立边缘连接。进一步利用图卷积网络(GCN)获取交通结构信息,进行流特征提取和分类

​ 如图,相当于两个信息分支:

加密流量分类-论文8:An Encrypted Traffic Classification Method Combining Graph Convolutional Network and ..._第1张图片

关键去找论文如何定义所谓的相似度

2、模型方法

2.1 预处理(Data Preprocessing)

  • 流量分割(Traffic Split):

      去掉pacp文件头的前24个字节,此24字节只包含pacp文件的统计信息,然后基于5元组分成流(flow)的形式,原始流量就转换成流集合F:
    F = [ f 1 , f 2 , . . . , f n ] F=[f_1,f_2,...,f_{n}] F=[f1,f2,...,fn]
    对于每一个fi,都包含q个包(packet)
    f i = [ p 1 i , p 2 i , . . . , p q i ] f_i=[p_1^i,p_2^i,...,p_{q}^i] fi=[p1i,p2i,...,pqi]

  • 流量过滤(Traffic Purification):

      删除每个数据包p中的MAC头,因为它被两个MAC地址填充,也可使它们为零来匿名化这五个元组,并且去掉了所有重复的和空的流文件,避免了对我们分类模型学习能力的不利影响

  • 统一长度(Length Unification):

      对于大于900字节的流,将其裁剪为900字节,对于小于900字节的流,在流的末尾添加0x00,使其补充为900字节

  • 数据归一化(Data Normalization):

      将900字节的流序列转换为900维的向量。然后,我们将流向量归一化到范围[0,1]

  经过上述转化,每一个流fi都转为流字节向量FBV,原始数据转为矩阵X∈RN*d,N代表N个流,d代表一个FBV的维度

2.2 流量图形构建(Traffic Graph Construction)

  对于流数据X,找到对于每个流最相似的k个流,每个流f作为图的一个节点,找到最相似的流作为相邻的节点,在它们之间设置边。对于两个向量xi,xj,相似度计算公式如下:
S i j = e − ∣ ∣ x i − x j ∣ ∣ 2 t S_{ij}=e^{-{{||x_i-x_j||}^2\over t}} Sij=et∣∣xixj∣∣2
其中|| ~ ||是计算两个向量的欧式距离,在计算相似矩阵S后,选取每个流的top-k相似点作为其近邻,构造无向k最近邻图。这里原文给出了一个依据KNN构造图与原始图(trace graph)的差距,通过相似度计算构建KNN流量图,使得相同应用类型的流量之间建立了更多的连接。KNN图比迹图更容易区分不同类型的流量。

加密流量分类-论文8:An Encrypted Traffic Classification Method Combining Graph Convolutional Network and ..._第2张图片

2.3 分类模型

  分类模型由GCN与SAE两个部分组成

  • GCN:将加密的流量分类转换为节点分类任务,考虑两层GCN架构来获取流量结构信息:

    • 第一层GCN的输入:邻接矩阵A和流量数据X。A是图的邻接矩阵,X是原始流量数据的矩阵

    • 第一层输出Z(1)

      image-20221013200951807

      其中:
      A ^ = A + I \widehat{A}=A+I A =A+I

      D是度数矩阵,D是对角阵,每个值是A矩阵的行和,W是权重参数矩阵,外面是激活函数

    • 第二层GCN:

      image-20221013201301290

      损失函数为交叉熵损失。

  • SAE:输入为原始流量X,输出为重构的X,最后一层编码器输出为He,损失函数为均方差MSE损失,故模型总损失为两损失之和。

    以上两个部分并没有联结,此处作者的创新将SAE编码器的压缩输出作为辅助信息,与GCN第一层融合,送入GCN第二层,进行分类。由此有如下的Representation Delivery

    加密流量分类-论文8:An Encrypted Traffic Classification Method Combining Graph Convolutional Network and ..._第3张图片

  • **Representation Delivery:**由于KNN流量图是通过相似度计算构造的,因此在KNN图的同一连通分量中,节点的特征更加相似。图卷积运算可能会使它们趋向于收敛于同一值,可能会混合来自不同簇的节点的特征,使它们难以区分,导致过平滑,为了缓解,进行Representation Delivery:
    Z ~ = ( 1 − ϕ ) Z ( 1 ) + ϕ H e M \widetilde{Z}=(1-\phi)Z^{(1)}+\phi H^M_e Z =(1ϕ)Z(1)+ϕHeM

    ϕ 是一个平衡参数 \phi是一个平衡参数 ϕ是一个平衡参数

    ,故GCN输出改为:
    Z ′ = s o f t m a x ( D ^ − 1 / 2 A ^ D ^ − 1 / 2 Z ^ ( 1 ) W ( 1 ) ) Z^{'}=softmax({\widehat{D}}^{-1/2}\widehat{A}\widehat{D}^{-1/2}{\widehat{Z}}^{(1)}W^{(1)}) Z=softmax(D 1/2A D 1/2Z (1)W(1))
    这样可以增强节点的特征表示能力,防止GCN过度强调相邻节点的关联而忽略节点本身的特征,从而提高模型分类性能。


4、实验

  • 由于是半监督模型,关于标记率的分析

    加密流量分类-论文8:An Encrypted Traffic Classification Method Combining Graph Convolutional Network and ..._第4张图片

    分析:在所有方法中,随着准确率上升,acc都有增加的趋势,但所提方法的曲线始终高于其他方法,而我们方法的准确率始终优于基线方法。对比结果表明,在低标记率的情况下,将流量结构信息与流量数据相结合进行加密流量分类是有效的。从图中还可以看出,当标记率从10%下降到1%时,我们的方法的准确率下降速度明显慢于其他方法,说明我们的方法具有更好的鲁棒性。

  • 超参数分析:

    K与平衡参数\phi

    K取3,5,7比较好

    \phi取0.5比较好

  • 似乎没有做消融实验,似乎没有较强说服力说明这个Representation Delivery是有效的…

5、总结与思考

  Representation Delivery的创新,感觉这方面没有做相应的消融实验说不过去,毕竟创新点就是这个,不做消融实验怎么说明它一定是有效的捏。

你可能感兴趣的:(加密流量分类,人工智能,网络,分类)