首页 / 专利库 / 电脑编程 / 算法 / 基于时空特性相结合的深度学习流量分类方法

基于时空特性相结合的深度学习流量分类方法

阅读:79发布:2023-12-27

专利汇可以提供基于时空特性相结合的深度学习流量分类方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种基于 时空 特性相结合的 深度学习 流量分类方法,主要解决 现有技术 检测准确率低的问题。其实现方案是:1)采集并标注原始流量负载数据;2)基于原始流量负载数据,生成预处理后的流量图集;3)利用流量图集训练基于时空特性相结合的深度学习模型;4)用新采集并生成的流量数据验证训练好的深度学习模型,合格后将模型作为流量分类器部署于真实网络结点;5)对真实网络环境中的流量进行解析分类并标注。本发明构建的模型利用了流量数据的时空特性,提高了流量分类的准确率,且减少分类器占用的资源,能满足当前网络环境下流量分类的需求,可应用于网络边缘 节点 中实现加密流量识别和恶意流量检测。,下面是基于时空特性相结合的深度学习流量分类方法专利的具体信息内容。

1.一种基于时空特性相结合的深度学习流量分类方法,其特征在于,包括如下:
(1)采集并标注原始网络流量负载数据,得到经过标注的网络流量负载数据:
(1a)从纯净网络节点处采集网络流量负载数据,并将其按照加密流量,未加密流量和恶意访问流量这三类进行分类,其中加密流量按照互联网中六大类应用进行细分标注,即Email、Chat、File、P2P、Streaming、和VoIP;
(1b)将本次采集的网络流量负载数据、以往时间点数据与预先构建的数据库进行随机混合,得到经过标注的网络流量负载数据库;
(2)基于经过标注的网络流量负载数据库,生成预处理后的流量图集:
(2a)将连续的网络流量利用抓包工具切分,以产生pcap格式的数据包,并存储;
(2b)对数据包进行协议除杂,即删除数据包内能直接反映流量服务类型的TCP协议和DCP协议相关数据,此部分数据在恶意访问流量或加密流量中为干扰项,在深度学习模型中会干扰模型的信息提取;
(2c)对数据包进行物理信息除杂,即删除物理地址相关信息,以避免深度学习模型误认为物理地址为某种服务相关的识别特征从而产生误分类;
(2d)删除空白数据包和重复的数据包,以避免对深度学习训练产生干扰;
(2e)统一数据包流量长度为900字节,即对超过900字节的流量包进行截取,不足900字节的流量包用0x00进行补齐;
(2f)将统一长度后的数据包做可视化处理,即将每个流量包转换为30*30大小的流量图,并最终将所有处理过的数据包合并为一个流量图集;
(3)构建依次由第一卷积层、第一局部归一化层、第二卷积层、第二局部归一化层、全连接层、LSTM层和softmax层连接组成的深度学习模型;
(4)对深度学习模型进行训练:
(4a)设置训练循环次数R;
(4b)将混合后的流量图集依次输入到第一卷积层、第一局部归一化层、第二卷积层和第二局部归一化层,以学习流量的空间特性,并对异常值进行归一化处理;
(4c)将(4b)处理过的数据输入到全连接层中,转换为LSTM模型可以接收的数据形式;
(4d)将(4c)所得的数据输入到LSTM层中,以学习流量的时间特性;
(4e)将(4d)所得的数据输入到softmax层,直接输出分类结果,即给出原始网络流量负载数据的标签;
(4f)根据(4e)得到的标签与训练集中的真实标签差异修改各网络层的权重及偏差;
(4g)重复(4b)-(4f),直到达到训练循环次数R,得到一种训练好的深度学习模型;
(5)对训练好的深度学习模型进行验证与真实网络结点部署:
(5a)按照真实网络分类的精度需求设置合格率P;
(5b)按照(1)-(2)的步骤,重新采集原始网络流量负载数据并生成流量图集;
(5c)将(5b)中生成的流量图集输入训练好的深度学习模型,得到分类结果;
(5d)将(5c)的分类结果与真实标签进行比较,得到正确样本数,得到深度学习模型分类结果的正确率A:
若A>P,即为合格,此时将模型作为流量分类器部署于真实网络结点;
否则,重新进行步骤(1)-(4);
(6)对真实网络中的加密流量进行分类,将经步骤(2)预处理过的真实网络流量图传入流量分类器,将流量分为恶意流量、普通流量和六大类加密流量,并按照分类结果进行标注,针对其中的普通流量,调用DPI工具和端口号,直接标注流量服务类型;
(7)保存部分采集的数据作为已有数据,用于下时间点对深度学习模型的更新。
2.根据权利要求1所述的方法,其特征在于:所述步骤(3)中构建的深度学习模型,其参数设置如下:
第一卷积层的卷积核大小为5*5,个数为32;
第二卷积层的卷积核大小为5*5,个数为64;
第一局部归一化层和第二局部归一化层的局部大小均为7,缩放因子均为0.00011,指数项均为0.75;
LSTM层的隐藏层神经元个数为256。
3.根据权利要求1所述的方法,其特征在于:所述(4f)中根据(4e)得到的标签与训练集中的真实标签差异修改各网络层的权重及偏差,实现如下:
(4f1)求出深度学习模型的输出值与真实值之间的损失L:
其中,N为训练样本个数,yi为真实值, 为网络输出值。
(4f2)将损失反向传回网络中,通过BP反向传播算法依次求得各网络层的损失函数Ln(wn,bn);
(4f3)根据(4f2)求得损失函数Ln(wn,bn),使用梯度下降法更新各网络层的权重wn及偏差bn,得到更新后的权重 及偏差
其中,α为学习率,0<α≤0.1。

