基于条件生成式对抗网络的网络背景流量生成方法和系统与流程

文档序号:17923512发布日期:2019-06-15 00:16阅读:432来源:国知局
基于条件生成式对抗网络的网络背景流量生成方法和系统与流程

本发明涉及网络安全和网络仿真领域,具体涉及一种基于条件生成式对抗网络(cgan)的网络背景流量生成方法和系统。



背景技术:

网络流量生成技术多用于网络测试。从网络诞生初期至今,随着网络规模和复杂性的不断增长,网络流量生成技术也在不断的发展。从网络流量生成方法上,可以分为3类方法:基于统计模型的生成方法、基于流量特征的生成方法、基于应用/会话的生成方法。

1、基于统计模型的生成方法

该方法基于统计分析理论,使用泊松、on/off、fbm/fgn或多重分形等统计模型,刻画网络流量分布规律,并基于这些模型生成模拟流量。该类方法的原理为:通过概率统计等理论分析,建立网络流量的统计模型,并基于统计模型生成模拟流量。该类工具的组成结构一般可以分为两部分:统计模型、网络流量生成工具。其中,统计模型是核心,反映了流量生成的核心思想;网络流量生成工具负责基于统计模型,生成模拟流量。该类工具采用的技术手段主要是概率论模型,包括:泊松模型、指数分布、on/off模型、weibull分布、pareto分布、高斯分布等。该类工具的流量生成过程包括设置统计模型的初始化参数,配置统计模型;然后基于统计模型生成模拟流量。

2、基于流量特征的生成方法

根据流量特征的粒度,该类方法又可以分为2个子类:数据包级和流级。

基于数据包级特征的流量生成:该方法往往是通过数据包回放来实现。涉及到的流量包级特征为:数据包间隔到达时间、数据包大小等。该方法只考虑单种数据包的基本特征,优点是:简单、运算量低;缺点是:逼真度低,没有考虑各种数据包之间的相互影响、忽略了协议间和单种协议内部的流量特征。数据流级的流量生成:数据包是网络流量的基本单位,数据流包括多个数据包。数据流是针对面向连接的网络协议而言,一个流包括建立连接、连接持续、关闭连接的整个过程。在tcp/ip协议簇里,流就是指tcp流。通过tcp流重放生成模型背景流量。该方法的优点为生成的流量数据集相比包级流量较小;缺点是缺少与用户行为习惯、应用程序特征和操作系统相关的特征,并且无法生成非tcp协议的流量。

会话级的流量生成。会话是指服务器与客户机之间的一次具有实际含义的交互过程。该方法从真实网络流量中提取一些关于网络连接的特征信息,包括:会话持续时间、会话间隔到达时间,并基于这些特征信息创建很多唯一的会话数据包。通过重放这些新建的会话数据包,实现会话级的流量仿真。该方法的优点是:能够生成具有语义的仿真流量;缺点是相对复杂。基于流量特征的生成流量方法的原理是通过分析真实网络流量中的包/流/会话特征,建立流量特征模型,并基于特征模型生成模拟流量。该类工具的组成结构一般可以分为流量特征模型和网络流量生成工具。其中,流量特征模型是核心,包括了从真实网络流量中提取的各种流量特征;网络流量生成工具负责基于流量特征模型,生成模拟流量。该类工具的流量生成过程包括以下几个步骤:分析真实网络流量的包/流/会话级特征,建立流量特征模型;根据流量特征模型,生成数据包、数据流或者会话。该类工具采用的技术手段包括贝叶斯概率论等概率分析理论、数据包重放工具、特定协议的命令脚本等。

3、基于应用的生成方法

该方法面向特定的应用进行概率分析,并使用特定应用命令重放的方式,生成模型流量。该方法的优点是简单;缺点是只能生成特定应用的流量,不符合真实的网络背景流量的复杂性。该类方法的原理是通过分析真实网络流量中的应用特征,并基于应用特征生成模拟流量。相对包级/流级/会话级的流量生成器,该类方法相对高层,研究特定应用的流量特征。该类工具的组成结构一般可以分为应用流量特征分析模块和网络流量生成工具。其中,应用流量特征分析模块是核心,包括了从真实网络流量中提取的各种应用流量特征;网络流量生成工具负责基于应用流量特征,生成模拟流量。该类工具在生成流量的过程中,首先分析真实网络中的应用流量特征,然后基于应用流量特征,生成特定应用对应的数据包。该类工具采用的技术手段包括:tcpdump等数据包抓取工具、贝叶斯概率论等概率分析理论、命令执行脚本等。

