原文标题:DE-GNN: Dual embedding with graph neural network for fine-grained encrypted traffic classification
原文作者:Xinbo Han , Guizhong Xu , Meng Zhang , Zheng Yang , Ziyang Yu , Weiqing Huang , Chen Meng
发表会议:Computer Networks,2024
原文链接:https://www.sciencedirect.com/science/article/pii/S1389128624002044
笔记作者:樊春霆@安全学术圈
主编:黄诚@安全学术圈
1.研究背景
流量加密技术本意是保护用户的隐私,但是这使得流量的分析和分类技术变得复杂。识别加密流量的具体类别对于网络空间安全管理有着重要的作用。目前对于加密流量识别的深度学习方法存在一定缺陷,主要表现为:深度学习方法在加密流量中难以有效的提取有用信息、仅关注时间和空间特征而忽略了端系统之间的交互特征、混合使用包头和负载。
由此,本文作者提出了一种基于图神经网络(DE-GNN)的加密流量分类模型。模型主要由四个部分组成:双嵌入、包级流量学习、流级图的构建与学习、自适应深度特征融合。本文主要做出了以下三点贡献:
-
提出单独处理数据包头和有效负载的模型DE-GNN,采用分层结构对加密流量进行全面研究 -
利用CNN结构从原始数据中学习包级表示,减少了噪声和冗余的影响 -
以流量交互图的形式构建网络,结合行为模式和包级特征后利用图神经网络提取流级特征
2.研究方法
如图所示,本文提出的模型主要由四部分构成,分别是双嵌入、包级流量学习、流级图的构建与学习、自适应深度特征融合。
2.1 双嵌入
因为原始数据包中含有更多、更全面的信息,因此本文中使用原始数据表示数据包,而不关注他们的统计学特征。同时,由于有效载荷主要携带用户数据,构成双方通信的内容,往往是加密的;而报头仅有五元组和协议类型等信息,此部分不加密。因此本文考虑将两者分开学习。由于网络流量,尤其是加密流量中的值缺乏特定的数字含义与连续性,本文对每个字节使用了独热编码表示。独热编码为每个字节生成一个唯一的向量表示,向量中只有一位为1,其它均为0。
2.2 包级流量学习
上一部分中,我们已经成功用字节表示了数据包。为了提取数据包的特征,本文采用了字节提取模型,从TextCNN中获取灵感得到了PacketCNN模型。该模型使用三种不同的卷积核分别提取每个包中的内容,每个卷积核均由卷积层、ReLU激活函数、池化层组成。体系结构如下图所示:
此方法减轻了噪声的影响,与直接使用原始字节相比,我们能够更深入的研究数据包的有效特征
2.3 TIG的构建和流级图的学习
2.3.1 TIG(流量交互图)的构建
虽然加密流量保护了通信的内容,但是其并不改变通信各方的交互模式。每种流量都有着自己独特的交互模式,这就为我们通过研究流量交互方式进行加密流量分类提供了可能。
如下图所示,在此图中,每条箭头代表一个流量数据包,其方向代表数据包的传输方向。
由此,我们可以将其进一步转化为图结构,如下图所示。
首先,我们引入burst的概念:短时间间隔内沿同一方向连续传递的数据包序列。当前数据包在一个阈值:burst-threshold 内发生。虽然burst-a和burst-b两者是相同方向的连续报文序列,但他们的时间间距超过了burst-threshold,因此将他们分为两个burst。
顶点:TIG中的每一个顶点对应一个包,具体的,我们使用先前获得的包级表示来代表每个包 边:TIG将网络流量分为多个burst,然后用这些burst间的关系来表示顶点的连接。共有两种边,一种边用于连接同一个burst中的顶点,具体的,这些边按照包的时间顺序连接顶点。另一种边用于连接相邻burst之间的顶点,具体的,每个burst中的第一个顶点和最后一个顶点分别向相邻的burst的第一个顶点和最后一个顶点连边。此处的边均为无向边。
TIG有效的表示了进行网络通讯双方的交互行为,使得图神经网络可以对此进行提取和分析。同时,由于其使用包级特征作为顶点特征,封装了从数据包中收集到的有价值的信息,从而提供了更全面的信息和丰富的表示。
2.3.2 使用图神经网络学习流级特征
与CNN(卷积神经网络)和RNN(循环神经网络)相比,GNN(图神经网络)具有从图中获取结构上的信息的优势。此外,CNN与RNN在处理过程中通常需要对包的数量进行对齐,这可能导致噪声的引入。
本文使用GAT(图注意网络)从TIG中提取信息,GAT能够为不同的节点赋予不同的权重,从而强调关键节点的信息。为了彻底的从TIG中提取信息,本文使用了多个GAT层的堆栈(在本文中使用了4层)。如下图所示:
2.4 自适应深度特征融合
通过TIG的构建与GNN的学习,我们得到了包头和负载的流级特征。由于两者对分类的贡献不同,因此需要一个特征融合的方法学习两者的特征。而现有的特征融合方式主要是固定权值的,本文则采用了自适应深度特征融合。过程如下图所示:
3.实验与分析
3.1 实验设置
本文的数据集主要来源于网络,包括两部分:ISCX-VPN2016和ISCX-Tor2016。本文中没有采用ISCX-Tor2016中ISCX-nonTor的部分。
在数据预处理中,本文进行了:
-
pcap分割。具体的,使用了流分割工具将pcap文件分为双流,分割后进行数据清洗。 -
提取数据包的包头和有效载荷,并将每个字节转换为独热编码。 -
为每个样品分配标签 在此过程中,本文排除了以太网报头,对过长的数据进行截断并对过短的数据进行填充。
下图中展现了最佳分类性能的超参数值。在训练过程中,本文使用了5倍交叉验证和earlystop。
本文的评价指标有准确率AC,精密度PR,召回率RE和F1-score。
3.2 模型敏感性分析
敏感性主要考虑了报文数的影响和字节数的影响。以F1-score为评价指标,分析结果如下图所示:
报文数的影响主要影响了数据包的数量,直接影响到了TIG的大小,可以观察到随着数据包数量的上升,模型的性能也开始上升,最后趋于稳定。
字节数数量主要影响包级学习。从图中可以看出,当使用负载的前400字节进行建模时,模型性能最优。
3.3 比较实验
结果如下所示:
3.4 消融测试
对四个部分,本文分别作了消融测试。
-
双嵌入:只使用包头或者有效载荷。记为All-h(只使用包头)与All-p(只使用有效载荷) -
包级学习:直接丢弃包级学习,使用数据包的原始字节数据。记为All-packet -
图神经网络:将TIG与GNN换为CNN或LSTM。记为All-cnn与All-lstm -
自适应深度特征融合:直接将特征连接起来。记为All-adff 结果如下图所示:
3.5 GNN架构变体研究
为证明GAT学习TIG的有效性,本文选择了一些经典的GNN架构作为变体,结果如下图所示:
3.6 TIG的结构
本文中,作者团队创建了一个TIG的变体:两个相邻burst的节点两两连接,而不是仅仅连接开始和结束节点。结构如下图所示:
结果如下图所示:全连接图导致了性能的下降。
3.7 模型复杂度分析
为了全面评估模型性能和模型复杂度之间的权衡,本文给出了所有基线和模型的浮点运算(FLOPs)和模型大小。
在不同的方法中,DE-GNN的参数数量是第二少的,但是与此相反的是,DE-GNN需要更多的浮点运算。这主要是出于两点原因:本模型中进行了多步信息提取、将包头和负载部分分开进行处理,导致了运算量的增加。
4.本文的贡献
本文成功设计了一个基于图神经网络的加密网络分类模型,可以以较高的性能进行加密流量的分类。主要贡献如下:
-
将包头和负载分开进行处理,使模型得到了较好的性能 -
使用CNN对原始字节提取信息,获得流量的包级表示 -
考虑到了应用于流量交互方式的相关性,构建了流量交互图,成功用图神经网络GAT进行了信息提取
5.本文的不足
-
本文中提出的TIG图结构在信息传输方面存在一些限制。具体的,在不相邻的burst之间传递消息需要多层图神经网络,不能在单个学习过程中实现。 -
本文的重点是单个网络流的分类,而现实中的活动往往涉及多个网络流。 -
本文在实验中并未考虑到现实中可能存在的流量缺失、丢包等情况造成的影响。
安全学术圈招募队友-ing
有兴趣加入学术圈的请联系 secdr#qq.com
原文始发于微信公众号(安全学术圈):中科院信息工程所 | DE-GNN:基于图神经网络的双嵌入细粒度加密流量分类