APP下载

基于注意力机制的图神经网络加密流量分类研究

2023-01-05喻晓伟陈丹伟

信息安全研究 2023年1期
关键词:数据包客户端加密

喻晓伟 陈丹伟

(南京邮电大学计算机学院、软件学院、网络空间安全学院 南京 210023)

近年来,互联网快速普及和发展,信息技术给人们的生活带来了许多便利.同时,随着网络用户安全隐私意识的不断提升,以及流量加密技术的广泛应用,互联网中加密流量急剧增加.流量加密技术在保护网络数据安全的同时,增加了流量识别的难度,给网络流量规划、网络内容审计和网络安全等领域[1]带来了新的挑战.

VPN(virtual private network)是一种通过共享的公共网络建立私有的数据通道的加密技术,常用的VPN技术有基于网络层的IPSec(IP security)VPN和基于应用层的SSL(secure socket layer)VPN[2].相较于IPSec VPN,SSL VPN的易用性更好,在安全传输中得到了广泛应用.但SSL VPN技术也会导致防火墙等安全设施只能检测到SSL加密流量,而无法对其中的恶意流量进行有效识别.加密流量识别技术能够对基于SSL VPN的流量进行精确分析,为管理网络资源、审计网络内容、网络入侵检测等方面[3]提供了技术支撑.因此,如何实现对SSL VPN加密流量进行高准确率和高效率识别的研究对保证网络信息安全、维护网络正常稳定和可靠运行具有重要的实际意义.

1 相关工作

对于非加密流量的识别有传统的基于网络端口号[4]和基于数据包有效载荷[5]的方法,但随着加密技术的广泛应用,这些方法对加密流量的特征难以进行有效的识别,逐渐失效.对加密流量识别的本质是根据不同协议或不同主机产生的流量中特征的不同部分来进行有效区分.目前国内外研究的加密流量识别技术主要分为基于机器学习的识别方法和基于图的识别方法.

1.1 基于机器学习的识别方法

近年来,机器学习技术对分类问题取得了较好的成果,而流量识别问题本质上就是分类问题.文献[6]介绍了应用于网络加密流量分类的大多数机器学习方法,如逻辑回归(logistic regression, LR)、支持向量机(support vector machine, SVM)、随机森林(random forests, RF)等;文献[7]使用机器学习技术,结合指纹特征、行为分析、威胁情报等多维信息,实现了对SSL加密流量的异常检测和威胁识别.但这些方法的主要缺点是依赖于从网络流量中提取的统计特征或时间序列特征,其性能在很大程度上依赖于专家设计的特征工程,极大地限制了它们的通用性.

而基于深度学习的方法[8],如卷积神经网络(convolutional neural networks, CNN)[9]、循环神经网络(recurrent neural network, RNN)等,将经过预处理的网络流量输入到深度学习模型中,可以通过训练自动选择更本质、更有效的特征.2015年,文献[10]首先将深度学习技术用于网络流量分类,将多层感知器(multilayer perceptron, MLP)模型应用于对网络流量分类.

基于深度学习的方法虽然可以从输入的原始数据中自动学习高层特征,克服了传统机器学习的特征设计难题,却受限于固有的神经网络架构,只能输入固定形状的数据.

1.2 基于图的识别方法

由于网络流量数据本质上是非欧几里得距离空间的,具有丰富的时间关系,研究人员提出了使用基于图的方法对网络流量进行识别.文献[11]将预先推导出的协议主机行为以图的形式存储,并使用图匹配实现协议识别,该方法的准确率超过95%;文献[12]提出了将网络通信场景建模为散度图TDG(traffic dispersion graph),把通信主机作为节点,主机之间的通信作为边,不同协议TDG节点的分布、连通子图具有明显区别,可以据此推断出网络流的协议信息;文献[13]提出了一种新型去中心化应用程序指纹识别方法,该方法提出了一种名为流量交互图的图结构,保留了丰富的原始流特征,并用多层感知器MLP进行向量表示,最后进行分类识别研究.