上述方法存在以下问题:

(1)网络流量模型难以准确反映真实的网络流量特征。

无论是基于概率统计理论推导网络流量统计模型,还是基于真实网络流量特征分析提取网络流量特征模型,在网络流量仿真的逼真度方面均存在较大问题。原因在于真实网络流量非常复杂,与时间、地点、用户、应用软件、操作系统、突发事件等因素关系密切。使用一个统计模型或者特征模型,难以描述真实网络流量。尤其是在人工提取网络流量特征时,会根据经验指定几种特定的流量特征,例如:包/流到达时间、包/流大小、数据流持续时间、不同会话之间的转换概率等。对于提出的这几个流量特征是否能完全反应真实网络流量特征,或者在真实网络流量中是否存在尚未发现的隐含特征,无法给出明确的结论。而从认知的本质出发推断,对于复杂而多样化的网络流量,存在更多尚未发现的隐含特征的可能性非常大。

(2)真实网络特征的提取非常繁琐。

如果想在流量生成中体现出时间、地点、用户、应用软件、事件等因素的影响,则需从真实网络流量中提取与时间、地点、用户、应用、事件相关的流量特征。而时间、地点、用户、应用、事件均是五花八门,且存在一定的不可预测性。不仅真实网络流量特征提取工作非常繁琐,而且也难以准确的匹配真实网络流量。

(3)上述网络生成的方法易用性非常差。

在基于统计模型的生成方法、基于流量特征的生成方法、基于应用的生成方法中,均需用户深度参与到流量生成中,需要人工干预的过程比较多。尤其是网络流量建模过程耗费用户时间和精力,而且不能保证效果。



技术实现要素:

针对上述问题,本发明提出一种,基于条件生成式对抗网络的网络背景流量生成方法,包括:数据获取步骤,获取的网络流量数据及条件信息,并向量化为真实流量;模型生成步骤,以该真实流量得到初始生成模型和初始判别模型,并通过条件生成式对抗网络对该初始生成模型和该初始判别模型进行训练,以得到生成模型;流量生成步骤,通过该生成模型以随机向量生成模拟背景流量。

本发明所述的网络背景流量生成方法,其中所述数据获取步骤具体包括:获取步骤,通过网络连接设备的镜像端口获取该网络流量数据和该条件信息,并将该网络流量数据存储为多个数据包,每个该数据包的长度为m字节;向量化步骤,在每个该数据包的数据域末尾填充n个0,向量化为1518维的随机噪声向量,并在该随机噪声向量后串联1维的该条件信息,以形成1519维的该真实流量;分类步骤,将该真实流量分为训练集、验证集和测试集,其中该训练集用于确定该初始生成模型和该初始判别模型的系数,该验证集用于验证该初始生成模型的损失函数,该测试集用于测试该生成模型的效果;其中,该数据包为pcap格式或二进制格式,m、n为整数,64≤m≤1518,n=1518-m,该条件信息为获取该网络流量数据时的时间信息。

本发明所述的网络背景流量生成方法,其中该生成模型和该判别模型为长短期记忆网络模型;该判别模型的长短期记忆网络模型的输出层后,还包括数据包解析单元和该输出层的softmax函数。

本发明还涉及一种基于条件生成式对抗网络的网络背景流量生成系统,包括:数据获取模块,用于得到真实流量;其中获取网络流量数据及条件信息,并向量化为该真实流量;模型生成模块,用于以该真实流量得到初始生成模型和初始判别模型,并通过条件生成式对抗网络该判别模型对该初始生成模型和该初始判别模型进行训练,以得到生成模型;流量生成模块,用于通过该生成模型以随机向量生成模拟背景流量。

