基于图卷积神经网络的加密流量分类方法及装置转让专利

申请号 : CN202011257060.3

文献号 : CN112468324B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘超郝燕如肖丁石川莫爽彭柏王艺霏来骥李信张玙璠马铭君吴文睿马跃张少军王东升娄竞于然金燊许大卫万莹聂正璞李坚李贤孟德常海娇陈重韬寇晓溪尚芳剑纪雨彤赵阳辛霆麟李硕张实君王海峰

申请人 : 国网冀北电力有限公司信息通信分公司北京邮电大学国家电网有限公司

摘要 :

本发明实施例提供了一种基于图卷积神经网络的加密流量分类方法及装置,将待分类应用的加密流量数据拆分为多个流,并获取每个流的统计信息;其中,所述统计信息用于表明所述流的传输情况;将所获取的统计信息转换为图嵌入,作为流的嵌入;利用异质图卷积神经网络,获取所述待分类应用对应的通信图的嵌入;利用同质图卷积神经网络,获取所述待分类应用对应的流图的嵌入;基于所述流的嵌入,所述通信图的嵌入以及所述流图的嵌入,利用分类模型,获得所述待分类应用的分类结果。本方案可以实现对加密流量的分类。

权利要求 :

1.一种基于图卷积神经网络的加密流量分类方法,其特征在于,所述方法包括:将待分类应用的加密流量数据拆分为多个流,并获取每个流的统计信息;其中,所述统计信息用于表明所述流的传输情况;

将所获取的统计信息转换为图嵌入,作为流的嵌入;

利用异质图卷积神经网络,获取所述待分类应用对应的通信图的嵌入;其中,所述待分类应用对应的通信图为所述待分类应用产生加密流量数据所进行的通信中,发起通信的源端点集合,接受通信的目标端点集合,以及一组源端点和目标端点之间的网络流构成的图像;

利用同质图卷积神经网络,获取所述待分类应用对应的流图的嵌入;其中,所述待分类应用对应的流图为将所述通信图中的所述网络流作为顶点,将相似度大于相似阈值的两个所述顶点进行连接,得到的图像;

基于所述流的嵌入,所述通信图的嵌入以及所述流图的嵌入,利用分类模型,获得所述待分类应用的分类结果。

2.根据权利要求1所述的方法,其特征在于,所述将待分类应用的加密流量数据拆分为多个流,并获取每个流的统计信息,包括:按照具有相同五元组的数据包序列为一个流,将所述待分类应用的加密流量数据拆分为多个流;其中,所述五元组包括:加密流量数据的源IP地址、源端点标识、目标IP地址、目的地IP地址以及通信协议;

统计每个流的如下信息中的至少一个,得到该流的统计信息:持续时间,前向间隔到达时间,反向间隔到达时间,流间到达时间,流在空闲之前处于活动状态的时间,流在激活之前处于空闲状态的时间,每秒的流字节数以及每秒的流数据包数。

3.根据权利要求1所述的方法,其特征在于,所述待分类应用对应的通信图,采用如下步骤构建:获取所述待分类应用产生加密流量数据所进行的通信中,发起通信的源端点的源IP地址以及源端点标识的集合,得到所述源端点集合;

获取所述通信中,接受通信的目标端点的目标IP地址和目标端点标识的集合,得到所述目标端点集合;

获取从每个源端点传输到该源端点对应的目标端点的一组网络流的集合,得到边集合;

将所述边集合,所述源端点集合以及所述目标端点集合,作为所述通信图。

4.根据权利要求3所述的方法,其特征在于,所述利用异质图卷积神经网络,获取所述待分类应用对应的通信图的嵌入,包括:将所述待分类应用对应的通信图中的所述边集合,所述源端点集合以及所述目标端点集合,以及预设的隐藏层个数,输入所述异质图卷积神经网络,以使所述异质图卷积神经网络对每个边、每个源端点以及每个目标端点执行如下操作:利用当前隐藏层中的聚合子层对上一个隐藏层中边本身的隐藏特征,及该边连接的源端点的隐藏特征和目标端点的隐藏特征的串联结果,获取在当前隐藏层该边的隐藏特征;

利用当前隐藏层拼接源端点自身特征与相应边的隐藏特征,得到源端点的共同隐藏特征,并利用所述源端点的共同隐藏特征和所述源端点在上一个隐藏层的隐藏特征,获取在当前隐藏层该源端点的隐藏特征;

利用当前隐藏层拼接目标端点自身特征与相应边的隐藏特征,得到目标端点的共同隐藏特征,并利用所述目标端点的共同隐藏特征和所述目标端点在上一个隐藏层的隐藏特征,获取在当前隐藏层该目标端点的隐藏特征;

输出最后一个隐藏层源端点的隐藏特征,相应的目标端点的隐藏特征以及相应的边的隐藏特征,得到所述待分类应用对应的通信图的嵌入。