近年来,图神经网络(graph neural networks, GNN)已成为深度学习领域的研究热点,研究人员开始将图神经网络应用到加密流量分类领域.Sun等人[14]提出了将流量跟踪图和GCN模型训练中的统计特征相结合的方法,可以在低标签的情况下实现一定的性能提升,但其准确性仍较低;Mo等人[15]提出了一种使用图卷积神经网络的加密流量分类方法,该方法通过CNN捕获流量级别特征,并通过异构图卷积神经网络(graph convolution neural networks, GCN)捕获网络范围内的行为,但该方法会损失部分流级特征.

本文在现有研究基础上提出一种基于图神经网络的加密流量识别方法.该方法首先使用了基于图的加密流量表示方法,通过将网络流量会话交互的一系列数据包转换为信息丰富的流量图结构的形式,即将加密流量分类问题转换为图分类问题;然后将构建完成的流量图数据输入到使用基于自注意力机制的图池化方法构建图分类模型中,该模型能够从输入流量图中自动提取特征,并通过将它们映射到嵌入空间中的不同表示区分不同的图结构;最后对SSL VPN通道下的不同协议流量进行有效的识别.

本文提出的方法的优点在于使用流量图保留了加密协议交互过程中数据包的长度、方向、排序等信息,同时考虑了加密网络流量的协议特征和拓扑结构,无需手动选择特征,且不依赖于数据包有效载荷的内容.实验结果表明,本文方法对SSL VPN流量的精确识别具有良好的效果.

2 技术基础

本文方法主要基于加密协议交互过程和自注意力池化机制的图神经网络,下面就SSL加密协议相关概念和基本知识进行介绍.

2.1 SSL协议

SSL协议,即安全套接字协议,是建立在传输层与应用层之间的加密协议,在应用层协议进行通信之前需要对加密算法和密钥进行协商,在此之后所传输的数据都会被加密[16].SSL协议解决了信息明文传输带来的窃听、篡改和冒充等风险,从而保证了通信的安全.SSL协议主要分为2层:上层由握手协议、更改密文协议和警报协议组成;底层为记录协议[17].

SSL加密协议交互过程大体可分为2个阶段:在传输应用数据之前,首先使用握手协议对加密算法和密钥进行协商,建立安全连接;在握手协议完成后,记录协议负责使用对称加密算法加密应用数据,通信双方开始加密数据的传输[18].如图1所示,SSL加密协议的主要通信流程如下:

图1 SSL加密协议的主要通信流程

1) 客户端发送Client Hello.

客户端先向服务器发出加密通信的请求,消息中包含客户端支持的协议版本、生成的随机数、支持的加密算法和压缩算法.

2) 服务器发送Server Hello.

服务器收到客户端请求后,向客户端发出回应,消息中包含服务器确认使用的加密算法.

3) 服务器发送Server Certificate,Server Key Exchange,Server Hello Done.

Server Certificate消息包含服务器证书信息;Server Key Exchange消息包含服务器生成的随机数和数字签名等信息;Server Hello Done消息表明服务器握手消息发送完成.

4) 客户端发送Client Key Exchange,Change Cipher Spec,Finished.

客户端收到服务器回应后,首先进行服务器证书验证,如果证书没有问题,客户端会从证书中取出服务器的公钥,并向服务器发送一个用服务器公钥加密的随机数消息Client Key Exchange、编码改变通知消息Change Cipher Spec和客户端握手结束通知消息Finished.

5) 服务器发送Change Cipher Spec,Finished.

服务器收到客户端的加密随机数后,计算出会话密钥,然后向客户端发送编码改变通知消息Change Cipher Spec和服务器握手结束通知消息Finished.至此,整个握手阶段全部结束.接下来,客户端和服务器进入加密通信.

通过将加密流量转换为图结构的方式,可以将协议的交互过程具体地表示出来.为了更好地理解图结构的表示能力,本文将SSL加密协议握手阶段可视化为典型的交互子图,具体如图2所示.该图的结构可以清楚地表示出SSL加密协议握手阶段的交互过程.

图2 SSL加密协议典型交互图

由于SSL VPN加密是对应用层数据进行加密,不同应用在流统计特征上表现出的差异较大,因此可以根据相关的流统计特征,来对加密流量的类型进行有效区分.在实验中,选择表1中提到的双向流统计特征来表示应用会话交互过程.特征可以分为5种类型,包括数据包、数据包长度、数据包的方向、数据包的之间的突发、数据包序列.本文采用的方法按照上述特征集将每条SSL VPN应用流量转换为流量交互图,并使用图神经网络进行图分类,实现SSL VPN应用流量的精确识别.