本发明所述的网络背景流量生成系统,其中所述数据获取模块具体包括:获取模块,用于通过网络连接设备的镜像端口获取该网络流量数据和该条件信息,并将该网络流量数据存储为多个数据包,每个该数据包的长度为m字节;向量化模块,用于在每个该数据包的数据域末尾填充n个0,向量化为1518维的随机噪声向量,并在该随机噪声向量后串联1维的该条件信息,以形成1519维的该真实流量;分类模块,用于将该真实流量分为训练集、验证集和测试集,其中该训练集用于确定该初始生成模型和该初始判别模型的系数,该验证集用于验证该初始生成模型的损失函数,该测试集用于测试该生成模型的效果;其中,该数据包为pcap格式或二进制格式,m、n为整数,64≤m≤1518,n=1518-m,该条件信息为获取该网络流量数据时的时间信息。

本发明所述的网络背景流量生成系统,其中该生成模型和该判别模型为长短期记忆网络模型,该判别模型的长短期记忆网络模型的输出层后,还包括数据包解析单元和该输出层的softmax函数。

本发明的网络背景流量生成方法,不需要人工建立网络流量模型,而是通过大量的训练数据,通过cgan训练得到网络流量模型,需要人工干预的过程比较少,且能够逼真的反映真实网络流量特征。通过不同场景的真实网络流量训练得到不同场景的生成模型,能够应对真实网络流量的复杂性和多样性。

本发明的创新之处主要在于cgan技术在网络流量生成方面的应用创新,并没有对cgan技术本身进行改进。

附图说明

图1是本发明的一种基于条件生成式对抗网络的网络背景流量生成系统示意图。

图2是本发明的一种基于条件生成式对抗网络的网络背景流量生成方法流程图。

图3是本发明的一种基于条件生成式对抗网络的网络背景流量的数据包的帧结构示意图。

图4是lstm网络结构示意图。

图5是lstm网络横向结构示意图。

图6是lstm网络隐层神经元网络结构示意图。

图7是本发明的一种基于条件生成式对抗网络的网络背景流量生成方法的判别模型结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明提出的基于条件生成式对抗网络的网络背景流量生成方法和系统进一步详细说明。应当理解,此处所描述的具体实施方法仅仅用以解释本发明,并不用于限定本发明。

通过对流量生成的研究发现,现有技术中的缺陷是由真实网络流量的复杂性导致的。随着计算机网络的飞速发展,真实网络流量的复杂性和多样性也越来越高。主要体现在以下几个方面:(1)时间因素。一年里各个月份的流量特征不同(如节假日月份);一月里各天的流量特征不同(如周末);一天里各个时间段的流量特征不同;(2)地点因素。不同单位类别的流量特征不同(如政府、公司、学校等);工作场所和住宅的流量特征不同;固定场所和交通工具(如地铁、汽车)上的流量特征不同;(3)用户因素。网络用户具有多样性与多变性。网络用户的职业类别不同,产生的网络流量不同;不同用户使用网络的行为习惯不同,造成流量具有不同的使用特征和顺序;同一用户在不同时间、地点、背景所产生的网络流量也不同;同一用户使用网络的行为具有一定程度的不可预测性;(4)应用软件因素。计算机软件和智能终端app采用的协议、种类、版本各不相同,而且每天都在出现各种新的应用软件,造成网络流量复杂性高;(5)操作系统因素。不同操作系统产生的网络背景流量不同,例如:存活时间(ttl,timetolive)和tcp初始序列号(isn,initialsequentialnumber)与操作系统种类相关。(6)突发事件因素。突发事件在网络上的传播,会影响网络流量。例如:突发新闻事件、恶意病毒传播、网购促销活动等事件都会对网络流量产生影响。由于上述原因,网络流量模型建模是流量生成中的重难点问题之一。

深度学习中的条件生成式对抗网络(cgan,conditionalgenerativeadversarialnetworks)通过一定的手段,模拟出一种数据的概率分布的生成器,使得这种概率分布与某种观测数据的概率统计分布一致或尽可能接近。cgan模型是生成式对抗网络(gan,generativeadversarialnetworks)模型的扩展,生成器和判别器的输入信息中都增加额外的条件信息y。y可以是任意信息,例如类别信息、时间信息、地点信息、用户信息等。