5.根据权利要求1所述的方法,其特征在于,所述基于所述流的嵌入,所述通信图的嵌入以及所述流图的嵌入,利用分类模型,获得所述待分类应用的分类结果,包括:对流的嵌入,所述通信图的嵌入以及所述流图的嵌入进行拼接;

将拼接结果输入分类模型,获得所述待分类应用的分类结果。

6.一种基于图卷积神经网络的加密流量分类装置,其特征在于,所述装置包括:数据预处理模块,用于将待分类应用的加密流量数据拆分为多个流,并获取每个流的统计信息;其中,所述统计信息用于表明所述流的传输情况;

嵌入获取模块,用于将所获取的统计信息转换为图嵌入,作为流的嵌入;利用异质图卷积神经网络,获取所述待分类应用对应的通信图的嵌入;其中,所述待分类应用对应的通信图为所述待分类应用产生加密流量数据所进行的通信中,发起通信的源端点集合,接受通信的目标端点集合,以及一组源端点和目标端点之间的网络流构成的图像;利用同质图卷积神经网络,获取所述待分类应用对应的流图的嵌入;其中,所述待分类应用对应的流图为将所述通信图中的所述网络流作为顶点,将相似度大于相似阈值的两个所述顶点进行连接,得到的图像;

分类模块,用于基于所述流的嵌入,所述通信图的嵌入以及所述流图的嵌入,利用分类模型,获得所述待分类应用的分类结果。

7.根据权利要求6所述的装置,其特征在于,所述数据预处理模块,具体用于:按照具有相同五元组的数据包序列为一个流,将所述待分类应用的加密流量数据拆分为多个流;其中,所述五元组包括:加密流量数据的源IP地址、源端点标识、目标IP地址、目的地IP地址以及通信协议;

统计每个流的如下信息中的至少一个,得到该流的统计信息:持续时间,前向间隔到达时间,反向间隔到达时间,流间到达时间,流在空闲之前处于活动状态的时间,流在激活之前处于空闲状态的时间,每秒的流字节数以及每秒的流数据包数。

8.根据权利要求6所述的装置,其特征在于,所述待分类应用对应的通信图的构建,包括:获取所述待分类应用产生加密流量数据所进行的通信中,发起通信的源端点的源IP地址以及源端点标识的集合,得到所述源端点集合;

获取所述通信中,接受通信的目标端点的目标IP地址和目标端点标识的集合,得到所述目标端点集合;

获取从每个源端点传输到该源端点对应的目标端点的一组网络流的集合,得到边集合;

将所述边集合,所述源端点集合以及所述目标端点集合,作为所述通信图。

9.根据权利要求8所述的装置,其特征在于,所述嵌入获取模块,具体用于:将所述待分类应用对应的通信图中的所述边集合,所述源端点集合以及所述目标端点集合,以及预设的隐藏层个数,输入所述异质图卷积神经网络,以使所述异质图卷积神经网络对每个边、每个源端点以及每个目标端点执行如下操作:利用当前隐藏层中的聚合子层对上一个隐藏层中边本身的隐藏特征,及该边连接的源端点的隐藏特征和目标端点的隐藏特征的串联结果,获取在当前隐藏层该边的隐藏特征;

利用当前隐藏层拼接源端点自身特征与相应边的隐藏特征,得到源端点的共同隐藏特征,并利用所述源端点的共同隐藏特征和所述源端点在上一个隐藏层的隐藏特征,获取在当前隐藏层该源端点的隐藏特征;

利用当前隐藏层拼接目标端点自身特征与相应边的隐藏特征,得到目标端点的共同隐藏特征,并利用所述目标端点的共同隐藏特征和所述目标端点在上一个隐藏层的隐藏特征,获取在当前隐藏层该目标端点的隐藏特征;

输出最后一个隐藏层源端点的隐藏特征,相应的目标端点的隐藏特征以及相应的边的隐藏特征,得到所述待分类应用对应的通信图的嵌入。

10.根据权利要求6所述的装置,其特征在于,所述分类模块,具体用于:对流的嵌入,所述通信图的嵌入以及所述流图的嵌入进行拼接;

将拼接结果输入分类模型,获得所述待分类应用的分类结果。

说明书 :

基于图卷积神经网络的加密流量分类方法及装置

技术领域

[0001] 本发明涉及流量分类技术领域,特别是涉及一种基于图卷积神经网络的加密流量分类方法及装置。

背景技术

[0002] 随着网络服务质量的提升和网络安全性原则的实施,流量分类:利用应用程序产生的信息流实现应用程序的分类,被广泛使用。例如,应用程序类型识别,应用程序安全类别标记等等。具体的,可以基于有效负载的方法进行流量分类:利用深度报文检测(Deep Packet  Inspection,DPI)从开放式通信系统互联参考模型(Open  System Interconnection Reference Model,OSI)的应用程序层中提取有效负载数据,对提取的有效负载数据进行检查以实现流量分类。
[0003] 为了保证网络安全性,加密在网络中已变得无处不在,并成为安全通信的基础,使得流量往往为加密流量。但是,上述基于有效负载的方法中对有效负载数据的检查必须对流量进行分析才能实现,而加密流量因加密的特点无法被分析。因此,如何对加密流量进行分类成为亟待解决的问题。

