一种基于CS和改进BP神经网络的网络安全态势评估方法与流程

文档序号:17248024发布日期:2019-03-30 08:55阅读:342来源:国知局
一种基于CS和改进BP神经网络的网络安全态势评估方法与流程

本发明涉及网络安全技术领域,特别是涉及一种基于cs和改进bp神经网络的网络安全态势评估方法。



背景技术:

随着internet技术的迅速发展,网络规模也逐渐增加且复杂化,所遭受攻击多元化,安全事件大幅度上涨,安全问题变得日益突出与迫切。网络安全态势评估在此背景下应运而生,逐渐成为下一代网络安防技术的研究重点,网络安全态势评估是指在融合网络安全相关的要素信息的基础上,利用评估算法对网络系统的全局安全态势进行综合分析与实时评估,从而帮助管理人员把握整体网络的安全状况,为网络安全管理指挥、决策提供指导,将风险与损失降到最低限度。

目前,国内外的网络安全态势评估主要分为3类:(1)基于数学模型的方法,代表性方法有基于层次分析法、离偏差法、模糊综合评价法、集对分析法等(2)基于知识推理的方法,代表性方法有基于贝叶斯算法、ds证据理论、图模型、马尔科夫等(3)基于模式识别的方法,代表性方法有基于支持向量机、人工神经网络、粗糙集理论、灰色关联等。

前两种方法应用较多,但是存在主观依赖性强、先验知识获取困难、不合适动态复杂的网络环境等缺点,相较之下,基于模式识别的评估方法具有更高的准确性和客观性,更能适应动态不确定的网络环境,bp神经网络是一种多层前馈网络,因其强大的自学习能力、较好的泛化能力和容错能力等众多优点被广泛应用于态势评估领域,但从应用效果看,目前还存在以下不足:(1)评估数据源单一,导致评估结果存在片面性,可信度较低。(2)时空开销较大,不满足实时性的要求且评估结果不够精确(3)传统bp神经网络存在易形成局部极小、易发生震荡、收敛速度慢等缺点。



技术实现要素:

针对上述情况,为克服现有技术之缺陷,本发明之目的在于提供一种基于cs和改进bp神经网络的网络安全态势评估方法,综合全面的网络安全态势因素,通过自主学习,迭代更新的方式进行精准的态势评估,同时具有较快的运行速度,提高网络安全态势评估的准确性和评估效率,从而真实反映网络安全整体状况。

其解决的技术方案是,包括以下四个步骤,

s1、获取网络安全态势要素,构成训练样本集和测试样本集,确定bp神经网络结构;

s2、利用布谷鸟搜索(cs)算法寻找最优的初始权值和阈值;

s3、引入动量因子和陡度因子改进bp神经网络;

s4、对改进后的bp神经网络进行训练,并将训练好的网络用于网络安全态势评估,得到最终的态势值和安全等级。

如权利要求1所述的一种基于cs和改进bp神经网络的网络安全态势评估方法,其特征在于,所述步骤s1中获取网络安全态势要素,构成训练样本集和测试样本集为对系统配置信息、系统运行信息和网络流量信息在内的态势要素数据进行规范化处理,得到格式统一的态势指标数据,构成训练样本集和测试样本集;

所述步骤s1中确定bp神经网络结构,假设有n个信号输入,则输入向量为x=(x1,x2,…,xn),隐藏层节点数为m,则隐藏层输出向量为y=(y1,y2,…,ym),输出层节点数为l,则输出层向量为o=(o1,o2,…,ol),期望输出向量为d=(d1,d2,…,dl),输入层到隐藏层之间的权值矩阵为w=(w1,w2,…,wj,…,wm),隐藏层到输出层之间的权值为v=(v1,v2,…,vk,…,vl),隐含层有阈值θj,输出层有阈值rk,隐含层第j个神经元的输出值yj,输出层第k个神经元的输出ok,则:

上式中,f(x)为隐含层的传递函数,一般采用sigmoid函数,公式如下:

优选的,所述步骤s2中利用布谷鸟搜索(cs)算法寻找最优的初始权值和阈值具体为:

s21,初始化种群,依据神经网络权值和阈值特点,随机产生n只布谷鸟对n只布谷鸟进行编码,编码方式采用浮点数编码;

