分布式场景下新类型加密网络流量包的挖掘和利用方法

文档序号:31700204发布日期:2022-10-01 07:45阅读:33来源:国知局

1.本发明涉及网络安全领域,涉及分布式场景下对网络流量包进行监测管理的方法。


背景技术:

2.网络流量包分类是网络管理和网络空间安全中一项至关重要的任务。网络管理部门通常需要将网络流量包划分为不同类别,然后针对不同类型的网络流量包采用不同的路由或者防火墙配置策略。例如,我们可以根据应用程序类别对网络流量包进行划分,并为不同类别网络流量包分配不同优先级,以保障高优先级业务的网络服务质量(qos)。再比如,网络包分类可以用于网络入侵检测。通过将网络数据包分类分为良性流量包和恶意流量包,可以达到网络异常检测的目的。
3.目前大多数网络流量都是加密流量。绝大多数网络应用中都引入了安全通信协议,如ssl(secure sockets layer)、tls(transport layer security),以提高各自的安全性能。与此同时,许多恶意软件通过其网络流量包进行加密,以逃避防火墙和网络入侵检测系统的检测。由于加密网络流量包的负载(payload)处于加密状态,这个给传统基于深度包检测(dpi)等流量分类方法带来了挑战。基于机器学习的网络流量分类器,通常需要手动进行特征设计和选择,实施难度较大,分类精度较低。
4.近年来,深度学习技术被引入到加密网络流量分类场景。然而,基于深度学习的网络加密流量分类方案存在诸多与现实场景脱节的挑战。
5.首先,深度学习模型的训练需要大量的样本支持,否则容易诱发过拟合问题。深度学习模型普遍比较复杂,待训练的参数众多,构建高精度的基于深度学习的加密流量分类器,需要大量标注好的训练样本的支持。然而收集大量被正确标注的加密流量的并不容易。由于流量包载荷处于加密状态,加密网络流量类型分析和标注的成本非常高。单一监测节点能力有限,所能标注的加密流量包样本数量有限。
6.其次,具备应用价值的分类模型应当能够识别尽可能多的流量类别。然而单一网络监测节点覆盖范围有限,所能采集到的样本类型有限,使得模型识别能力有限。网络流量包分布通常具有一定的地域性特点,例如,不同类型的网络用户产生的网络流量类型并不完全一致。再比如,网络病毒通常是在某个区域爆发,然后才向其他区域扩散。
7.此外,新类型流量包层出不穷,而基于现有流量包样本训练的模型并不能对它们进行正确分类。真实的应用场景中,网络流量的种类并不是固定的,我们经常会遇到大量的新类型网络流量包。导致新类型网络流量包频繁出现的原因比较多。一方面,各类新型网络应用程序层出不穷,新的网络应用必然会导致产生新的网络流量模式。另一方面,为了逃避网络监测,恶意网络用户通常会改变自身的行为模式,从而导致恶意网络流量模式变化。
8.因此有必要研究分布式网络监测场景下,现有类型和新类型的加密网络流量包同时存在,这类与现实状况较为接近的加密网络流量包监测管理问题。在本发明所研究的场景中存在多个网络监测节点。多个网络监测节点(简称节点)分布在不同网络区域的入口位
置,对该区域的网络流量进行监测。各个节点分别积累了一定量的已经标注的网络流量样本。我们将这些已标注样本所对应的网络流量类型统称为现有类型。与此对应的,新类型指还没有任何该类别样本被标注。该场景中,现有类型和新类型的加密网络流量包同时存在。新接收到的流量包样本,既可能是现有类型样本,也可能是新类型样本。


技术实现要素:

9.本发明所要解决的技术问题是,针对现有技术不足,提出一种分布式场景下新类型加密网络流量包的挖掘和利用方法。本发明的技术方案为:
10.一种分布式场景下新类型加密网络流量包的挖掘和利用方法,其特征在于,包括以下步骤:
11.(1)准备阶段:多个网络流量监测节点(简称为“节点”)分别对各自负责的不同网络区域的网络流量进行监测;各个节点分别独立地收集了一定数量的已经进行类别标注的网络流量包样本(简称为“已标注样本”);多个网络流量监测节点相互协作,训练出一个新类型网络流量包检测模型;所述的新类型网络流量包是指还没有任何该类型的网络流量包样本被进行类别标注;
12.(2)新类型流量包检测:各个节点分别从各自新接收到的网络流量包中检测出新类型网络流量包;新类型流量包的挖掘和利用以周期性性的形式进行,每一轮挖掘和利用操作都以当前周期内检测出来的所有新类型流量包为基础进行;
13.(3)子类别发现:各个节点独立对本轮(当前周期时间内)检测出来的新类型流量包进行本地聚类操作;各个节点独立对各自聚类结果各个子类别样本分配标签;本地聚类结果中,相同子类别的新类型流量包样本,将被分配相同的本地标签;不同本地子类别的标签互不相同;
14.(4)本地子类别特征向量提取:各个节点选择一个全局统一的基准;各个节点以该全局统一的基准为基础,分别为各个本地子类别提取全局一致的类别特征向量;各个节点将本地子类别的特征向量,连同它们所对应的本地子类别标签,一起上传到汇聚节点;
15.(5)全局一致性类别标注:汇聚节点以收集来自不同节点的子类别特征向量和本地标签信息;汇聚节点对收集到的所有子类别特征向量为基础,进行全局性聚类;汇聚节点为全局性聚类结果中的各个子类别分配全局性标签;汇聚节点为各个节点建立起本地标签和全局标签的映射方案,并将该映射方案分别返回给相应的节点;各个节点利用接收到的映射方案,为各个子类别样本分配全局性标签;
16.(6)模型更新:多个网络流量监测节点,对模型进行扩展,并利用各自收集的如第(5)步所述的已经分配了全局标签的样本,采用协同合作的方式,对扩展后的模型进行训练,直到模型收敛或者达到一个预先设定的误差阈值。
17.作为进一步优化,所述步骤(4)具体步骤如下:
18.(4.1)全局一致基准模型设计:
19.全局一致的基准模型定义为:y=f
μ
(x)=fe(f
θ
(x))=argmax(softmax(f
θ
(x)));子模型f
θ
为加密网络流量包特征提取模型;各个节点使用全局最优的模型参数θ
*
对子模型f
θ
进行初始化,子模型fe中不包含待优化的参数,不需要进行初始化处理;
20.(4.2)子类别增量模型的训练:各个节点为各自的不同本地子类别样本,分别独立
训练一个增量模型;用于增量训练的优化方程为:
21.(4.3)基于增量模型的子类别特征提取:各个节点分别从各个子类别模型参数中,按照相同的规则选择一个参数子集,作为该子类别的特征向量;各个节点将各个本地子类别特征向量和本地子类别标签一起上传到汇聚节点;
22.(4.4)全局一致的子类别标签分配:汇聚节点以收集到的子类别特征向量为基础进行所有本地子类别进行全局性聚类,并根据全局性聚类结果为每个全局性子类别分配不同的全局性标签;汇聚节点根据收集到子类别的本地标签和重新分配的全局标签,为各个节点的本地子类别建立本地子类别标签和全局性标签的映射方案,并将该映射关系反馈给对应的节点;各个节点根据接收到的映射方案,将各自样本的本地类别标签修改成全局性类别标签。
23.作为进一步优化,所述步骤(6)具体步骤如下:
24.(6.1)模型的扩展:根据新增类别的总数和新增样本的总数,对模型进行扩展;当新增加的类别数量和样本数量较少时,增加模型的输出层神经元的数量;当新增加的类别数量和样本数量非常多时,还需要增加中间层进行层次数量或各层次神经元的数量;
25.(6.2)模型初始化:对经过模型的扩展的模型中的原有基础模型参数,使用现有的最优特征参数进行初始化;对于模型扩展部分的各个神经元参数,使用随机数进行初始化;
26.(6.3)优化方程:优化方程定义为其中f’θ
是经过扩展的模型;
27.(6.4)模型训练:多个网络流量监测节点,利用各自收集的已经分配了全局标签的样本,采用协同合作的方式,对扩展后的模型进行训练,直到模型收敛或者达到一个预先设定的误差阈值。
28.有益效果:
29.本发明所采用的方案,设计了一种分布式场景下的新类型加密网络流量包挖掘和利用方法。分布式场景下不同网络节点上检测出来的新类型流量包中,包含了有价值的模式信息。本发明所设计的方案可以对分布在不同网络流量监测节点上的新类型加密网络流量包进行全局一致的类别划分和类别标签分配。该方案还可以利用这些标注好的新类型流量包样本,对现有各类全局模型(如:特征向量提取模型、新类型加密网络流量包检测模型、现有类型加密网络流量分类模型等模型)进行快速更新,以扩大这些模型的类别识别能力。
附图说明
30.图1特征提取模型结构示意图
31.图2(a)新类型流量样本的特征向量top-3元素的分布情况
32.图2(b)现有类型流量样本的特征向量top-3元素的分布情况
33.图3高置信度新类型流量包样本提取模型
34.图4增量模型参数的类别表达能力
35.图5(a)网络流量包的二维空间视图(特征向量第1大和第2大元素维度)
36.图5(b)网络流量包的二维空间视图(特征向量第1大和第3大元素维度)
37.图5(c)网络流量包的二维空间视图(特征向量第2大和第3大元素维度)
38.图6(a)第一层的bias参数的表达能力
39.图6(b)第一层的kernel参数的表达能力
40.图7(a)最后一层的bias参数的表达能力
41.图7(b)最后一层的kernel参数的表达能力
42.图8全局一致的类别标签分配
具体实施方式:
43.本发明的具体实现过程如下:
44.本发明研究了一个与现实场景较为相似的,分布式场景下加密网络流量包监测管理问题。该问题场景中存在多个网络监测节点(简称“节点”),他们各自独立地对所管辖区域的加密网络流量包进行监测和管理。各个网络监测节点已经积累了一些标注好的加密网络流量包样本。每个节点上的已标注样本的数量和类型有限,无法独自完成复杂的深度学习模型的训练。
45.各个节点新接收到的加密网络流量包中既有现有类型流量包,也有新类型流量包。现有类型加密网络流量包(简称为“现有类型流量包”)是指某些该类型加密网络流量包样本已经被分配了正确的类别标签。此类分配了标签的样本,称为已标注样本,或者简称为标注样本。新类型加密网络流量包(简称为“新类型流量包”)是指还没有任何该类型的加密网络流量包样本被分配类别标签。我们假定不同网络监测节点对同一类型的加密流量包样本都分配了相同的类别标签。
46.为了解决单一网络节点已标注网络流量包数量和类型有限的问题,各个不同节点,将利用各自的已标注样本,协同进行模型训练。通过对多个节点的样本资源的整合,既可以增加用于模型训练的已标注样本的数量,以避免出现过拟合问题,还可以使训练出来的模型学习到不同网络区域的流量模式特征差异。
47.发明人针对所研究的问题,主要开展了如下三个方面的具体研究。
48.(1)分布式场景下加密网络流量包特征提取方法:该特征提取模型可以用于新类型流量包检测、新类型流量包标注、现有类型流量包分类等其他方法中。
49.(2)分布式场景下新类型加密网络流量包检测方法:新接收到的网络流量中,现有类型和新类型加密网络流量包共存。若我们直接对新接收到的网络流量进行分类,新类型流量包将被错误地划分为某个现有类型,导致分类错误。因此,需要从不同节点新接收到的网络流量中,检测分离出新类型加密网络流量包。
50.(3)分布式场景下新类型加密网络流量包的挖掘和利用方法:不同网络节点上检测出来的新类型流量包中,包含了有价值的模式信息。我们将研究如何挖掘这些信息,并用于对现有模型进行更新。
51.一、分布式场景下加密网络流量包特征提取方法
52.本小节介绍分布式场景下加密网络流量包特征提取方法。该方法可以用于新类型流量检测、新类型流量标注、现有类型流量分类等其他方法中。该分布式场景下加密网络流量包特征提取方法主要包括以下步骤:首先,设计特征提取模型。该模型用于直接将原始加密流量包转换成特征向量。然后,设计分布式场景下特征提取模型的训练方法。具体步骤如下:
53.(1)准备阶段:多个网络流量监测节点分别对各自负责的不同网络区域的网络流量进行监测;各个节点分别独立地收集了一定数量的已经进行类别标注(分配类别标签)的网络流量包样本(简称为“已标注样本”);
54.(2)特征提取模型的构建:网络流量包特征提取模型f
θ
可以表示成v=f
θ
(x),其中x为加密网络流量包,v是通过模型提取的特征向量;该特征提取模型f
θ
至少包括一个一维卷积(1d cnn)层和一个注意力(attention)层;attention层的输出经过变换后转化成一组权值;该组权值用作一维卷积层不同通道的权值,用于改变一维卷积层原有输出值;作为优化,该特征提取模型f
θ
还可以包括一维池化层、全连接层和激活层;图1展示了特征提取模型中一维卷积层和attention层的结合方式。具体实现时,特征提取模型中一般包括多个卷积层。计算机视觉领域比较常用的卷积层结构主要是二维卷积层和三维卷积层,已有部分研究人员将二维卷积层和三维卷积层应用在加密流量分类场景。然而,网络流量本质上是顺序数据,它是一维字节流,因此本特征提取模型将采用一维卷积层、一维池化层作为卷积神经网络的基本组件。与此同时,特征提取模型中,还引入了attention层。attention层使用某个卷积层的输出作为其输入,以捕获卷积层不同通道的特征差异。attention层通过和softmax结合,将捕获到的差异信息转化成一组权值。该组权值将用作卷积层不同通道的权值,用于改变卷积层原有输出值的权重,从而实现为卷积层不同输出特征进行动态赋权。作为优化,该特征提取模型f
θ
还可以包括一维池化层、全连接层和激活层;图1中“1d cnn”代表以一维卷积层为主要组件的人工神经网络的子网络,图1中的“其他层”通常由一维卷积层、池化层、全连接层等组件构成。
55.特征提取模型中间层的层次深度和层次结构,需要根据训练样本数量、机器的性能等因素综合决定。根据深度学习理论,一般情况下,在样本数量足够多的情况下,模型结构越复杂,层次深度越多,模型的表达能力越强。特征提取模型输出层的神经元个数与现有加密网络流量包类别数量保持同一个数量级,一般可以设置为等于或者略大于现有类型数量。下面给出一个较为简单的特征提取模型实施实例。该实施实例适用于训练样本数量有限的场景。该实施实例模型的输入为一维形式的加密网络流量包x。模型输出为对应特征向量v。模型由7层组成。其中包括3个卷积层、两个池化层和两个全连接层。attention层以旁路的形式,插入在第二个卷积层之后。attention层计算出的结果用于对第二卷积层的输出特征进行动态赋权。第二卷积层的各个输出将分别与attention层提供的权值组中对应权值相乘,从而得到加权后的输出。第二卷积层的加权后的输出将继续输入后续模块进行处理。
56.为了对特征提取模型f
θ
进行训练,我们需要解决如下两个方面问题。其一,特征提取模型的输入的是流量包样本,输出的是特征向量,然而,我们并没有关于最优的特征向量的先验知识,无法对训练过程进行直接指导。其二,样本资源分布在多个独立的节点之上,有必要构造一种协同训练机制。
57.理论上,特征提取器不应当改变流量包样本的类别归属关系。也就是说,同一类型的流量包样本在特征空间中的位置应当是接近的。因此我们可以利用已标注样本的类别标签,对特征提取器的训练过程和优化方向进行监督指导。为实现上述思路,我们在特征向量v的基础上构造接口模型fe。
58.(3)接口模型的构建:接口模型fe由softmax和argmax两个模块嵌套构成;该接口
模型可以表示成y=fe(v)=argmax(softmax(v));
59.(4)优化方程的构建:优化方程可以表示成其中l是损失函数(loss function);
60.特征提取模型基于深度神经网络技术构造,需要大量的已标注训练样本作为支撑。为了增加用于模型训练的样本数量,提升模型的精度,我们构造模型的分布式训练方案,以实现各个节点积累的样本资源的模型级别共享。
61.(5)模型的分布式训练:多个网络流量监测节点(简称为“节点”),利用第(1)步所述的各自收集的已标注网络流量包样本,采用协同合作的方式,按照第(4)步给出的优化方程,对第(2)步的特征提取模型f
θ
进行训练,直到模型收敛或者达到一个预先设定的误差阈值。模型的分布式训练的具体步骤如下:
62.(5.1)模型初始化:选定一个节点作为汇聚节点,汇聚节点首先对特征提取模型f
θ
的参数进行随机初始化,初始化参数为θ0,然后将θ0发送到其他节点;
63.(5.2)本地模型训练:节点i利用接收到的θ0对f
θ
进行初始化,并构造本地优化方程节点i利用本地积累的已经标注好的加密网络流量数据集,基于上述优化方程对模型f
θ
进行优化,得到优化后的模型参数节点i向汇聚节点反馈优化结果
64.(5.3)本阶段模型参数生成:汇聚节点接收来自各个参与节点的反馈结果计算其数学期望值本轮分布式训练的模型参数为汇聚节点将本阶段模型参数θ1发送到其他节点;
65.(5.4)重复(5.2)-(5.3)步,直到模型收敛或者达到一个预先设定的误差阈值,从而得到当前最优的模型参数θ
*