本发明引入深度学习中的cgan模型,利用海量的训练数据,对cgan模型进行训练,得到能够反映真实流量特征的cgan模型,基于cgan模型生成用户需要的模拟流量。其中,cgan的原理是基于生成模型生成流量,将真实流量与生成流量输入判别模型进行二元判别。如果判别模型能够判别成功,则通过反向传播和梯度下降算法迭代优化生成模型;如果判别模型不能够准确判别,则通过反向传播和梯度下降算法迭代优化判别模型。在判别模型中,引入数据包解析模块,与样本数据共同进行训练判别模型。通过生成模型和判别模型的二元极小极大博弈,达到两者的纳什均衡状态,即得到流量生成模型。

图1是本发明的一种基于条件生成式对抗网络的网络背景流量生成系统示意图。如图1所示,本发明的网络背景流量生成系统主要是生成模型和判别模型。数据包括:随机向量、真实流量、模拟背景流量等。其中,生成模型用于基于随机向量生成模拟背景流量;判别模型用于对输入的模拟背景流量和真实流量进行真伪辨别。

图2是本发明的一种基于条件生成式对抗网络的网络背景流量生成方法流程图。如图2所示,本发明的基于cgan模型的网络背景流量生成方法包括以下步骤:

步骤s1,数据获取、清理和向量化,通过交换机和路由器的镜像端口,捕获真实流量,可以使用pcap等文件格式保存。捕获的真实流量用于cgan模型训练、验证和测试;

步骤s2,模型训练,基于cgan模型,使用海量的真实网络流量和条件信息,对cgan模型进行训练,得到生成模型和判别模型;

步骤s3,基于训练好的生成模型,生成模拟背景流量。

具体来说,步骤s1具体包括:

步骤s11,数据获取。设置采集机连接交换机或路由器的镜像端口获取数据,通过libpcap或者dpdk等手段,将捕获的数据存储下来。这时,得到的网络流量数据是数据包,存储形式可以为pcap或者二进制等格式。捕获的数据包主要包括四种格式:ethernetv2、ethernet802.3raw(novellethernet)、ieee802.3/802.2llc(ethernet802.3sap)、ieee802.3/802.2snap。图3是本发明的一种基于条件生成式对抗网络的网络背景流量的数据包的帧结构示意图。如图3所示,各种数据包的帧结构都由不同的实体为不同的目的而设计,可以共存于一个网络中,但互不兼容,当用不同封装类型的工作站要交换信息时,必须通过支持的路由器来通信。

步骤s12,数据向量化。从真实网络中抓取的数据包长度在64字节至1518字节之间。为了方便处理,将所有数据包扩充至1518字节,不足1518字节的数据包在数据域末尾填零(padding)。因此,数据包可以表示为一阶张量:package=[byte[0],byte[1],……,byte[1517]]。条件信息包括时间、地点、用户群体、突发事件共四类信息。综合考虑这四类条件对网络流量的影响程度以及易操作性,仅考虑时间的影响,使用二维一阶张量表示y=[time]。其中,time按小时取值,分别为0至23点。最终输入到生成模型中的真实流量为1518维的随机噪声z和1维的条件信息向量y的串联,即1519维的向量input=[byte[0],byte[1],...,byte[1517],time]。

步骤s13,样本数据分类。根据捕获的真实流量的用途,将真实流量分为三个集合:训练集、验证集和测试集。其中,训练集是用来学习的样本集,通过训练集来确定cgan网络中的各个待定的系数;验证集用来调整分类器参数的样本集,在训练过程中,生成模型会立刻在验证集进行验证,以检查生成模型的损失函数值是否会下降,准确率是否在提高,验证集是预防过拟合的手段之一,防止损失函数降低到一定程度之后又开始攀升的情况;测试集在完成对生成模型的训练后为测试生成模型的能力而设置。于本发明的实施例中,训练集、验证集和测试集的比例设置为60%、20%和20%。

本发明的cgan模型包括生成模型和判别模型。

一、生成模型