说明书全文

基于时空特性相结合的深度学习流量分类方法

技术领域

[0001] 本发明属于计算机网络技术领域,尤其涉及一种流量分类方法,可应用于网络边缘节点中,实现加密流量识别和恶意流量检测。

背景技术

[0002] 当今网络流量环境日益复杂,如何继续保持高效快捷的恶意流量检测成为当今网络环境下一大挑战。流量识别或恶意流量检测的本质皆为分类问题,且传统的流量分类方法,如基于端口号或深度包检测技术,皆无法很好的在当今网络环境下满足任务需求;基于传统机器学习的方法也被用于应对加密流量识别及恶意流量监测,但繁杂的人为选取特征以及标记特征库这一步骤涉及人工成本和隐私信息等问题,使得此类方法的泛化能受到了制约;近些年刚刚兴起的基于深度学习的方法很好的解决了前人方法中的不足,但大多只利用了原始流量信息中时间或空间单一维度的信息,使得分类器的性能受到了制约,尤其是在应对同时解析加密流量和恶意流量检测任务时,很容易在训练时遇到瓶颈。参上,如何设计一个可以同时利用时空特性的深度学习分类器成为一个核心问题。
[0003] 上海交通大学邹福泰等人在其申请专利文献“一种基于深度学习的加密恶意流量的检测系统和方法”(申请号201811244932.5申请日2018.10.24申请公布号:CN 109104441A)中公开了一种基于深度学习的加密恶意流量检测系统。该方法的具体步骤是,第一步:通过流量分析软件对加密流量数据进行分析,获得三个日志文件,连接并获得一系列的聚合数据;第二步:从上述的聚合数据中提取一系列的特征数据;第三步:利用xgboost算法,对第二步中的特征数据进行训练,获得第一模型;第四步:对于每条流量聚合的所有server name,利用word2vec训练出一个词向量转换模型,然后转换成词向量矩阵;第五步:
将server name转换成词向量矩阵后,用LSTM进行训练,获得第二模型;第六步:利用数据包的payload中的特征,构建流量图,获得第三模型;第七步:将获得的三种模型,以不同比例进行加权,获得最终的恶意流量概率。该方法存在的不足之处是,在第七步获得最终恶意流量概率时需要将三种模型以不同比例进行加权,但对于如何分配三种模型的加权比例,该方法并没有明确指出,而在实际应用过程中,传统的人为干涉加权决策会破坏深度学习的端对端结构,从而削减了深度学习本身的自学习能力;此外,该方法虽然用到了xgbootst,CNN,LSTM三个模型,但是也只是简单的合并其分类概率,并没有完全利用到流量的时空特征来实现分类。综上,因此该方法在实现加密恶意流量检测时具有很大的局限性。
[0004] 中国科学院声学研究所在其申请的专利文献“一种基于表征学习的网络流量分类的方法及装置”(申请号:201711189690申请日:2018-06-15申请公布号:CN201711189690.XA)中公开了一种基于表征学习的网络流量分类的方法及装置。该方法的具体步骤是,第一步:将获取到的网络流量数据进行预处理,其中包括将获取到的网络流量数据进行流量切分以及将切分后的流量数据的长度进行统一,并将经过切分和长度统一处理后的网络流量数据进行编码,生成特定格式的数据;第二步:对预处理后的网络流量数据使用表征学习中的卷积神经网络算法进行特征提取,将所述网络流量数据生成网络流向量;第三步:根据所述网络流向量对所述网络流量数据进行分类,可实现对网络流量的分类。该方法存在的不足之处是,只结合了流量所有的空间特性,而对于流量本身时序特性的利用有一定的缺失,使其在分类中准确率较低,容易出现误判;该方法需要人为对流量的特征进行提取,其所需要耗费的人工和时间成本都比较大,无法做到端到端的网络流量分类。
综上,该方法在实现加密恶意流量检测时具有很大的局限性。