66.(5.5)所有节点都从汇聚节点获得当前最优的模型参数θ
*
,并构造出当前最优的特征提取模型f
θ
,以用于提取网络流量包的特征向量。
67.二、分布式场景下新类型加密网络流量包检测方法
68.新接收到的网络流量中,现有类型和新类型加密网络流量包共存。若直接对新接收到的网络流量进行分类,新类型流量包将被错误地划分为某个现有类型,导致分类错误。因此,需要从不同节点新接收到的网络流量中,检测分离出新类型加密网络流量包。为此,我们面向分布式场景,设计了一种新类型加密网络流量包检测方法,用于从不同节点新接收到的网络流量中,检测分离出新类型加密网络流量包。发明人提出了一种分布式场景下新类型网络流量包检测方法,包括以下步骤:
69.(1)准备阶段:多个网络流量监测节点分别对各自负责的不同网络区域的网络流量进行监测;各个节点分别独立地收集了一定数量的已经进行类别标注(分配类别标签)的网络流量包样本(简称为“已标注样本”);所述的新类型网络流量包是指还没有任何该类型的网络流量包样本被进行类别标注;
70.(2)特征提取模型训练:所述的特征提取模型可以表示成v=f
θ
(x),其中x为网络流量包,v是通过模型提取的特征向量;多个网络流量监测节点(简称为“节点”),利用各自收集的已标注网络流量包样本,采用协同合作的方式,训练出一个该特征提取模型的最优参数θ
*