表1 统计特征

2.2 图神经网络

图神经网络是一种基于图数据结构的深度学习方法,将图结构和节点信息作为模型的输入,可以对结构不规则的非欧几里得空间图数据进行有效的学习.图数据结构常被用来表示物体与物体之间的关系.图数据中同时包含属性信息和结构信息.属性信息描述了图中对象的固有属性;结构信息描述了对象之间的关联性质,能够有效地刻画图数据中的节点.现实生活中的许多系统都可以用图来描述,如社交网络、化学分子、人物关系、交通路线等.相较于简单的文本和图像,非结构化数据具有任意大小、拓扑结构复杂等特点,无法使用传统的神经网络结构如CNN,RNN进行处理,因此研究人员提出使用图神经网络来学习建模图数据.

图学习任务通常有3种:节点分类、边预测和图分类,本文主要关注图分类问题.图分类需要关注图数据的全局信息,包括图的拓扑信息和各个节点的属性信息.给定多张图及每张图对应的标签,图分类任务可以通过学习得到一个由图到相应标签的分类模型,使用该模型可以预测整个图的类标签.

图分类模型[19]一般通过图卷积根据图节点和结构特征映射后的节点表示,并利用图池化操作学习聚合图的全局信息,将图的规模缩小.重复多次这个步骤,得到一个图表示向量,从而对该向量进行分类操作.图池化操作分为全局池化和层次池化.全局池化是对节点表示进行一次池化得到整个图的表示.层次池化可以对节点进行筛选,保留有用的节点,将图的规模缩小,最终能得到整个图的表示.

3 基于自注意力机制的图神经网络分类模型

本节主要介绍基于图神经网络加密流量按协议分类的方法.方法的流程图主要由2个部分组成:流量图构建和分类模型构建.

3.1 流量图构建

在网络流量分类领域中,流的定义是指具有相同五元组(源/目的IP地址、源/目的端口和协议)的数据包序列,而会话则是由双向流组成.由于数据集中数据包序列通常由多个会话组成,首先需要将整个数据包序列划分为单独的会话.一个由n个数据包组成的会话P通常可以用一个数据包序列表示,即表示为P=(p1,p2,…,pn),其中有符号整数pi表示该会话的第i个数据包,负数表示客户端到服务器的上行包,正数表示服务器到客户端的下行包.如图3所示的是一个服务器和客户端会话的交互过程,会话中的每个数据包都有长度和方向.图3中的灰色和白色块分别代表加密协议中的握手阶段和加密传输阶段.则该会话可以表示为P=(-57,-81,73,69,-65,-80,-97,68,85,-59,97,105,-70,88).然而,数据包序列忽略了交互过程中的突发等信息,对客户端和服务器之间交互的表示能力较为有限.

受文献[13]的启发,本文选择使用信息丰富的图结构数据,即流量交互图来表示网络流量.首先给出流量交互图的定义:流量交互图由G表示,G=(V,E),其中,V是顶点的集合,E是边的集合.具体流量交互图构建过程如下:首先,将加密流量的数据包长度序列作为输入,开始构造顶点集V,每个顶点v∈V代表每个会话中的1个数据包,顶点值的大小代表数据包的长度,顶点的符号值代表数据包的方向;确定顶点后还要添加边,将这些顶点连接起来构造边集E,每个e∈E分为突发内边和突发间边.突发内边是顺序连接每个突发中连续顶点的边,突发间边是连接2个连续突发的开始或结束顶点的边,一个会话通常包含多个突发,突发定义为沿同一方向传输的一系列连续数据包,如图3所示,橙色和蓝色箭头代表会话中的不同突发;最后,得到的G=(V,E)就是所需的流量交互图,经过构建每个会话都可以转换为1张流量交互图.图4所示为与图3中的会话相对应的流量交互图.

图3 数据包交互过程

图4 流量交互图