发明内容

[0005] 本发明的目的在于针对上述现有技术的不足,提出一种基于时空特性相结合的深度学习流量分类方法,以提高流量分类的准确率,减少分类器占用的资源,满足当前网络环境下流量分类的需求。
[0006] 为实现上述目的,本发明的技术方案包括如下步骤:
[0007] (1)采集并标注原始网络流量负载数据,得到经过标注的网络流量负载数据:
[0008] (1a)从纯净网络节点处采集网络流量负载数据,并将其按照加密流量,未加密流量和恶意访问流量这三类进行分类,其中加密流量按照互联网中六大类应用进行细分标注,即Email、Chat、File、P2P、Streaming、和VoIP;
[0009] (1b)将本次采集的网络流量负载数据、以往时间点数据与预先构建的数据库进行随机混合,得到经过标注的网络流量负载数据库;
[0010] (2)基于经过标注的网络流量负载数据库,生成预处理后的流量图集:
[0011] (2a)将连续的网络流量利用抓包工具切分,以产生pcap格式的数据包,并存储;
[0012] (2b)对数据包进行协议除杂,即删除数据包内能直接反映流量服务类型的TCP协议和DCP协议相关数据,此部分数据在恶意访问流量或加密流量中为干扰项,在深度学习模型中会干扰模型的信息提取;
[0013] (2c)对数据包进行物理信息除杂,即删除物理地址相关信息,以避免深度学习模型误认为物理地址为某种服务相关的识别特征从而产生误分类;
[0014] (2d)删除空白数据包和重复的数据包,以避免对深度学习训练产生干扰;
[0015] (2e)统一数据包流量长度为900字节,即对超过900字节的流量包进行截取,不足900字节的流量包用0x00进行补齐;
[0016] (2f)将统一长度后的数据包做可视化处理,即将每个流量包转换为30*30大小的流量图,并最终将所有处理过的数据包合并为一个流量图集;
[0017] (3)构建依次由第一卷积层、第一局部归一化层、第二卷积层、第二局部归一化层、全连接层、LSTM层和softmax层连接组成的深度学习模型;
[0018] (4)对深度学习模型进行训练:
[0019] (4a)设置训练循环次数R;
[0020] (4b)将混合后的流量图集依次输入到第一卷积层、第一局部归一化层、第二卷积层和第二局部归一化层,以学习流量的空间特性,并对异常值进行归一化处理;
[0021] (4c)将(4b)处理过的数据输入到全连接层中,转换为LSTM模型可以接收的数据形式;
[0022] (4d)将(4c)所得的数据输入到LSTM层中,以学习流量的时间特性;
[0023] (4e)将(4d)所得的数据输入到softmax层,直接输出分类结果,即给出原始网络流量负载数据的标签;
[0024] (4f)根据(4e)得到的标签与训练集中的真实标签差异修改各网络层的权重及偏差;
[0025] (4g)重复(4b)-(4f),直到达到训练循环次数R,得到一种训练好的深度学习模型;
[0026] (5)对训练好的深度学习模型进行验证与真实网络结点部署:
[0027] (5a)按照真实网络分类的精度需求设置合格率P;
[0028] (5b)按照(1)-(2)的步骤,重新采集原始网络流量负载数据并生成流量图集;
[0029] (5c)将(5b)中生成的流量图集输入训练好的深度学习模型,得到分类结果;
[0030] (5d)将(5c)的分类结果与真实标签进行比较,得到正确样本数,得到深度学习模型分类结果的正确率A:
[0031] 若A>P,即为合格,此时将模型作为流量分类器部署于真实网络结点;
[0032] 否则,重新进行步骤(1)-(4);
[0033] (6)对真实网络中的加密流量进行分类,将经步骤(2)预处理过的真实网络流量图传入流量分类器,将流量分为恶意流量、普通流量和六大类加密流量,并按照分类结果进行标注,针对其中的普通流量,调用DPI工具和端口号,直接标注流量服务类型;
[0034] (7)保存部分采集的数据作为已有数据,用于下时间点对深度学习模型的更新。
[0035] 本发明与现有技术相比具有以下优点:
[0036] 第一,由于本发明基于深度学习,其端到端的结构规避了人为选取标记特征的繁杂工序,避开了涉及隐私的信息,相对于传统的方法以及基于机器学习的方法,不仅节省了人工和时间成本,而且具有更好的泛化能力和适用性;
[0037] 第二,本发明利用CNN和LSTM两种不同的深度学习网络分别从空间和时间两个信息维度对原始流量进行特征学习,克服了以往只能单独利用时间或空间特性的缺点,从而获得相对于以往其他基于深度学习的方法更好的性能和更高的准确性;
[0038] 第三,本发明在深度学习的基础上,结合传统方法中识别准确率最好的DPI技术与基于端口号的方法对普通流量进行标注,使得整个分类过程更加高效准确;
[0039] 第四,相对于以往方法,本发明对于存储资源的需求更小,因此更适用于部署在边缘节点。
[0040] 第五,本方法由于以深度学习结构作为基础,因此不论是标注加密流量还是识别恶意访问流量都可以做到实时性,从而达到更好的服务体验和服务质量附图说明
[0041] 图1为本发明的实现流程图
[0042] 图2为本发明中对流量预处理的子流程图;
[0043] 图3为本发明中构建的深度学习网络结构图。