s22,计算适应度,适应度函数为神经网络总误差函数的倒数,如下所示:

s23,位置更新,保留上一代最优的布谷鸟按照下式更新布谷鸟的位置,得到

其中,表示第i个鸟巢在第t代的位置,为点对点乘法,α>0是步长(一般取α=1);l(λ)为lévy随机搜索路径,而随机步长λ服从lévy分布;

s24,选择,替换,删除操作,随机产生一个在[0,1]区间的小数r,比较r和发现概率pa的大小,如果r>pa,则按照式(12)更新所有布谷鸟的位置,计算并比较新的布谷鸟和原布谷鸟的适应度,保留适应度较大的布谷鸟,得到更新后的布谷鸟位置如果r≤pa,保留原来的布谷鸟;

剔除操作是为保持种群始终处于最优状态,将剔除n*pa个适应度值最差的个体;为使种群规模保持不变,将随机产生n*pa个解(需要对n*pa进行取整操作);同时,对于适应度值较优的个体,将直接传递到下一代;

s25,判断最优布谷鸟是否满足条件或者迭代代数是否达到要求,如果是,则将最优布谷鸟解码获取最优的权值、阈值,执行步骤s3;反之,则执行步骤s23。

优选的,所述步骤s3中所述的引入动量因子和陡度因子对传统bp神经网络进行改进具体为:

s31,引入动量因子,采用附加动量法改进神经网络的权值修正过程,具体做法是:将上一次或前几次权值调整量的一部分迭加到按本次误差计算所得的权值调整量上,作为本次的实际权值调整量,本发明设计的带有动量项的权值调整公式如下:

δw(k+1)=(1-α)ηd(k)+αδw(k)

其中,代表为k时刻的负梯度,

w即为网络权值,δw为权值的增量,k为训练次数,α为动量因子,0<α<1,一般取0.95左右,η为学习速率;

s32,引入陡度因子,在原转移函数中引入一个陡度因子λ,改进原理是:在权值调整进入平坦区以后,设法压缩神经元的净输入,使其输出退出转移函数的饱和区,以此改变误差函数的形状,从而使调整脱离平坦区,公式如下:

式中,net为神经元的输入,当发现δe接近零,而模型输出与实际值仍有较大偏差时,可判断已进入平坦区,此时令λ>1;当退出平坦区后,再令λ=1。

优选的,所述步骤s4中对改进后的bp神经网络进行训练,并将训练好的网络用于网络安全态势评估具体为:

s41,神经网络初始化,包括将步骤s2布谷鸟算法得到的bp神经网络的最优初始权值和阈值组合作为参数输入网络进行参数初始化、bp网络其余参数,包括迭代次数n,动量因子α,训练允许误差ε;将训练态势数据作为输入向量,将专家评估的态势值作为输出向量带入优化后的bp神经网络;

s42,计算输入层、中间隐含层和输出层的输出,输入层的各神经元对输入向量不进行处理,根据权利要求2步骤计算中间隐含层的输出yj和输出层的输出ok;

s43,根据计算输出ok与实际输出dk,计算输出层各神经元的误差ek,计算系统总误差e,公式如下:

s44,按照步骤s31计算权重修正量,进而调整各神经元权值;

s45,随机选取下一个训练数据提供给bp神经网络,指导所有训练数据对bp神经网络进行训练;

s46,判断神经网络全局误差e是否满足精度要求,如果e<ε,那么就结束网络的训练;否则就转到步骤s43继续对各层连接权值继续调整,如此进行迭代训练下去,直到网络的全局误差满足条件或是迭代次数达到n为止;

s47,将测试态势数据输人到训练好的具有评估能力的神经网络中,经过映射得到网络的态势值sa,最后通过对照网络总体态势级别表即可得到网络所处的安全等级。

由于以上技术方案的采用,本发明与现有技术相比具有如下优点;

1,利用改进bp神经网络实现网络安全态势精准的定量评估,降低传统评估方法中专家观点的主观影响,客观全面地反映了网络安全整体状况;