发明内容

[0004] 本发明实施例的目的在于提供一种基于图卷积神经网络的加密流量分类方法及装置,以实现对加密流量分类的效果。具体技术方案如下:
[0005] 第一方面,本发明实施例提供一种基于图卷积神经网络的加密流量分类方法,该方法包括:
[0006] 将待分类应用的加密流量数据拆分为多个流,并获取每个流的统计信息;其中,所述统计信息用于表明所述流的传输情况;
[0007] 将所获取的统计信息转换为图嵌入,作为流的嵌入;
[0008] 利用异质图卷积神经网络,获取所述待分类应用对应的通信图的嵌入;其中,所述待分类应用对应的通信图为所述待分类应用产生加密流量数据所进行的通信中,发起通信的源端点集合,接受通信的目标端点集合,以及一组源端点和目标端点之间的网络流构成的图像;
[0009] 利用同质图卷积神经网络,获取所述待分类应用对应的流图的嵌入;其中,所述待分类应用对应的流图为将所述通信图中的所述网络流作为顶点,将相似度大于相似阈值的两个所述顶点进行连接,得到的图像;
[0010] 基于所述流的嵌入,所述通信图的嵌入以及所述流图的嵌入,利用分类模型,获得所述待分类应用的分类结果。
[0011] 第二方面,本发明实施例提供一种基于图卷积神经网络的加密流量分类装置,所述装置包括:
[0012] 数据预处理模块,用于将待分类应用的加密流量数据拆分为多个流,并获取每个流的统计信息;其中,所述统计信息用于表明所述流的传输情况;
[0013] 嵌入获取模块,用于将所获取的统计信息转换为图嵌入,作为流的嵌入;利用异质图卷积神经网络,获取所述待分类应用对应的通信图的嵌入;其中,所述待分类应用对应的通信图为所述待分类应用产生加密流量数据所进行的通信中,发起通信的源端点集合,接受通信的目标端点集合,以及一组源端点和目标端点之间的网络流构成的图像;利用同质图卷积神经网络,获取所述待分类应用对应的流图的嵌入;其中,所述待分类应用对应的流图为将所述通信图中的所述网络流作为顶点,将相似度大于相似阈值的两个所述顶点进行连接,得到的图像;
[0014] 分类模块,用于基于所述流的嵌入,所述通信图的嵌入以及所述流图的嵌入,利用分类模型,获得所述待分类应用的分类结果。
[0015] 本发明实施例有益效果:
[0016] 本发明实施例提供的方案中,对于待分类应用的加密流量数据,流的嵌入是用于表明流的传输情况的统计信息转换得到的,因此,获取流的嵌入可以捕获待分类应用的流量级别的特征。并且,获取待分类应用对应的通信图的嵌入可以捕获待分类应用产生加密流量数据所进行的通信形成的整个通信网络的特征,获取待分类应用对应的流图的嵌入可以获取加密流量数据的全局特征。因此,基于流的嵌入,通信图的嵌入以及流图的嵌入,利用分类模型,可以获得待分类应用的分类结果,从而实现对加密流量分类。并且,本方案进行的分类,不仅基于待分类应用的流量级别的特征,还基于待分类应用的网络端的特征:通信图的嵌入以及流图的嵌入,因此,可以提高分类所依据特征的丰富程度,提高分类的准确度。
[0017] 当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。

附图说明

[0018] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
[0019] 图1为本发明一实施例提供的一种基于图卷积神经网络的加密流量分类方法的流程示意图;
[0020] 图2为本发明一实施例提供的一种基于图卷积神经网络的加密流量分类方法中,通信图的示例图;
[0021] 图3为本发明一实施例提供的一种基于图卷积神经网络的加密流量分类方法中,流图的示例图;
[0022] 图4(a)为本发明一实施例提供的一种基于图卷积神经网络的加密流量分类方法的应用效果的一种示例图;
[0023] 图4(b)为本发明一实施例提供的一种基于图卷积神经网络的加密流量分类方法的应用效果的一种示例图;
[0024] 图4(c)为本发明一实施例提供的一种基于图卷积神经网络的加密流量分类方法的应用效果的一种示例图;
[0025] 图5为本发明一实施例提供的一种基于图卷积神经网络的加密流量分类装置的结构示意图;
[0026] 图6为本发明一实施例提供的电子设备的结构示意图。

具体实施方式