生成模型使用常规长短时记忆网络(longshort-termmemory,lstm)。常规lstm是指sepphochreiter和jurgenschmidhuber提出的标准lstm结构。针对不同的应用场景,有研究者提出了其他变形结构的lstm网络。本发明中采用常规lstm即可满足需求。图4是lstm网络结构示意图。如图4所示,lstm网络由一个方阵组成,包括两个维度:深度和时间。时间维度反映了输入序列之间的影响,深度维度反映了不同数据表现层级之间的影响。相比较卷积神经网络(convolutionalneuralnetworks,cnn)而言,lstm增加了时间维,对应于网络流量中的时间序列关系。

图5是lstm网络横向结构示意图。如图5所示,lstm网络的输入层与输出层不存在横向关系。只有隐藏层存在横向关系。在隐藏层中,横向结构反映时间维输入序列之间的关系。

lstm网络的纵向结构反映了不同深度的lstm网络层级之间的迭代优化关系。在深度维度上,lstm网络可以分为输入层、隐藏层和输出层。其中,输入层神经元的输入为x0,并将x0直接输出为c0和h0,x0为符合随机高斯噪声分布的1518维随机噪声;与输入层相邻的隐藏层神经元输入c0、h0,都对应于输入层神经元的输出x0,然后各个深度的隐藏层神经元对ht进行反复优化,各个神经元无论从纵向还是横向的神经元都是权重共享;输出层直接输出h0、h1、hn及对应判别模型中的输入流量序列。

图6是lstm网络隐层神经元网络结构示意图。如图6所示,每个神经元有三个输入,分别是样本数据向量xt、长时记忆向量ct-1、短时记忆向量ht-1。其中,xt和ht-1通过拼接之后输入到神经元构成神经元记忆门。每个神经元有两个输出:长时记忆向量ct-1、短时记忆向量ht-1。图5中每个灰色的框代表一个前馈神经网络,从左至右依次标为第1、2、3、4个前馈神经网络。根据实际数据训练中的不断尝试与调优,第1、2、4个前馈神经网络的激活函数采用sigmoid,第3个前馈神经网络的激活函数采用tanh。num_units表示每个小黄框内的隐藏神经元个数。

下面分别介绍lstm网络的隐层神经元网络:

1、长期信息遗忘机制。第一个神经元记忆门ft=σ(wf·[ht-1,xt]+bf)是向量,每个向量的值在[0,1]区间里,表示长期记忆信息向量ct-1里的每个元素被遗忘的比例;

2、新信息输入门。第二个神经元信息输入门it=σ(wi·[ht-1,xt]+bi)为向量,向量中的每个元素为[0,1]区间里的一个数值,表示新输入的向量中的每个元素信息被添加到长期记忆里的比例;

3、生成新的向量表示长期记忆信息;

4、信息输出门。神经元除了输出长期记忆ct之外,重点是将长期记忆按一定比例转换成短时记忆ht=ot*tanh(ct),并输出到下一层网络和本层网络的下一输入序列;其中,ot=σ(wo·[ht-1,xt]+bo)。

lstm网络同一隐藏层的各个神经元的权重是共享的,即wf、bf、wi、bi、wc、bc、wo、bo在同一隐层都是相同的。其中,wf和bf分别表示第一个神经元记忆门的权重和偏移量;wi和bi分别表示信息输入门的权重和偏移量;wc和bc分别表示生成新信息的权重和偏移量;wo和bo分别表示信息输出门的权重和偏移量。

二、判别模型

图7是本发明的一种基于条件生成式对抗网络的网络背景流量生成方法的判别模型结构示意图。如图7所示,判别模型在lstm网络模型的输出层后面加上数据包解析单元与输出层的softmax函数。成成模型和判别模型相互独立,但都是基于lstm网络模型实现。在判别模型中,具有数据包解析功能,如果数据包解析错误,则识别出其为伪造数据。

三、cgan模型的优化过程

cgan模型没有损失函数,优化过程是一个“二元极小极大博弈”问题:

(1)式中,v(d,g)为生成模型和判别模型的评价函数;是指使判别模型和生成模型的能力,即判别模型的判别能力足够强,同时生成模型的生成数据被判别模型识别准确的概率最小;x是指输入的真实数据;z是指随机噪声;x~pdata和z~pz(z)分别指x和z分别满足各自的分布律;d(x)是指真实数据x被判别准确的概率;g(z)是指一个z噪声输入到生成模型得到的数据;d(g(z))是针对g(z)生成数据的判别准确的概率。