2,针对传统bp神经网络收敛速度慢,易发生震荡和陷入局部最小等缺点,结合布谷鸟搜索算法、引入动量因子和陡度因子对其进行改进,加快了收敛速度,减少了时空开销,提高了网络安全态势评估的准确性和实用性。

附图说明

图1为本发明一种基于cs和改进bp神经网络的网络安全态势评估方法的流程图。

图2为本发明实施例所提供的神经网络结构图。

图3为本发明实施例提供的基于cs和改进bp神经网络的评估方法与基于传统bp神经网络的评估方法误差曲线对比图。

图4为本发明一种基于cs和改进bp神经网络的网络安全态势评估方法与基于传统bp神经网络的评估方法评估准确率对比图。

具体实施方式

有关本发明的前述及其他技术内容、特点与功效,在以下配合参考附图1至附图4对实施例的详细说明中,将可清楚的呈现。以下实施例中所提到的结构内容,均是以说明书附图为参考。

实施例一,一种基于cs和改进bp神经网络的网络安全态势评估方法,包括以下四个步骤,

s1、获取网络安全态势要素,构成训练样本集和测试样本集,确定bp神经网络结构;

s2、利用布谷鸟搜索(cs)算法寻找最优的初始权值和阈值;

s3、针对传统bp神经网络收敛速度慢,易发生震荡和陷入局部最小等缺点,引入动量因子和陡度因子改进bp神经网络;

s4、对改进后的bp神经网络进行训练,并将训练好的网络用于网络安全态势评估,得到最终的态势值和安全等级。

实施例二,在实施例一的基础上,所述的步骤s1具体包括:

s11,获取网络安全态势要素,构成训练样本集和测试样本集,评估数据源主要来自三大类:基于系统配置信息、基于系统运行信息和基于网络流量信息。第一类数据源是指网络设计和配置状况,如网络拓扑结构、服务软件的安装与设置以及系统的漏洞缺陷等;第二类数据源是指网络系统遭受攻击时的系统运行情况,主要来自于系统运行日志库;第三类数据源主要是指网络即时通信各种流量情况,可通过专用软件监测获取。按照目前的网络现状和指标体系的实际需求,本发明选取netflow数据、snort日志和nessus扫描日志作为态势指标数据源。这三种数据涵盖了流量、攻击和漏洞三方面的信息。反映了网络基本运行状态信息、面临的攻击威胁和潜在的安全威胁状况,能够为网络安全态势感知提供较为全面的数据支持,由于从网络安全设备中采集到的原始数据具有不同的格式和意义,这些数据并不能作为态势评估的输入数据,需要对这些数据进行规范化处理,才能得到格式统一的态势指标数据,构成训练样本集和测试样本集。

s12,确定bp神经网络结构,图2为本发明实施例提供的神经网络结构图。bp神经网络包含1个输入层、1个输出层和多个隐含层,相邻层之间的神经元通过合理的激活函数连接而维持网络的参数,并通过前向传播与反向传播过程结合来进行训练,假设有n个信号输入,则输入向量为x=(x1,x2,…,xn),隐藏层节点数为m,则隐藏层输出向量为y=(y1,y2,…,ym),输出层节点数为l,则输出层向量为o=(o1,o2,…,ol),期望输出向量为d=(d1,d2,…,dl),输入层到隐藏层之间的权值矩阵为w=(w1,w2,…,wj,…,wm),隐藏层到输出层之间的权值为v=(v1,v2,…,vk,…,vl),隐含层有阈值θj,输出层有阈值rk。隐含层第j个神经元的输出值yj,输出层第k个神经元的输出ok,则:

上式中,f(x)为隐含层的传递函数,一般采用sigmoid函数,公式如下:

本发明实施例中输入层节点数为8,对应8个态势评估要素:子网内安全设备数(x1),子网内各关键设备开放端口的总量(x2),关键设备访问主流安全网站的频率(x3),报警数目(x4),网络带宽使用率(x5),安全事件历史发生频率(x6),子网流量变化率(x7),子网平均无故障时间(x8)。输出节点数为1,标记为sa(即网络安全态势值)。隐藏层节点数用试凑法得到。首先通过经验公式设置较少的隐节点,然后每次增加等量的隐节点,在使用同一样本集的前提下,选取训练误差最小时对应的节点数。初始隐节点数m为:

其中:n代表输入层节点个数;l代表输出层节点个数;δ代表0—10的常数;隐含层节点数通过上式选取4,经试凑得节点数6。

实施例三,在实施例一的基础上,所述的步骤s2具体包括:

bp神经网络的初始权值和阈值是随机分配的,因此其训练时间一般较长,而且经过训练得到的权值和阈值也可能并非最优,所以本发明采用布谷鸟(cs)算法寻找最优的权值和阈值,具体步骤如下:

s21,初始化种群,依据神经网络权值和阈值特点,随机产生n只布谷鸟对n只布谷鸟进行编码,编码方式采用浮点数编码,浮点数编码直观且具有编码长度易控制、编码精度高且大空间搜索能力强等特点,可降低计算复杂性,故本发明采用浮点数编码。根据bp神经网络的设计结构将其所有权值和阈值共同编码成一只布谷鸟,则布谷鸟的编码为:

w11w21…wn1v11v21…v1lθ1…w1mw2m…wnmvm1vm2…vmlθmr1…rl

其中,n为网络的输入层节点数,m为隐藏层节点数,l为输出层节点数,输入层到隐藏层权重矩阵为w,隐藏层到输出层权值矩阵为v,隐藏层阈值矩阵为θ,输出层阈值矩阵为r;

s23,计算适应度,布谷鸟算法属于元启发优化算法,群体中个体的优劣是由适应度来衡量的。适应度值越高代表该个体越接近最优解,结合bp神经网络总误差越小越好的特点,本实例设计的适应度函数为网络实际输出和预测输出之间的误差绝对值和的倒数,即:

将步骤s1获取的态势指标数据代入适应度函数,计算这一代布谷鸟的适应度。选择适应度最优的布谷鸟

s23、位置更新。保留上一代最优的布谷鸟更新布谷鸟的位置,得到位置更新公式如下:

其中,表示第i个鸟巢在第t代的位置,为点对点乘法,α>0是步长(一般取α=1);l(λ)为lévy随机搜索路径,而随机步长λ服从lévy分布。

计算这一代布谷鸟的适应度,并跟上一代的适应度值作比较,如果更优则更新位置,否则依然保留上一代鸟巢的位置。

s24,选择,替换,删除操作。随机产生一个在[0,1]区间的小数r,比较r和发现概率pa的大小。如果r>pa,则更新所有布谷鸟的位置,计算并比较新的布谷鸟和原布谷鸟的适应度,保留适应度较大的布谷鸟,得到更新后的布谷鸟位置如果r≤pa,保留原来的布谷鸟。

剔除操作是为保持种群始终处于最优状态,将剔除n*pa个适应度值最差的个体;为使种群规模保持不变,将随机产生n*pa个解(需要对n*pa进行取整操作);同时,对于适应度值较优的个体,将直接传递到下一代。

s25、判断最优布谷鸟是否满足条件或者迭代代数是否达到要求,如果是,则将最优布谷鸟解码获取最优的权值、阈值,执行步骤s3;反之,则执行步骤s23。

布谷鸟算法属于元启发优化算法,群体中个体的优劣是由适应度来衡量的。适应度值越高代表该个体越接近最优解。结合bp神经网络总误差越小越好的特点,本实例设计的适应度函数为网络实际输出和预测输出之间的误差绝对值和的倒数,即:

将步骤s1获取的态势指标数据代入适应度函数,计算这一代布谷鸟的适应度。选择适应度最优的布谷鸟

s23、位置更新。保留上一代最优的布谷鸟更新布谷鸟的位置,得到位置更新公式如下:

其中,表示第i个鸟巢在第t代的位置,为点对点乘法,α>0是步长(一般取α=1);l(λ)为lévy随机搜索路径,而随机步长λ服从lévy分布。

计算这一代布谷鸟的适应度,并跟上一代的适应度值作比较,如果更优则更新位置,否则依然保留上一代鸟巢的位置。

s24、选择,替换,删除操作。随机产生一个在[0,1]区间的小数r,比较r和发现概率pa的大小。如果r>pa,则更新所有布谷鸟的位置,计算并比较新的布谷鸟和原布谷鸟的适应度,保留适应度较大的布谷鸟,得到更新后的布谷鸟位置如果r≤pa,保留原来的布谷鸟。