71.(3)用于检测模型训练的正样本的获取:各个网络节点使用特征向量提取模型,从新接收到网络流量包中提取特征向量,并将该向量与一个预设向量进行比较,以判断是否需要将该网络流量是否可以作为新类型网络流量包检测模型训练样本中的正样本;所有正样本的标签被设置相同的值;获取用于检测模型训练的正样本的具体步骤如下:
72.(3.1)定义阈值向量[α1,α2,..,αk]:
[0073]
阈值向量的长度为k;阈值向量的每个元素αi都分别标示一个区间范围;阈值向量的每个元素αi分别由flag和value两部分组成,flag∈{+,-},value∈(0,1);flag为负号,表示value定义的是右侧边界,其左侧边界为1;flag为正号,表示value定义的是左侧边界,其右侧边界为0;
[0074]
阈值向量[α1,α2,..,αk]是根据历史数据确定。下面举例说明。我们分别将相同数量的现有类型和新类型流量包样本输入到特征提取模型,得到各自的特征向量。为形成可以量化比较的阈值结果供后续方案使用,我们使用softmax模块对特征向量的进行了归一化处理。对于各个样本的特征向量,我们按照降序对特征向量各个元素进行排序。各向量中大多数元素值都接近于0,与噪声误差在一个数量级,对其进行分析比较的意义不大。因此,我们只记录各个向量的top-k元素。针对现有类型流量包和新类型流量包,我们分别绘制他们的top-k特征向量元素的直方图用于对比。图2是特征向量top-3元素的直方图统计信息,横轴是元素的值,纵轴是该元素值对应的样本的个数。图2(a)是新类型流量特征向量排序前三的元素的分布情况(分别对应图中的k=1,2,3),图2(b)是现有类型流量特征向量排序前三的元素的分布情况(分别对应图中的k=1,2,3)。第一列对应top-1向量元素的分布,第二、三列是对应第二大和第三大向量元素的分布。
[0075]
尽管新类型和现有类型样本的分布区间存在重合部分。但是,我们依然可以选定分布区间,得到可信度非常高的新类型样本的。以图2为例,当样本输出向量的top3元素分别位于[0,0.75]、[0.2,1]和[0.1,1]这三个区间是,这类样本是新类型样本的可信度非常高。对于图2的实例,阈值向量可以表示为[0.75,-0.2,-0.1]。借助上述的阈值向量,我们可以构造如图3所示的高置信度新类型流量包样本提取模型。
[0076]
(3.2)提取网络流量包特征向量的top-k元素:对网络流量包进行特征向量提取;特征向量的长度大于或者等于k;对提取的特征向量排序,并保留最大的k个元素(top-k元素),记为[v
′1,v
′2,..,v
′k];
[0077]
(3.3)获取用于检测模型训练的正样本:通过比较阈值向量[α1,α2,..,αk]和特征向量的top-k元素[v
′1,v
′2,..,v
′k],以确定是否是高置信度的新类型样本;依次比较[v
′1,v
′2..,v
′k]的k个元素是否分别位于[α1,α2,..,αk]的k个元素所标示的区间之内;如果[v
′1,v
′2,..,v
′k]中的所有的元素都分别位于[α1,α2,..,αk]的k个元素所标示的区间之内,则为该样本设置正样本标签,并将其添加到用于检测模型训练的正样本集合中。正样本集合中的样本代表的是可信度非常高的新类型样本。具体算法如下:
[0078][0079]
(4)获取用于检测模型训练的负样本:负样本代表的是现有类型,来源于现有已经标注的网络流量包样本集;各个网络节点从第(1)步所述的已标注网络流量包样本中随机选择一定数量的样本作为负样本;所选取的负样本的数量与正样本的数量相同或者相近;所有负样本的标签被设置成相同的值;负样本的标签应当与正样本的标签不同,例如可以分别设置为0和1。
[0080]
(5)新类型流量包检测模型的构建:新类型流量包检测模型fn由fb和f
θ
两个子模型构成,两者采用串联方式进行组合,可以表示成y