具体实施方式

[0044] 下面结合附图对本发明的实施例做进一步的详细描述。
[0045] 参照图1,对实施例的实施步骤如下。
[0046] 步骤1,采集并标注原始网络流量负载数据。
[0047] 1.1)从纯净网络节点处采集网络流量负载数据,并将其按照加密流量,未加密流量和恶意访问流量这三类进行分类,其中加密流量按照互联网中六大类应用进行细分标注,即Email、Chat、File、P2P、Streaming、和VoIP;
[0048] 1.2)将本次采集的网络流量负载数据、以往时间点数据与预先构建的数据库进行随机混合,以扩充数据库的内容,减少深度学习模型训练后的盲点,得到经过标注的网络流量负载数据库。
[0049] 步骤2,基于经过标注的网络流量负载数据库,生成预处理后的流量图集。
[0050] 参照图2,本步骤的具体实现如下:
[0051] 2.1)利用抓包工具切分网络流量负载数据库中的连续流量,并存储为pcap格式的文件;
[0052] 2.2)对步骤2.1)中所得流量数据进行协议除杂,即删除数据包内直接与传输控制协议TCP、发现和基本配置协议DCP相关的数据,得到协议除杂后的流量包,这些相关数据为恶意访问流量或加密流量中的干扰项,这些干扰项会影响深度学习模型的信息提取能力;
[0053] 2.3)对协议除杂后的流量包进行物理信息除杂,即删除物理信息相关数据,得到除杂后的流量包,其中物理信息主要指的是MAC地址,由于互联网中有些主机只负责某一类应用的流量传递,此情形下MAC地址会被深度学习模型捕捉并认为与判断某种网络服务类型有关,故此处的MAC地址在预处理中应当被删除;
[0054] 2.4)删除网络流量负载数据库中的空白流量包和重复流量包,这些流量包会干扰深度学习模型的训练;
[0055] 2.5)将经过2.4)处理后网络流量负载数据库中的流量包长度统一为900字节,即对超过900字节的流量包进行截取,不足900字节的流量包用0x00进行补齐;
[0056] 2.6)对经过2.5)处理后网络流量负载数据库中的流量包做可视化处理,即将每个流量包内的900个字节映射到0到1的灰度值上,并生成30*30大小的流量图;
[0057] 2.7)将经过2.6)处理后的所有流量图加入实时流量图数据库,最终完成实时流量图数据库的建立。
[0058] 步骤3,构建深度学习模型。
[0059] 该深度学习模型包括两个卷积层、局部归一化层、一个全连接层、一个LSTM层和一个softmax层,其结构关系如图3所示;
[0060] 参照图3,本步骤构建的深度学习模型依次为:第一卷积层、第一局部归一化层、第二卷积层、第二局部归一化层、全连接层、LSTM层和softmax层,其参数设置如下:
[0061] 第一卷积层的卷积核大小为5*5,个数为32;
[0062] 第二卷积层的卷积核大小为5*5,个数为64;
[0063] 第一局部归一化层和第二局部归一化层的局部大小均为7,缩放因子均为0.00011,指数项均为0.75;
[0064] LSTM层的隐藏层神经元个数为256。
[0065] 步骤4,对深度学习模型进行训练。
[0066] 4.1)设置训练循环次数R;
[0067] 4.2)将实时流量图数据库中的流量图依次输入到第一卷积层、第一局部归一化层、第二卷积层和第二局部归一化层,通过两个卷积层学习流量的空间特性,两个局部归一化层对异常值进行归一化处理;
[0068] 4.3)将4.2)处理过的数据输入到全连接层中转换为LSTM模型的输入数据;
[0069] 4.4)将4.3)所得的数据输入到LSTM层中,以学习流量的时间特性,并将所得的数据输入到softmax层,直接输出分类结果,即给出原始流量负载数据的标签;
[0070] 4.5)根据4.4)原始流量负载数据标签值与真实标签之间的差异,修改各网络层的权重wn及偏差bn:
[0071] 4.5.1)求出4.4)所得原始流量负载数据标签值与真实标签之间的损失L:
[0072]
[0073] 其中,N为训练样本个数,yi为真实标签, 为模型输出标签;
[0074] 4.5.2)基于4.5.1)求得的损失L,通过BP反向传播算法依次求得各网络层的损失Ln(wn,bn);
[0075] 4.5.3)根据4.5.2)中求得各层损失函数Ln(wn,bn),使用梯度下降法更新各网络层的权重wn及偏差bn,得到一次更新后的权重 及偏差
[0076]
[0077]
[0078] 其中, 表示第n层网络更新后的权值,wn表示更新前的权值,
[0079] 表示第n层网络更新后的偏差,bn表示更新前的偏差,
[0080] Ln(wn,bn)为4.5.2)中得到的第n层网络的损失,α为学习率;
[0081] 4.6)计算本轮训练过后模型分类的准确率T:
[0082]
[0083] 4.7)重复4.2)-4.6),直到达到训练循环次数R,得到训练好的深度学习模型。
[0084] 本实例中,设置训练循环次数R=2000000,经过多次仿真,得到的最优准确率T=99.96%。
[0085] 步骤5,对深度学习模型进行验证与真实网络结点部署。
[0086] 5.1)按照真实网络分类的精度需求设置合格率P;
[0087] 5.2)按照步骤1和步骤2,重新采集原始网络流量负载数据并生成流量图集;
[0088] 5.3)将5.2)中生成的流量图集输入到训练好的深度学习模型,得到分类结果;
[0089] 5.4)将分类结果与真实标签进行对比,得到分类正确样本数,并计算深度学习模型分类结果的正确率A:
[0090]
[0091] 5.5)将分类结果正确率A与合格率P进行比较:
[0092] 若A>P,即深度学习模型合格,并将此模型作为流量分类器部署于真实网络结点;
[0093] 否则,重新进行步骤1到步骤5,直到A>P。
[0094] 步骤6,对真实网络中的流量进行分类与标注。
[0095] 6.1)对真实网络流量进行步骤2的预处理,得到真实网络流量图;
[0096] 6.2)将真实网络流量图输入到流量分类器,得到恶意流量、普通流量和六大类加密流量的分类结果;
[0097] 6.3)根据分类结果对流量进行标注:
[0098] 若分类结果为恶意访问流量,则标记为恶意流量,并上报给入侵检测系统IDS预警;
[0099] 若分类结果为未加密流量,则调取此流量的原始信息,并根据深度包检测技术DPI和端口号技术进行标注;
[0100] 否则,根据分类结果,将其余加密流量标注为Email、Chat、File、P2P、Streaming和VoIP六大流量服务类型。
[0101] 步骤7,对步骤6中部分真实网络流量数据进行保存,以备下一时间点模型参数的更新,使得流量分类器与真实网络环境更加匹配,并更合理地应对新出现的恶意流量和加密流量。
[0102] 以上描述仅是本发明的一个具体实例,并未构成对本发明的任何限制,显然对于本领域的专业人士来说,在了解了本发明内容和原理后,都可能在不背离本发明原理、结构的情况下,进行形式和细节上的各种修改和改变,但是这些基于本发明思想的修正和改变仍在本发明的权利要求保护范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