在训练过程中,以评价函数的最大值为目标,对判别模型和生成模型进行交替训练,两者的目的也不一样。判别模型的训练目的是:增大d(x),即增大判别模型正确判别的能力;生成模型的训练目的是:增大1-d(g(z)),即伪造出一些数据让判别模型以为是真的。其中,d(g(z))是针对g(z)生成数据的判别准确的概率。

cgan模型隐式的定义了一个概率分布pg,并希望pg收敛到数据真实分布pdata。在这个极小极大博弈模型中,当且仅当pg=pdata时存在最优解,即达到纳什均衡,此时生成模型恢复了训练数据的分布,判别模型再也判别不出结果,准确率等于50%即随机猜中。

cgan模型在gan模型的基础上,增加了条件信息y。评价函数为:条件可以是类别标签,也可以是其他的多模态信息等。这里采用时间信息,一天分为24小时,每小时对应于时间信息中的一个值。

具体来说,cgan模型训练的迭代优化算法包括:

1、gan模型的梯度更新算法

如上所述,评价函数为(1)式,采用如下最小批梯度下降算法进行。任何梯度更新算法都可以,这里采用动量梯度更新算法。算法如下:

算法输入:超参数k和m。超参数是指由人工设置的参数,而不是通过训练得到的参数。其中,参数k表示:训练k次生成模型,训练一次判别模型;参数m表示:最小批中的样本数量。

算法过程:

for训练样本数量do

fork步生成模型训练do▽

从给定的噪音先验分布pg(z)(采用随机高斯噪声分布)中,生成m个噪音样本{z(1),z(2),...,z(m)}

提取m个真实样本数据{x(1),x(2),...,x(m)}

通过随机梯度上升算法,更新判别模型:

endfor

从给定的噪音先验分布pg(z)中,生成m个噪音样本{z(1),z(2),...,z(m)}

通过随机梯度下降算法,更新生成模型:

endfor

算法输出:生成模型和判别模型的权重参数。

(2)lstm前向传播算法如下

因为生成模型和判别模型均采用lstm模型。判别模型在lstm模型后面增加了softmax激励函数。下面介绍lstm网络的前向传播算法。

1)更新记忆门输出:f(t)=σ(wfh(t-1)+ufx(t)+bf)

2)更新输入门两部分输出:

i(t)=σ(wih(t-1)+uix(t)+bi)

3)更新细胞状态:

4)更新输出门输出:

o(t)=σ(woh(t-1)+uox(t)+bo)

h(t)=o(t-1)⊙tanh(c(t))

5)更新当前序列索引预测输出:

(3)lstm后向传播算法

lstm反向传播算法,通过梯度下降法迭代更新所有参数:(wf,uf,bf)、(wi,ui,bi)、(wc,uc,bc)、(wo,uo,bo)。关键点在于计算所有参数基于损失函数的偏导数。

在循环神经网络(recurrentneuralnetwork,rnn)中,为了反向传播误差,通过隐藏状态h(t)的梯度δ(t)一步步向前传播。在lstm中也是类似,不同的是这里有两个隐藏状态h(t)和c(t)。因此,这里定义两个δ(t),即:

其中,反向传播时只使用了变量仅为帮助在某一层计算用,并没有参与反向传播。

而在最后序列索引位置τ的为:

接着由反向推导

的梯度由本层的输出梯度误差决定,即:的反向梯度误差由前一层的梯度误差和本层的从h(t)传回来的梯度误差两部分组成,即:

有了然后计算(wf,uf,bf)、(wi,ui,bi)、(wc,uc,bc)、(wo,uo,bo)等参数。以wf的梯度计算过程为例,

当cgan模型的参数训练完成后,即得到生成模型。在生成模型模拟流量的过程中,以随机向量输入至该生成模型,得到模拟背景流量。

本发明的网络背景流量生成方法,是基于已经训练好的生成模型,以随机噪声向量和条件信息为输入,即可自动生成与真实网络流量相似的模拟背景流量,不需要人工参与网络流量建模、网络流量特征提取、网络流量生成等过程,极大的节省了人力成本,明显改善了网络流量生成的效率。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1