[0027] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0028] 本发明实施例提供的一种基于图卷积神经网络的加密流量分类方法,可以应用于进行加密流量流量分类的电子设备。示例性的,该电子设备可以包括:计算机,移动终端,服务器,可穿戴设备以及网络电视等等。
[0029] 如图1所示,本发明实施例提供的一种基于图卷积神经网络的加密流量分类方法,该方法可以包括如下步骤:
[0030] S101,将待分类应用的加密流量数据拆分为多个流,并获取每个流的统计信息。
[0031] 其中,统计信息用于表明流的传输情况。
[0032] 在一种可选的实施方式中,上述将待分类应用的加密流量数据拆分为多个流,并获取每个流的统计信息,具体可以包括如下步骤:
[0033] 按照具有相同五元组的数据包序列为一个流,将待分类应用的加密流量数据拆分为多个流;其中,五元组包括:加密流量数据的源IP地址、源端点标识、目标IP地址、目的地IP地址以及通信协议;
[0034] 统计每个流的如下信息中的至少一个,得到该流的统计信息:持续时间,前向间隔到达时间,反向间隔到达时间,流间到达时间,流在空闲之前处于活动状态的时间,流在激活之前处于空闲状态的时间,每秒的流字节数以及每秒的流数据包数。
[0035] 在具体应用中,待分类应用产生加密流量数据所进行的通信中,可以包括发起通信的源端点,例如安装有待分类应用的电子设备,接受通信的目标端点,例如待分类应用对应的服务器,以及加密流量数据的目的端点,例如待分类应用为邮箱应用时,目的端点可以是收件邮箱应用所在电子设备。由此,源端点的IP地址为源IP地址,与源端点直接通信的端点为目标端点,目标端点的IP地址为目标IP地址,目的端点为加密流量数据的最终接收端,目的端点的IP地址为目的地IP地址。
[0036] 示例性的,流的统计信息可以包括如下表1中的至少一个:
[0037]
[0038] S102,将所获取的统计信息转换为图嵌入,作为流的嵌入。
[0039] 其中,图嵌入(Graph Embedding,也称Network Embedding)是一种将图数据:高维稠密的矩阵映射为低微稠密向量的过程,能够很好地解决图数据难以高效输入机器学习算法的问题。示例性的,梯度提升决策树XGboost模型(Gradient Boosting Decision Tree,GBDT)是可以平衡有效性和效率,因此,可以使用XGBoost将所获取的统计信息转换为图嵌入。具体的,可以将所获取的统计信息输入XGboost模型,并将XGBoost的输出作为流的嵌入:
[0040]
[0041] 其中,xi为流的第i个流统计信息, 是流的嵌入。
[0042] S103,利用异质图卷积神经网络,获取待分类应用对应的通信图的嵌入。
[0043] 其中,待分类应用对应的通信图为待分类应用产生加密流量数据所进行的通信中,发起通信的源端点集合,接受通信的目标端点集合,以及一组源端点和目标端点之间的网络流构成的图像。
[0044] 图卷积神经网络(Graph Neural Network,GNN)是一种直接作用于图结构上的神经网络。异质图卷积神经网络(Heterogeneous Graphs,HetG)包括多种类型的图结构,相应的同质图卷积神经网络中只有一种类型的节点和边。因此,通信图的嵌入可以利用异质图卷积神经网络获取,流图的嵌入可以利用同质图卷积神经网络获取。
[0045] 为了便于理解和合理布局,对于通信图的构建后续以可选实施例的形式进行具体说明。
[0046] S104,利用同质图卷积神经网络,获取待分类应用对应的流图的嵌入。
[0047] 其中,待分类应用对应的流图为将通信图中的网络流作为顶点,将相似度大于相似阈值的两个所述顶点进行连接,得到的图像。在具体应用中,本发明所利用的异质图卷积神经网络可以预先利用样本通信图和样本通信图的嵌入标签训练得到,同质图卷积神经网络可以预先利用样本流图和样本流图的嵌入标签训练得到。
[0048] 为了便于理解和合理布局,对于流图的构建后续以可选实施例的形式进行具体说明。
[0049] S105,基于流的嵌入,通信图的嵌入以及流图的嵌入,利用分类模型,获得待分类应用的分类结果。
[0050] 在一种可选的实施方式中,上述基于流的嵌入,通信图的嵌入以及流图的嵌入,利用分类模型,获得待分类应用的分类结果,具体可有包括如下步骤:
[0051] 对流的嵌入,通信图的嵌入以及流图的嵌入进行拼接;
[0052] 将拼接结果输入分类模型,获得待分类应用的分类结果。
[0053] 在具体应用中,可以使用具有softmax的密集层作为分类模型对流量嵌入进行分类。示例性的, 其中 代表流的嵌入,pe代表流图的嵌入,zs,zd,ze表示通信图的嵌入。
[0054] 本发明实施例提供的方案中,对于待分类应用的加密流量数据,流的嵌入是用于表明流的传输情况的统计信息转换得到的,因此,获取流的嵌入可以捕获待分类应用的流量级别的特征。并且,获取待分类应用对应的通信图的嵌入可以捕获待分类应用产生加密流量数据所进行的通信形成的整个通信网络的特征,获取待分类应用对应的流图的嵌入可以获取加密流量数据的全局特征。因此,基于流的嵌入,通信图的嵌入以及流图的嵌入,利用分类模型,可以获得待分类应用的分类结果,从而实现对加密流量分类。并且,本方案进行的分类,不仅基于待分类应用的流量级别的特征,还基于待分类应用的网络端的特征:通信图的嵌入以及流图的嵌入,因此,可以提高分类所依据特征的丰富程度,提高分类的准确度。
[0055] 在一种可选的实施方式中,上述待分类应用对应的通信图,采用如下步骤构建:
[0056] 获取待分类应用产生加密流量数据所进行的通信中,发起通信的源端点的源IP地址以及源端点标识的集合,得到源端点集合;
[0057] 获取通信中,接受通信的目标端点的目标IP地址和目标端点标识的集合,得到目标端点集合;
[0058] 获取从每个源端点传输到该源端点对应的目标端点的一组网络流的集合,得到边集合;
[0059] 将边集合,源端点集合以及目标端点集合,作为通信图。
[0060] 在具体应用中,网络中进行通信的端点的行为可以自然地表示为一个图表G(S,D,E),其中S是源端点的集合,由源IP地址和源端点标识组成。D是一组目标端点(顶点)的集合,由目标IP地址和目标端点标识组成。源端点和目标端点可以作为通信图中的顶点。E是从源端点传输到目标端点的一组网络流的集合,可以作为通信图中的边。如果源端点s将流e发送到目标端点d,则存在从源端点s∈S到目标端口d∈D的边e∈E。同样,在给定一个顶点v∈S∪D的情况下,令N(v)为一跳的一组顶点,即N(v)={v′∈S∪D|(v,v′)∈E},表示连接到v的边。S(e),D(e)表示边e的源端口节点和目标端点节点。
[0061] 示例性的,通信图的实例如图2所示。通信图中的流存在方向。因此,对于主机A、主机B,主机C,主机D以及主机E,存在:主机A向主机D发送网络流flow1和网络流flow2时,源IP地址为17500和138,目标IP地址为17500和138;源端点主机A向主机E发送网络流flow3和网络流flow4时,源IP地址为38561和43029,目标IP地址为53;主机E向主机B发送网络流flow5和网络流flow6时,源IP地址为53,目标IP地址为16939和17107;主机C向主机E发送网络流flow7和网络流flow8时,源IP地址为60679和34925,目标IP地址为53。
[0062] 并且,可以通信图中的网络流计算两两之间的相似度,例如,余弦相似度,将相似度大于一个相似阈值,例如0.8的两个网络流连接起来,得到流图。示例性的,本申请的流图可以如图3所示。网络流flow1,网络流flow2和网络流flow4的相似度大于0.8进行连接;网络流flow4和网络流flow5相似度大于0.8进行连接;网络流flow5和网络流flow3相似度大于0.8进行连接;网络流flow3和网络流flow6相似度大于0.8进行连接;网络流flow5分别与网络流flow7,以及网络流flow8相似度大于0.8进行连接。
[0063] 在一种可选的实施方式中,上述利用异质图卷积神经网络,获取待分类应用对应的通信图的嵌入,具体可以包括如下步骤:
[0064] 将待分类应用对应的通信图中的边集合,源端点集合以及目标端点集合,以及预设的隐藏层个数,输入异质图卷积神经网络,以使异质图卷积神经网络对每个边、每个源端点以及每个目标端点执行如下操作:
[0065] 利用当前隐藏层中的聚合子层对上一个隐藏层中边本身的隐藏特征,及该边连接的源端点的隐藏特征和目标端点的隐藏特征的串联结果,获取在当前隐藏层该边的隐藏特征;
[0066] 利用当前隐藏层拼接源端点自身特征与相应边的隐藏特征,得到源端点的共同隐藏特征,并利用所述源端点的共同隐藏特征和所述源端点在上一个隐藏层的隐藏特征,获取在当前隐藏层该源端点的隐藏特征;
[0067] 利用当前隐藏层拼接目标端点自身特征与相应边的隐藏特征,得到目标端点的共同隐藏特征,并利用所述目标端点的共同隐藏特征和所述目标端点在上一个隐藏层的隐藏特征,获取在当前隐藏层该目标端点的隐藏特征;
[0068] 输出最后一个隐藏层源端点的隐藏特征,相应的目标端点的隐藏特征以及相应的边的隐藏特征,得到所述待分类应用对应的通信图的嵌入。
[0069] 示例性的,用ze ,zs ,zd分别表示边,源端点和目标端点的嵌入,即[0070] GCN的聚合子层平等对待所有类型的节点,并忽略边的属性。因此,对于流,通过将上一个隐藏层的一条边本身及该边所连接的两个端点的隐藏特征串联起来,从而更新该边的隐藏特征。因此,聚合子层定义为:
[0071]
[0072] 其中,分别代表
第l‑1层的边的隐藏特征,该边连接的源端点的隐藏特征和该边连接的目标端点的隐藏特征。
[0073] 对于源端点s∈S和目标端点d∈D,除了来自相邻节点的信息外,还收集连接源端点和目标端点的边的属性。具体可以通过对聚合邻居嵌入 的计算收集:
[0074]
[0075] 其中,
[0076]
[0077] 分别代表第l‑1层的边连接的源端点的特征的拼接,边连接的目标端点的特征的拼接。 分别代表第l‑1层的边的隐藏特征,源端点的隐藏
特征和目标端点的隐藏特征。 和 分别代表第l层的源端点的隐藏特征和目标端点的隐藏特征。
[0078] 对于边、源端点和目标端点分别维护有不同的预设参数 以及不同的聚合函数 其中, 和 的具体形式,采用注意力机
制:
[0079]
[0080]
[0081] ATTN是一个函数f:hkey×Hval→hval,该函数可以将特征向量hkey和候选特征向量Hval的集合加权映射到Hval的总和。总和的权重,即注意力值,可以通过按比例缩放的点产生注意力计算得出。
[0082] 在汇总邻居信息后,按照组合策略对关于源端点和目标端点节点的数据进行操作,具体可以利用如下公式进行:
[0083] 和
[0084] 其中 和 表示源端点和目标端点的可训练权重矩阵, 和 分别为第l层的源端点自身的特征和目标端点自身的特征, 和 分别代表第l‑1层的源端点的隐藏特征和目标端点的隐藏特征。
[0085] 以上述处理过程为基础,异质图卷积神经网络对每个边、每个源端点以及每个目标端点执行的操作,即异质GCN在通信图上的正向传播过程,包括如下步骤:
[0086] 输入:边 隐藏层数量L,Eb分别连接通信图G(S,D,E)的源端点S(Eb)和目标端点D(Eb)。
[0087] 将原始的边特征、源端点特征和目的端点特征输入到异质GCN模型中作为初始嵌入,即初始化;
[0088] 对每一层隐藏层执行操作:将前一个隐藏层的源端点和目的端点的特征作为下一层的输入特征;
[0089] 对每条边执行操作:首先聚合边连接的源端点和目的端点的特征与自身特征拼接,然后与参数矩阵相乘并通过激活函数后作为该边的隐藏特征;
[0090] 对每个源端点执行操作:将目的端点所有邻居的特征与自身进行合并作为新的特征,具体的:拼接其自身特征与边的隐藏特征作为源端点和边的共同隐藏特征,将上述共同隐藏特征进行聚合,然后与参数矩阵相同并通过激活函数作为源端点邻居的隐藏特征,将源端点自身在上一个隐藏层得到的隐藏特征与参数矩阵相乘后,与源端点邻居的隐藏特征进行合并得到源端点的新隐藏特征;
[0091] 对每个目的端点执行操作:拼接目的端点自身特征与边隐藏特征作为目的端点和边的共同隐藏特征,将上述共同隐藏特征进行聚合,然后与参数矩阵相同并通过激活函数作为目的端点邻居的隐藏特征,将目的端点自身在上一个隐藏层得到的隐藏特征与参数矩阵相乘后,与目的端点邻居的隐藏特征进行合并得到目的端点的新隐藏特征;
[0092] 输出:第L层的隐藏特征包括:边 的隐藏特征、源端点的隐藏特征和目标端点的 隐藏特征。该输出可以作为通信图的嵌入。
[0093] 为了便于理解,下面对在公开的ISCX2016 VPN‑NonVPN加密流量数据集上进行本发明实施例提供的基于图卷积网络的加密流量的分类方法的评估情况,即ETC‑GCN模型的评估情况进行说明。与众多的基准模型相比,本发明实施例提供的基于图卷积网络的加密流量的分类方法具有出色的分类结果。具体情况如下:
[0094] ISCX2016 VPN‑NonVPN的真实加密数据集包含基于VPN的常规流量,其中包含12种流的类别:聊天,电子邮件,VPN聊天,VPN‑电子邮件等等。由于不同类别之间的不平衡问题,从每种流的类别中随机选择1000个流。下表2描述了ESCX2016数据集的预处理结果。总流量少于12,000的原因是某些类型的样本少于1000。并且边的数量少于流量,因为在固定的时间间隔内生成流量,但是流量持续时间不确定。由此,可以将长期流分成固定时间间隔的多个流。
[0095]
[0096] 给定预测及基本事实,而不是手动标记流量,利用如下公式计算度量指标:
[0097] 精度P:
[0098] 查全率R: 综合指数F1:
[0099] 其中,TP代表:预测为正向(P),实际上预测正确(T),即分类为正向的正确率。TN代表:预测为负向(N),实际上预测正确(T),即分类为负向的正确率。FP代表:预测为正向(P),实际上预测错误(F),误报率,即把负向分类成正向。FN代表:预测为负向(N),实际上预测错误(F),漏报率,即把正向分类成负向。
[0100] 在16核CPU*2,内存25G和NVIDIA 1080GPU的硬件以及Red Hat 4.8.5 OS,Tensor‑Flow 1.15.0的软件上实现了本发明提供的ETC‑GCN模型。示例性的,对于XGBoost模型,将Xgboost模型的最大深度设为5,estimators设为200,gamma设为0,subsample设为0.3,coal sample by the tree设为0.9,学习率设置为0.1。对于Logistic回归模型,将C设置为0.5,将惩罚设置为L2。在本发明提供的ETC‑GCN模型中,对于异质GCN,将隐藏层数量设置为64。对于同质GCN,将隐藏层个数设置为64。并且,将动量设置为0.5,将学习率设置为0.001,以优化模型参数。
[0101] 性能评估:使用以上设置以及ISCX2916数据集评估不同实验的实验结果,如实验1,实验2,实验3和实验4。实验1是VPN与加密流量之间的二进制分类。实验2是关于聊天、电子邮件、文件、p2p、流和VOIP流量的六种分类。实验4是关于VPN或具有特定类型(如聊天,VPN聊天等)的加密流量的另十二类分类。下表3中显示了不同方法对不同实验的加密流量分类的结果。可以看到,在大多数情况下,ETC‑GCN‑1和ETC‑GCN达到最佳效果。该结果表明,使用XGBoost的学习流统计功能可以通过图卷积神经网络捕获网络侧的行为。ETC‑GCN的优良性能表明,网络侧的行为已导入加密的流量分类中。同样,ETC‑GCN优于ETC‑GCN‑1证明,同质GCN获取流图的嵌入有助于加密流量分类效果的提升。
[0102]
[0103] 参数评估:探讨不同参数对分类效果的影响,包括不同的嵌入尺寸对异质GCN和同质GCN的影响。所有参数实验都是在带有ETC‑GCN‑1和ETC‑GCN的实验4上执行的。如图4(a)所示,对异质GCN而言,当嵌入尺寸为嵌入到异质GCN中的维数为64时,准确率和综合指数F1将获得最佳结果。如图4(b)所示,对同质GCN而言,当嵌入尺寸为嵌入到同质GCN的维数为64时,准确率和综合指数F1将获得最佳结果。如图4(c)所示,对于隐藏层数量,当隐藏层的数量为64时,准确率和综合指数F1将获得最佳结果。
[0104] 相应于上述方法实施例,本发明实施例还提供一种基于图卷积神经网络的加密流量分类装置。
[0105] 如图5所示,本发明实施例提供的一种基于图卷积神经网络的加密流量分类装置,所述装置包括:
[0106] 数据预处理模块501,用于将待分类应用的加密流量数据拆分为多个流,并获取每个流的统计信息;其中,所述统计信息用于表明所述流的传输情况;
[0107] 嵌入获取模块502,用于将所获取的统计信息转换为图嵌入,作为流的嵌入;利用异质图卷积神经网络,获取所述待分类应用对应的通信图的嵌入;其中,所述待分类应用对应的通信图为所述待分类应用产生加密流量数据所进行的通信中,发起通信的源端点集合,接受通信的目标端点集合,以及一组源端点和目标端点之间的网络流构成的图像;利用同质图卷积神经网络,获取所述待分类应用对应的流图的嵌入;其中,所述待分类应用对应的流图为将所述通信图中的所述网络流作为顶点,将相似度大于相似阈值的两个所述顶点进行连接,得到的图像;
[0108] 分类模块503,用于基于所述流的嵌入,所述通信图的嵌入以及所述流图的嵌入,利用分类模型,获得所述待分类应用的分类结果。
[0109] 本发明实施例提供的方案中,对于待分类应用的加密流量数据,流的嵌入是用于表明流的传输情况的统计信息转换得到的,因此,获取流的嵌入可以捕获待分类应用的流量级别的特征。并且,获取待分类应用对应的通信图的嵌入可以捕获待分类应用产生加密流量数据所进行的通信形成的整个通信网络的特征,获取待分类应用对应的流图的嵌入可以获取加密流量数据的全局特征。因此,基于流的嵌入,通信图的嵌入以及流图的嵌入,利用分类模型,可以获得待分类应用的分类结果,从而实现对加密流量分类。并且,本方案进行的分类,不仅基于待分类应用的流量级别的特征,还基于待分类应用的网络端的特征:通信图的嵌入以及流图的嵌入,因此,可以提高分类所依据特征的丰富程度,提高分类的准确度。
[0110] 可选的,所述数据预处理模块501,具体用于:
[0111] 按照具有相同五元组的数据包序列为一个流,将所述待分类应用的加密流量数据拆分为多个流;其中,所述五元组包括:加密流量数据的源IP地址、源端点标识、目标IP地址、目的地IP地址以及通信协议;
[0112] 统计每个流的如下信息中的至少一个,得到该流的统计信息:持续时间,前向间隔到达时间,反向间隔到达时间,流间到达时间,流在空闲之前处于活动状态的时间,流在激活之前处于空闲状态的时间,每秒的流字节数以及每秒的流数据包数。
[0113] 可选的,所述待分类应用对应的通信图的构建,包括:
[0114] 获取所述待分类应用产生加密流量数据所进行的通信中,发起通信的源端点的源IP地址以及源端点标识的集合,得到所述源端点集合;
[0115] 获取所述通信中,接受通信的目标端点的目标IP地址和目标端点标识的集合,得到所述目标端点集合;
[0116] 获取从每个源端点传输到该源端点对应的目标端点的一组网络流的集合,得到边集合;
[0117] 将所述边集合,所述源端点集合以及所述目标端点集合,作为所述通信图。
[0118] 可选的,所述嵌入获取模块502,具体用于:
[0119] 将所述待分类应用对应的通信图中的所述边集合,所述源端点集合以及所述目标端点集合,以及预设的隐藏层个数,输入所述异质图卷积神经网络,以使所述异质图卷积神经网络对每个边、每个源端点以及每个目标端点执行如下操作:
[0120] 利用当前隐藏层中的聚合子层对上一个隐藏层中边本身的隐藏特征,及该边连接的源端点的隐藏特征和目标端点的隐藏特征的串联结果,获取在当前隐藏层该边的隐藏特征;
[0121] 利用当前隐藏层拼接源端点自身特征与相应边的隐藏特征,得到源端点的共同隐藏特征,并利用所述源端点的共同隐藏特征和所述源端点在上一个隐藏层的隐藏特征,获取在当前隐藏层该源端点的隐藏特征;
[0122] 利用当前隐藏层拼接目标端点自身特征与相应边的隐藏特征,得到目标端点的共同隐藏特征,并利用所述目标端点的共同隐藏特征和所述目标端点在上一个隐藏层的隐藏特征,获取在当前隐藏层该目标端点的隐藏特征;
[0123] 输出最后一个隐藏层源端点的隐藏特征,相应的目标端点的隐藏特征以及相应的边的隐藏特征,得到所述待分类应用对应的通信图的嵌入。
[0124] 可选的,所述分类模块503,具体用于:
[0125] 对流的嵌入,所述通信图的嵌入以及所述流图的嵌入进行拼接;
[0126] 将拼接结果输入分类模型,获得所述待分类应用的分类结果。
[0127] 本发明实施例还提供了一种电子设备,如图6所示,包括处理器601、通信接口602、存储器603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信,
[0128] 存储器603,用于存放计算机程序;
[0129] 处理器601,用于执行存储器603上所存放的程序时,实现如下步骤:
[0130] 将待分类应用的加密流量数据拆分为多个流,并获取每个流的统计信息;其中,所述统计信息用于表明所述流的传输情况;
[0131] 将所获取的统计信息转换为图嵌入,作为流的嵌入;
[0132] 利用异质图卷积神经网络,获取所述待分类应用对应的通信图的嵌入;其中,所述待分类应用对应的通信图为所述待分类应用产生加密流量数据所进行的通信中,发起通信的源端点集合,接受通信的目标端点集合,以及一组源端点和目标端点之间的网络流构成的图像;
[0133] 利用同质图卷积神经网络,获取所述待分类应用对应的流图的嵌入;其中,所述待分类应用对应的流图为将所述通信图中的所述网络流作为顶点,将相似度大于相似阈值的两个所述顶点进行连接,得到的图像;
[0134] 基于所述流的嵌入,所述通信图的嵌入以及所述流图的嵌入,利用分类模型,获得所述待分类应用的分类结果。
[0135] 本发明实施例提供的方案中,对于待分类应用的加密流量数据,流的嵌入是用于表明流的传输情况的统计信息转换得到的,因此,获取流的嵌入可以捕获待分类应用的流量级别的特征。并且,获取待分类应用对应的通信图的嵌入可以捕获待分类应用产生加密流量数据所进行的通信形成的整个通信网络的特征,获取待分类应用对应的流图的嵌入可以获取加密流量数据的全局特征。因此,基于流的嵌入,通信图的嵌入以及流图的嵌入,利用分类模型,可以获得待分类应用的分类结果,从而实现对加密流量分类。并且,本方案进行的分类,不仅基于待分类应用的流量级别的特征,还基于待分类应用的网络端的特征:通信图的嵌入以及流图的嵌入,因此,可以提高分类所依据特征的丰富程度,提高分类的准确度。
[0136] 上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral Component Interconnect,PCI)总线或扩展工业标准结构(Extended Industry  Standard Architecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0137] 通信接口用于上述电子设备与其他设备之间的通信。
[0138] 存储器可以包括随机存取存储器(Random准确率ess Memory,RAM),也可以包括非易失性存储器(Non‑Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
[0139] 上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field‑Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0140] 在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一基于图卷积神经网络的加密流量分类方法的步骤。
[0141] 在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一基于图卷积神经网络的加密流量分类方法。
[0142] 在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘SolidState Disk(SSD))等。
[0143] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0144] 本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0145] 以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。