流量交互图具有强大的信息表示能力,可以从数据包的方向、长度、突发和排序这4个方面提取会话的特征.这4个方面对流量分类都很有价值,数据包的方向可以反映服务器和客户端的交互,长度信息是加密流量分类的关键特征,不同协议的突发信息可能会有很大的差异,而数据包的排序信息可以表示加密协议会话从握手到加密数据传输的数据包顺序,分类器可以根据它们进行判别.流量交互图构建完成后,将加密流量分类问题转换为了图分类问题.

3.2 分类模型构建

经过流量交互图的构建后获得了加密流量的图结构数据,即将加密流量的分类问题变成图分类问题.图神经网络可以自动从流量交互图中提取特征并有效地区分这些图,因此成为最适合这个问题的解决方案.本文构建了基于图神经网络的加密流量分类模型.下面将详细介绍本文图分类模型的设计细节.

3.2.1 概述

首先,收集不同类型的加密流量,并将数据包序列解析为会话;然后,将所有的加密流量转换为对应的流量交互图;最后,将流量交互图输入到图神经网络中对分类器进行训练.使用基于自注意力机制的图池化来构建分类器,该模型不需要人工选择和微调特征,可以有效地区分不同的图结构.在测试阶段,使用训练好的分类器对训练集中的流量交互图进行分类.

3.2.2 图分类模型

给定1组图{G1,G2,…,GN}∈G,及其对应的标签{y1,y2,…,yN}⊆Y,图神经网络的目的是是学习1个可以预测每个流量图标签的表示向量hG,即y=g(hG).

基于自注意力池化机制的加密流量分类模型通过图卷积从图中自适应地学习到节点的重要性,为每个节点赋予1个重要性分数,然后使用基于自注意力机制的图池化方法构建图分类模型.

该模型是端到端的,结合图卷积层、图池化层和读出层来实现.图卷积层负责学习节点的重要度分数;图池化层则负责下采样,对节点进行筛选,保留有用的节点;读出层用于聚合节点信息以生成图级表示;全连接层用于分类决策.分类模型使用交叉熵函数作为损失函数,损失函数L定量地衡量预测标签和实际标签之间的差异,图神经网络在训练中逐渐减低损失函数L的值.

1) 图卷积.

图卷积操作主要是通过对图进行特征变换和特征提取,得到图上的节点表示,图卷积公式为

(1)

2) 图池化.

基于自注意力的池化机制是一个不断丢弃节点的过程.具体来说,首先利用图卷积网络学习出表示节点在图中重要度的注意力分数值Z.

(2)

得到重要性分数后,设置1个超参数k表示要保留的节点比例,k∈(0,1),按照重要度分数Z对节点进行降序排序,对邻接矩阵和节点特征进行更新,留下最重要的kN个节点以及与其相连的边:

i=top_rank(Z,kN).

(3)

函数top_rank返回值i是保留的kN个节点的索引.

Zmask=Zi,X′=Xi,:,

(4)

Xout=X′⊙Zmask,Aout=Ai,i,

(5)

Xi,:表示按照向量i的值对特征矩阵进行行切片,Ai,i表示按照向量i的值对邻接矩阵同时进行行切片和列切片;Xout是池化后图中节点的特征矩阵,Aout是池化后的邻接矩阵.如图5所示:

图5 自注意力池化示意图

3) 读出层.

要进行图分类还需要进行全局的聚合操作,将节点数不同的图降维到统一维度.读出机制是对所有节点进行一次性聚合操作,从而输出图的全局表示,其公式为

(6)

其中R可以是max,mean,sum等类型的函数,也就是说读出层可以对图运用最大池化、均值池化和加和池化等操作,将得到的值作为整张图的表示.

4) 全连接层.

(7)

5) 损失函数.

分类模型利用交叉熵函数作为损失函数,在多分类问题中常用交叉熵函数来计算预测标签与真实标签之间的损失,定义为

(8)

其中|X|为训练的流量图数量,yic为真实的标签值.

6) 优化器.

在分类模型中采用Adam优化器.Adam是一种基于自适应低阶矩估计的随机目标函数逐步优化算法,是一种只需要一阶梯度和小内存的有效随机优化方法.

至此,可以定义图分类模型.该模型具体如图6所示,由3个模块组成,每个模块由一个图卷积层和一个图池化层组成,节点在每一层池化之后的读出层中聚合,并在最后一层作求和,这样有助于所有节点的信息融合.然后将每个读出层的输出总和传递到全连接层进行分类.