剔除操作是为保持种群始终处于最优状态,将剔除n*pa个适应度值最差的个体;为使种群规模保持不变,将随机产生n*pa个解(需要对n*pa进行取整操作);同时,对于适应度值较优的个体,将直接传递到下一代。

s25、判断最优布谷鸟是否满足条件或者迭代代数是否达到要求,如果是,则将最优布谷鸟解码获取最优的权值、阈值,执行步骤s3;反之,则执行步骤s23。

实施例四,在实施例一的基础上,所述的步骤s3具体包括:

s31,引入动量因子,标准bp算法实质上是一种简单的最速下降静态寻优方法,在修正w(k)时,只按照第k步的负梯度方向进行修正,而没有考虑到以前积累的经验,即以前时刻的梯度方向,从而常常使训练过程发生振荡,收敛缓慢,附加动量法权值调整算法的具体做法是:将上一次或前几次权值调整量的一部分迭加到按本次误差计算所得的权值调整量上,作为本次的实际权值调整量。本发明设计的带有动量项的权值调整公式如下:

dw(k+1)=(1-α)ηd(k)+αdw(k)

其中,代表为k时刻的负梯度。

w即为网络权值,dw为权值的增量,k为训练次数,α为动量因子,0<α<1,一般取0.95左右。η为学习速率,在标准bp神经网络中是常数。

上式的含义是将之前权值变化对本次权值调整趋势的影响,通过一个动量因子来传递。当动量因子α取值为零时,权值的变化仅根据梯度下降法产生;当动量因子α取值为1时,新的权值变化则设置为前一次权值的变化,而依梯度法产生的变化部分则被忽略掉了。以此方式,当增加了动量项后,促使权值的调节向着误差曲面底部的平均方向变化,当网络权值进入误差曲面底部的平坦区时,dwij(k+1)=dwij(k),从而防止了dwij=0的出现,有助于使网络从误差曲面的局部极小值中跳出。这种方法所加的动量因子实际上相当于阻尼项,它减小了学习过程中的振荡趋势,起到了缓冲平滑的作用,从而改善了收敛性。

s32,引入陡度因子bp神经网络在训练过程中当误差平方和接近于零仍有可能模型的输出与实际值存在较大的偏差,造成这种现象的原因是因为误差曲面上存在平坦区。为了防止在网络训练时出现这种情况,本发明引入陡度因子的方法来对标准bp算法进行改进。改进原理是:在权值调整进入平坦区以后,设法压缩神经元的净输入,使其输出退出转移函数的饱和区,以此改变误差函数的形状,从而使调整脱离平坦区。具体做法是,在原转移函数中引入一个陡度因子λ:

式中,net为神经元的输入。当发现δe接近零,而模型输出与实际值仍有较大偏差时,可判断已进入平坦区,此时令λ>1;当退出平坦区后,再令λ=1。当λ>1时,net坐标压缩了λ倍,神经元函数的敏感区变长,从而使绝对值较大的nett退出饱和区。当λ=1时,转移函数恢复原状,对较小的net具有较高的灵敏度。应用表明,该方法对提高神经网络算法的收敛速度和准确率十分有效。

实施例五,在实施例一的基础上,所述的步骤s4具体包括:

s41、神经网络初始化。1)参数初始化。将步骤s2得到的bp神经网络的最优初始权值和阈值组合作为参数输入网络。除此之外,初始化bp网络其余参数,包括迭代次数n,动量因子α,训练允许误差ε。2)将训练态势数据作为输入向量,将专家评估的态势值作为输出向量带入优化后的bp神经网络。

s42、计算输入层的输出,输入层的各神经元对输入向量不进行处理,只是简单的将其作为输出传递给隐含层。计算中间隐含层的各神经元的输出,公式如下:

计算输出层的各神经元的输出,公式如下:

上式中,f(x)为隐含层的传递函数,一般采用sigmoid函数,本发明实例引入了陡度因子λ,公式如下:

s43、根据计算得到的输出ok与实际输出dk,计算系统总误差e,公式如下:

s44、因为系统的总误差e是权值vij,wjk的函数,所以可以通过梯度下降法来调整权值,进而减小误差e,实现迭代优化求解。本发明实施例采用附加动量因子法优化权值修正过程。以wjk为例,公式如下:

dw(k+1)=(1-α)ηd(k)+αdw(k)

s45、随机选取下一个训练数据提供给改进bp神经网络,指导所有训练数据对改进bp神经网络进行训练。

s46、判断神经网络全局误差e是否满足精度要求。如果e<ε,那么就结束网络的训练;否则就转到步骤(3)继续对各层连接权值继续调整,如此进行迭代训练下去,直到网络的全局误差满足条件或是迭代次数达到n为止。

s47、将测试态势数据输人到训练好的具有评估能力的神经网络中,经过映射得到网络的态势值sa,最后通过对照表2即可得到网络所处的安全等级。

神经网络评估结果sa是一个在一定阈值区间内的数值,缺乏一定的现实指导意义,所以在实际的生产生活中,需要对网络安全态势值对应的网络安全等级进行划定。本发明在参考风险评估的基础上,将网络安全态势的等级划分为五级{优,良,中,差,危},各级的态势值范围及网络行为特征如表2所示:

表2网络总体态势级别表

本发明具使用时,为了使本领域技术人员更好地理解本方案,下面以实际应用场景对本方案进行说明,采用模拟的网络安全数据本发明提出的网络安全态势评估方法进行仿真对比试验。本申请实施例搭建了一个网络实验环境,普通用户user和攻击者attacker可通过internet访问该网络上各主机。定期采集入侵检测系统ids攻击信息、主机nessus中采集漏洞扫描信息、snort采集日志报警信息和路由器netflow采集网络流量信息,作为本次仿真实验的多源异构原始数据源,然后组织专家对安全风险进行人工评估,得到网络安全态势的实际级别。提取子网内安全设备数(x1),子网内各关键设备开放端口的总量(x2),关键设备访问主流安全网站的频率(x3),报警数目(x4),网络带宽使用率(x5),安全事件历史发生频率(x6),子网流量变化率(x7),子网平均无故障时间(x8)。这8个评估指标构成样本集作为评估模型的输入,专家评估结果作为期望输出,共获得1500条数据。随机选择1000个样本作为训练集,用于训练改进后的bp神经网络;剩余500个样本作为测试集,用来检验网络安全态势评估模型的评估结果与实际结果是否一致即模型的泛化能力;

在布谷鸟寻优部分,选取布谷鸟种群规模,n=40,设定发现概率pa=0.1,最大迭代代数为40;在bp神经网络部分,设定输入层节点数8。采用试凑法设置隐含层节点的个数为6,输出层输出为态势值,输出节点数1,传递函数为标准的sigmoid函数,最大迭代次数设定为1000,目标函数误差ε=0.05,动量因子α=0.95。本发明实施例设计了算法优化前后的对比试验。图3为本发明实施例提供的基于cs和改进bp神经网络的评估方法与基于传统bp神经网络的评估方法误差曲线对比图。如图3所示,与传统bp神经网络相比,本发明实施例提出的一种基于布谷鸟搜索算法和改进bp神经网络的网络安全态势评估方法不存在局部极小问题,且具有更快的收敛速度和收敛效果。这是由cs算法只需要消耗很少的资源就能找到bp神经网络的初始最优权值和阈值,有效缩短了后期神经网络的训练时间和时空消耗,同时引入了动量因子和陡度因子,大大加快了收敛速度,避免出现局部极值和震荡现象,改善了收敛效果。图4为本发明实施例提供的基于cs和改进bp神经网络的评估方法与基于传统bp神经网络的评估方法评估准确率对比图。如图4所示,随着样本容量的增加,传统bp网络算法评估准确率随之下降,而本发明实例提出的评估方法的准确率曲线稳定在97.5%以上,这说明本发明实例提出的评估方法具有更高的评估精度和更稳定的评估效果。

以上所述是结合具体实施方式对本发明所作的进一步详细说明,不能认定本发明具体实施仅局限于此;对于本发明所属及相关技术领域的技术人员来说,在基于本发明技术方案思路前提下,所作的拓展以及操作方法、数据的替换,都应当落在本发明保护范围之内。

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