=fn(x)=fb(f
θ
(x));
[0081]
(6)优化方程的构建:优化方程表示为其中l是损失函数(loss function);
[0082]
(7)模型的分布式训练:多个网络流量监测节点(简称为“节点”),利用各自收集的如第(3)-(4)步所述的样本,采用协同合作的方式,按照第(6)步给出的优化方程,对第(5)步的新类型流量包检测模型fn进行训练,直到模型收敛或者达到一个预先设定的误差阈值。模型的分布式训练的具体步骤如下:
[0083]
(7.1)模型初始化:模型初始化参数定义为n0=[b0,θ
*
];其中θ
*
是子模型f
θ
的最优的模型参数,已经存在于各个节点;汇聚节点只需要对子模型fb的参数b0进行随机初始化,并将初始化结果发送到各个节点;
[0084]
(7.2)模型构建:各个节点,构建新类型流量包检测模型y=fn(x)=fb(f
θ
(x)),利用接收到的模型初始化参数b0和子模型f
θ
的当前最优参数θ
*
,对模型参数进行初始化;
[0085]
(7.3)本地模型训练:
[0086]
首先,节点i构造本地优化方程
[0087]
然后,节点i利用本地训练样本集,对模型fn进行优化,得到优化后的模型参数训练集包括新类型样本(即:正样本)和现有类型样本(即:负样本);训练完成后,节点i将向汇聚节点反馈优化结果
[0088]
(7.4)本轮模型训练结果生成:汇聚节点接收来自各个参与节点的反馈结果计算其数学期望值进而得到本轮分布式训练的优化结果汇聚节点将本轮优化结果n1发送到各个节点;
[0089]
(7.5)重复第(7.3)-(7.4)步,直到模型收敛或者达到一个预先设置的误差阈值,从而得到最终的模型参数n
*