图6 基于自注意力机制的图神经网络分类模型

使用基于自注意力机制的图池化方法构建图神经网络分类模型,通过图分类模型输出加密流量分类结果,该方法充分考虑了节点的特征和图的拓扑结构.该模型用来学习每个流量图的表示向量,能够将不同的图映射到嵌入空间中的不同表示,可以区分不同的图结构.通过以上所有的设计,模型通过训练来获取图节点和结构的相似性,具体将在第4节的实验结果中展示.

4 实验分析

本节将介绍用于评估模型的实验数据集,评估提出模型有效性的评价指标以及证明模型效果的实验结果.

4.1 数据集

为了验证本文提出的方法,使用了加拿大网络安全研究所提供的ISCX VPN-nonVPN流量数据集(ISCX-VPN).该数据集由账户Alice和账户Bob通过Skype,Facebook等服务产生了28 GB数据,有6个类别,每个类别又包含常规会话和VPN会话.其中的VPN流量是使用OpenVPN进行SSL VPN连接产生的,通过Wireshark和Tcpdump进行捕获.不同类别的流量生成方式如表2所示.

4.2 评价指标

本文使用准确率、精确率、召回率、F1值为指标来评估分类器的性能.TP(true positive)表示被分类正确预测出的目标流量数量,FP(false positive)表示被分类错误预测的目标流量数目,FN(false negative)表示被错误分类为其他类别的流量样本数量,TN(true negative)是正确归类为非目标类别的流量样本数量.

表2 数据集类别

1) 准确率(accuracy).

准确率是指分类正确的样本占总样本数的比例,定义为

(9)

2) 精确率(precision).

精确率是指在分类正确的正样本个数占分类器判定为正样本的样本数的比例,定义为

(10)

3) 召回率(recall).

召回率是指分类正确的正样本个数占真正的正样本个数的比例,定义为

(11)

4)F1值(F1score).

F1是精准率和召回率的调和平均值,同时兼顾了分类模型的准确率和召回率,用来衡量样本类别不均衡时的模型性能,定义为

(12)

4.3 实验结果

本文提出的方法对SSL VPN流量分类的准确率达到97.5%.各个类别具体的精确率、召回率和F1值如表3所示.根据实验结果,综合4项评价指标可以看出本文的方法对加密流量具有良好的识别效果,在各项指标上都取得了较好的结果.

表3 不同加密流量分类的实验结果比较

为了证明本文提出的图神经网络分类模型的有效性和优越性,选择了K近邻(KNN)、逻辑回归(LR)、随机森林(RF)、卷积神经网络(CNN)4种算法和本文提出的方法进行比较,分别对比了准确率、精确率、召回率和F1值4个指标,结果如表4所示:

表4 SSL VPN流量识别结果对比

从实验结果可以看出,基于LR的方法准确率较低,只有68.6%,基于KNN和RF的方法准确率分别达到83.5%和90.3%,基于CNN的方法准确率达到94.7%,取得了较好的结果.而本文提出的基于图神经网络分类的模型准确率达到了97.6%,明显优于其他算法,可见应用流量交互图和图神经网络分类模型对加密流量识别效果有显著提升.

5 总 结

本文提出了基于图神经网络的加密流量分类模型,该模型可以使用GNN识别网络加密流量的类别.基于数据包长度和数据包方向构造了加密会话的流量交互图,将加密协议识别问题转化为一个图分类问题.然后,利用图卷积层、图池化层和读出层来构建一个基于GNN的分类器.并在公开数据集上进行了实验,以评估本文方法.实验结果表明,该方法对SSL VPN流量分类的准确率可以达到97.6%.在未来的工作中,计划使该模型更能适应流量变化,进一步提高其适用范围.

猜你喜欢

数据包客户端加密
二维隐蔽时间信道构建的研究*
一种新型离散忆阻混沌系统及其图像加密应用
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
如何看待传统媒体新闻客户端的“断舍离”?
一种基于熵的混沌加密小波变换水印算法
C#串口高效可靠的接收方案设计
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
大枢纽 云平台 客户端——中央人民广播电台的探索之路
加密与解密