[0090]
分布式训练完成后,所有节点都从汇聚节点获得当前最优的模型参数n
*
,并构造出当前最优的新类型流量包检测模型f
n*
。该模型对本轮时间区间内所有新接收到的网络流量包进行检测识别,以分离出新类型流量包。新类型流量包检测模型f
n*
的训练过程中,引入了现有类型和新类型作为相互对照。这使得该模型可以更加全面地学习到新类型和现有类型间的差异性特征信息,因此,相比之前的简单阈值分割方式,新类型流量包检测模型f
n*
的检测能力将大大提升。
[0091]
三、分布式场景下新类型加密网络流量包的挖掘和利用方法
[0092]
本部分主要包括两个方面。其一是全局一致的类别标签分配方法。将不同节点上的新型加密网络流量包划分为不同的子类,并为不同子类的样本分配全局统一的标签。其二是现有模型更新方法。利用各个节点上已经进行全局一致标签分配的样本,以分布式模式对现有模型进行更新。
[0093]
全局一致的类别标签分配面临挑战。新类型流量包可以被进一步分为不同的类型。对于模式特征类似的,但是分布在不同节点上的新型流量包,它们应该具有相同的类别标签。实现全局性统一标注最直接的方法,是让各个节点将获取到新类型流量包上传到服务器,由服务器进行统一标注。然而由于原始流量包数据量大,这种方法并不合适。如果各个节点独立进行的降维操作,并上传降维结果,可以降低通信开销。但是不同节点的降维结果间不具备全局统一性,无法直接比较以实现全局统一的类别标注。
[0094]
本发明提出的方法中,新类型流量包的全局一致类别标注由三个过程组成:(1)新类型流量包的本地子类别划分和本地子类别标注。各个节点对自己的新类型流量包聚类成不同的子类别,并根据类别划分结果为各个新类型样本分配合适本地标签。需要注意的是,由于各节点独立对其样本进行类别标注,位于不同节点的同类样本的本地标签通常并不相同。(2)本地类别的全局一致特征提取。各个节点为本地各个类别的提取全局一致的类别特征,并上传到服务器。确保提取的类别特征的全局一致性进行下一步的前提和基础。(3)全局一致的类别标签分配。服务器根据每个节点上传的特征数据之间的相似性将本地类别分为不同的全局类别,并为各个全局类别分配相应的全局标签。各个本地节点将使用全局标签替换各自的本地类别标签,从而类别标签的全局一致性。一种分布式场景下新类型加密网络流量包的挖掘和利用方法,包括以下步骤:
[0095]
(1)准备阶段:多个网络流量监测节点(简称为“节点”)分别对各自负责的不同网络区域的网络流量进行监测;各个节点分别独立地收集了一定数量的已经进行类别标注(简称为“已标注”)的网络流量包样本;多个节点通过前述的分布式场景下新类型加密网络
流量包检测方法,训练出一个新类型加密网络流量包检测模型;所述的新类型网络流量包是指还没有任何该类型的网络流量包样本被进行类别标注;
[0096]
(2)新类型流量包检测:各个节点分别从各自新接收到的网络流量包中检测出新类型网络流量包;新类型流量包的挖掘和利用以周期性性的形式进行,每一轮挖掘和利用操作都以当前周期内检测出来的所有新类型流量包为基础进行;
[0097]
(3)本地子类别标签分配:各个节点独立对本轮(当前周期时间内)检测出来的新类型流量包进行本地聚类操作;各个节点独立对各自聚类结果各个子类别样本分配标签;本地聚类结果中,相同子类别的新类型流量包样本,将被分配相同的本地标签;不同本地子类别的标签互不相同;
[0098]
(4)本地子类别特征向量提取:各个节点选择一个全局统一的基准;各个节点以该全局统一的基准为基础,分别为各个本地子类别提取全局一致的类别特征向量;各个节点将本地子类别的特征向量,连同它们所对应的本地子类别标签,一起上传到汇聚节点;具体步骤如下:
[0099]
(4.1)全局一致基准模型设计:
[0100]
全局一致的基准模型定义为:y=f
μ
(x)=fe(f
θ
(x))=argmax(softmax(f
θ
(x)));子模型f
θ
为加密网络流量包特征提取模型;各个节点使用全局最优的模型参数θ
*
对子模型f
θ
进行初始化,子模型fe中不包含待优化的参数,不需要进行初始化处理;
[0101]
(4.2)子类别增量模型的训练:各个节点为各自的不同本地子类别样本,分别独立训练一个增量模型;用于增量训练的优化方程为:
[0102]
需要注意的是,尽管增量模型训练过程采用的是传统深度学习模型训练方法,然而其训练样本构成、训练目的和训练成本是不一样的。传统深度学习训练数据包含了多种不同类别的样本,其目的在于学习不同类别样本包含的特征信息,以提高模型精度。由于不同类别样本的差异性较大,模型的收敛速度较慢,因而训练成本较高。在本方案设计的增量模型训练过程中,训练样本来自同一个本地子类别,其目的在于学习该单一类别数据的特征信息。由于同一类别样本间差异性较小,模型收敛速度非常快。实验表明,即便是是进行了几轮epoch的训练,便可以保证参数实现非常好的类别代表性能。以vpnnonvpn数据集为例,通过随机采样生成100个单类别训练样本集,分别独立进行增量模型训练测试,当epoch>2时,所有100次的训练精度都已经接近1。
[0103]
(4.3)基于增量模型的子类别特征提取:各个节点分别从各个子类别模型参数中,按照相同的规则选择一个参数子集,作为该子类别的特征向量;各个节点将各个本地子类别特征向量和本地子类别标签一起上传到汇聚节点;
[0104]
由于不同节点都使用相同的基准模型进行增量模型训练,因此这些子类别特征具备全局一致性。与此同时,子类别增量模型参数具备了较好的子类别区分度。图4是增量模型参数的类别特征表达式能力。图4中每个节点对应一个增量模型的参数向量。该增量模型由某个类别数据的采样子集训练得到的。为了便于显示,我们采用主成分分析法对参数向量进行降维,并在二维空间中进行显示。由图可知,不同类型样本的增量模型,其参数向量具有较好的区分度。同类型样本子集得到的增量模型位于参数空间中相邻的位置。然而,这些增量模型参数并不适合直接用作本地子类别特征向量。一方面,部分本地类别编号不同的增量模型在模型参数空间中存在重合现象。例如,图4中编号为8和编号为b的类别的两个
模型在参数空间中是重合的,这会导致这两个类别数据不可分。
[0105]
为避免上述部分子类别特征空间重叠问题,以及减少特征向量维度和通信开销,我们将从模型参数中提取具有代表性的优化参数子集,作为子类别的特征向量。本方案选择模型最后一层的bias参数作为最终的参数。首先,深度神经网络从输入层到输出层的各层中,越靠后的层,其抽象能力更高,类别表达能力更强。其次,从反向传播算法的角度而言,靠近输出的各层参数最先被调整。因此靠近输出层的参数最容易受到增量训练过程的影响,最能捕获相关类别训练数据中的特征信息。此外,在大多数深度学习模型中,靠近输出层的各层节点数量相对较少,因此这些层的参数个数也更少。以经典的letnet-5模型为例,该模型总参数超过40000个,而根据我们方案所选择的特征参数为10个。优化后的参数子集的类别表达能力可以参考“性能评估”部分。
[0106]
(5)全局一致的子类别标签分配:汇聚节点以收集来自不同节点的子类别特征向量和本地标签信息;汇聚节点以收集到的子类别特征向量为基础,为这些本地子类别特征向量进行全局性聚类,并根据全局性聚类结果为每个全局性子类别分配不同的全局性标签;汇聚节点为全局性聚类结果中的各个子类别分配全局性标签,汇聚节点根据收集到子类别的本地标签和重新分配的全局标签,为各个节点的本地子类别建立本地子类别标签和全局性标签的映射方案,并将该映射关系反馈给对应的节点;各个节点根据接收到的映射方案,将各自样本的本地类别标签修改成全局性类别标签。整个过程如图8所示。
[0107]
通过上述操作,我们获得了许多新类型的样本集。接下来,我们将使用新类型样本集作为训练数据,对特征向量提取模型、新类型加密网络流量包检测模型、现有类型加密网络流量分类模型等模型进行更新。对前述各个模型进行更新的原理基本类似。下面以特征提取模型的更新为例进行讲解。
[0108]
(6)模型更新:多个网络流量监测节点,对模型进行扩展,并利用各自收集的如第(5)步所述的已经分配了全局标签的样本,采用协同合作的方式,对扩展后的模型进行训练,直到模型收敛或者达到一个预先设定的误差阈值。具体步骤如下:
[0109]
(6.1)模型的扩展:根据新增类别的总数和新增样本的总数,对模型进行扩展;当新增加的类别数量和样本数量较少时,增加模型的输出层神经元的数量;当新增加的类别数量和样本数量非常多时,还需要增加中间层进行层次数量或各层次神经元的数量;
[0110]
模型更新时,随着新类型训练样本的加入,类别的总数和样本的总数都有所增加。我们需要对模型进行适当的扩充,以使得模型的复杂度与样本的数量和类别的数量相适应。具体而言,当新增加的类别数量和样本数量,比之前训练时现有类型样本数量和类别少得多时,我们只需要修改模型的输出层,增加与新类型相同数量的神经元。当新增加的类别数量和样本数量非常多时,我们需要对中间层进行扩充。中间层扩充的方式,既可以是层次的增加,也可以是现有各个中间层维度扩展。
[0111]
(6.2)模型初始化:对经过模型的扩展的模型中的原有的基础模型参数,使用现有的最优特征参数进行初始化;对模型扩展部分的各个神经元参数,使用随机数初始化;
[0112]
(6.3)优化方程:优化方程定义为其中f’θ
是经过扩展的模型;
[0113]
(6.4)模型训练:多个网络流量监测节点,利用各自收集的已经分配了全局标签的样本,采用协同合作的方式,对扩展后的模型进行训练,直到模型收敛或者达到一个预先设
定的误差阈值。
[0114]
四、性能评估
[0115]
1、实验设置
[0116]
1)、用于评估的数据集:实验过程中采用的数据集由两部分构成。一部分来自iscx vpnnonvpn数据集。该数据集包括了不同类型的常规加密流量和协议封装流量。删除了存在类别争议的样本。最终整理出来的数据集共计12个类别。其中包括6个常规加密流量类别(即:chat、email、file、p2p、streaming、voip)和6个协议封装流量类别(即:vpn_chat、vpn_email、vpn_file、vpn_p2p、vpn_streaming、vpn_voip)。如果没有特别说明,我们将使用0到9这个10个数字,按照前述列示顺序,依次标识前10个类别,并使用a、b这2个字母,按照顺序依次标识最后2个类别。然而该数据集部分类别的样本数量过少。例如:vpn_email类别的样本总数只有253例。并且类别间样本分布极不均衡。例如chat类别的样本数为5257,远远大于vpn_email类别的样本总数。为此,我们对数据集各个类别均进行了样本扩充,并确保数据集各类别样本数量基本相等。
[0117]
2)平台和模型:实验中采用的深度学习框架是tensorflow。实验中采用的联邦学习平台是tensorflow federated(tff)framework。具体实验时,联邦学习相关机制采用本地模式实现,也就是客户端节点和服务器通过虚拟方式实现,他们实质上位于同一台设备之上。所提出的方案中提到了几种模型,例如特征提取方案和新型检测方案。实验中使用的这些模型的主要部分与lenet-5相似,并从如下三个方面进行了修改。首先,所有2d模块都被1d模块取代。例如,卷积层的2d卷积模块被替换为1d卷积模块。其次,在模型中加入了注意力层。第三,输入层和输出层根据样本量和流量类别的数量进行自适应修改。该模型主要部分由七层组成。它包括三个卷积层、两个池化层和两个全连接层。卷积层和池化层以一维形式实现。注意层以旁路的形式插入到第二卷积层之后,注意层的输出用于动态加权第二卷积层的输出。
[0118]
3)、评价指标:实验过程中采用的评估指标包括精确度(accuracy)、准确度(precision)、召回率(recall)和f1分数(f1-score)。
[0119]
2、模型构件选择和性能比较。
[0120]
所提出方案中采用的模型是基于1d-cnn和注意机制构建的。表1是不同模型策略之间的性能比较,即我们的(基于1d-cnn和注意力机制的模型)、基于1d-cnn的模型和基于2d-cnn的模型。根据实验结果,基于1d-cnn和注意力机制的模型的分类性能优于单独的1d-cnn和2d-cnn模型。应该指出的是,将本实验的结果与其他后续实验的结果进行比较是毫无意义的。一方面,不同类别的样本数量极不平衡。而后续实验的数据集是类别平衡的。另一方面,本实验中用于模型训练的样本数量远远多于后续实验中的样本数量。
[0121]
表1 不同模型策略的性能比较
[0122]
方案精确度(accuracy)准确度(precision)召回率(recall)f1分数f1-score本发明0.9490.9570.9380.9471d-cnn0.9210.9450.9330.9392d-cnn0.8450.8520.8460.848
[0123]
3、新类型流量包检测模型性能。
[0124]
由图2可知,新类型流量包与已知流量包的输出向量在top3向量元素对应的各个
维度上存在较大的特征差异。为了更加直观地展示其差异性,我们利用输出向量的top3向量元素作为三个不同的维度,构造出一个三维空间。我们将这些样本标注在该三维空间中。标示为0的样本表示现有类型样本,标示为1的样本表示新类型样本。为了观察现有类型样本和新类型样本在空间中的分布特征,我们将三维空间图形投影到三个不同的2维平面上,以方便查看效果。结果如图5(a)、图5(b)和图5(c)所示。
[0125]
由图5(a)、图5(b)和图5(c)可知,绝大多数现有类型样本和新类型样本,分布在该空间中的不同区域,具有较为明显的分布差异。通过选择合适的阈值参数,我们可以很容易将大多数新类型样本分离出来。与此同时,现有类型样本和新类型样本在部分区域存在一定交叠。例如,有大量的标示为0或者1的样本密集分布在图5(a)和图5(b)的右下角区域,同样的情况还出现在图5(c)的左下角区域。因此,基于阈值的分割方案完全将从这一区域中将他们分离出来。我们将本发明所提出的新类型样本检测方案与基于阈值分割方案进行了性能比较。表2是比较结果。实验过程中,第一个维度的分割阈值被设置成0.9,其他两个维度的分割阈值被设置成0.1。
[0126]
表2 新类型样本检测方案性能比较
[0127]
方案精确度(accuracy)准确度(precision)召回率(recall)f1分数f1-score阈值分割方案0.6830.9960.6130.759本发明0.9420.9860.9060.944
[0128]
由表2可知,阈值分割方案的准确度(precision)非常高,然而召回率(recall)和精确度(accuracy)相对较低。阈值分割方案的准确度(precision)非常高,主要是由于现有类型样本在top3维度上分布非常集中。采用阈值分割方案时,现有类型样本可以较大概率将其正确识别,将现有类型样本错误的判定为新类型样本的概率较低。
[0129]
新类型样本分布比较散乱,许多新类型样本与现有类型样本存在交叠的,无法直接通过简单的阈值分割方式将其分离出来。因此,方案l1识别新类型样本的能力相对较差,其召回率(recall)和精确度(accuracy)相对较低。
[0130]
本发明方案的召回率(recall)和精确度(accuracy)都由较大幅度的提升。然而,其准确度(precision)相对于阈值分割方案有小幅度的下降。本发明方案的训练样本中的新类型样本(标签为1)来自于阈值分割方案。在指定阈值下,部分现有类型样本被阈值分割方案错误地划分成新类型样本,本发明方案的训练过程中必然会学习到这种标签错误样本的模式,进而会增加其将现有类型样本划分为新类型样本的几率。因此,其准确度(precision)相对于阈值分割方案有一定幅度的下降。
[0131]
4、全局一致特征提取方案性能
[0132]
尽管用不同类别数据训练的增量模型的具备一定的类别表达能力,然而由于模型参数众多,并且表达能力还需要进一步提高,该增量模型参数并不适合直接用作类别特征数据上传到服务器端。
[0133]
增量模型的最后一层参数可能具有极强的表达能力。下面通过实验进行验证。本实验数据来自vpnnonvpn数据集。其中编号为【1,2,3,4,5】的这五个类别被当作现有类型,其他7个类别被当作新类型。我们从现有类型数据集中构造训练样本集,训练出一个基础模型。然后从新类型数据集中随机生成56个训练样本集,每个训练样本集只包含这7个新类型数据中的某一类样本。然后以每个数据集为基础,基于前述的基础模型进行增量模型训练。
由于单一类别样本进行增量训练时,模型收敛非常快。为降低训练成本,进行每类样本增量训练是,我们都将epoch设为3。单个增量模型的训练过程耗时不超过1s。训练结束时,绝大多数模型的训练精度都达到1。
[0134]
我们提取模型的第一层和最后一层参数的两组参数(kernel和bias),分别通过pca降维后,进行可视化对比。第一层的两组参数在2维空间的聚类效果分别如图6(a)和图6(b)所示。最后一层的两组参数在2维空间的聚类效果分别如图7(a)和图7(b)所示。
[0135]
由图6和图7可知,模型第一层的两组参数的聚类效果明显要比模型最后一层的两组参数差。在由图7中,所有类别之间都互不重叠。而在图6,各个类别节点分布比较散乱,且存在重叠现象。参数bias(图6a和图7a)的聚类效果明显要优于kernel参数(图6b和图6b)。以图7为例,尽管最后一层的kernel和bias这两组参数都有较好的聚类效果,但bias这组参数(图7a)中节点分布明显更为集中。
[0136]
如图4所示,直接使用全体模型参数作为特征数据并不是一个明智的选择。不仅特征向量多,而且类别区分效果并不理想,还存在部分类别无法区分的情况。如果使用最后一层的bias参数作为特征数据,特征向量长度大幅度减少,并且类别区分效果也得到了显著提升(图7a)。
[0137]
5、模型更新前后的性能比较
[0138]
在自适应更新全局模型性能分析实验中,我们共设计了3类场景。三类场景中均包括了9类已知流量类别。三类场景中的未知流量类别数量分别1类、2类和3类。具体的场景说明如表3所示。每个实验场景中,我们分别从每个的现有类型中分别随机选择2000个样本作为训练样本,训练出一个基础分类模型g1。然后我们分别从每个现有类型和每个新类型中分别随机选择2000个样本作为新增流量样本,用于进行所提方案中后一阶段的操作,得到一个更新后的分类模型g2。前后两个阶段所使用的流量样本互不相同。最后,我们以实验结果为基础分析不同场景中更新前后两个分类模型的性能,实验结果如表4所示。由结果可知,三种场景中,新模型g2的性能相对于g1都略有下降,并且新类型的数量越多,性能下降幅度也越大。这是因为,随着新类型的数量的增加,新样本集合中新类型样本的所占比例也随之增加。由于新类型样本识别、标注等环节的误差的存在,新类型样本所占比例越多,其误差对最终结果的影响也越大。
[0139]
表3 实验场景描述
[0140]
场景现有类型新类型场景1[1,2,3,4,5,6,7,8,9][a]场景2[2,3,4,5,6,7,8,9,a][0,b]场景3[0,2,3,4,6,7,8,a,b][1,5,9]
[0141]
表4 自适应更新模型性能分析
[0142]
场景模型精确度accuracy准确度precision召回率recallf1分数f1-score1g10.9480.9490.9480.9481g20.9420.9420.9420.9422g10.9520.9530.9520.9522g20.9420.9430.9420.9423g10.9680.9690.9680.968
3g20.8970.8980.8970.896
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1