专利摘要
本发明公开了一种基于SAE+BPNN的网络安全态势评估方法,包括:提取待评估网络安全态势感知指标数据;对提取到的指标数据进行归一化处理;将归一化处理后的指标数据输入训练完成的深度自编码神经网络,以对归一化后的指标数据进行降维处理;将降维处理后的指标数据输入至训练完成的BP神经网络,以对网络安全态势进行评估。本发明针对BP神经网络在处理稀疏高维度数据时,所需模型复杂度较高、模型计算时间较长、准确率无法提升的问题,利用深度自编码神经网络对数据进行降维处理,保证数据与标签间的非线性关系,并且可以优化模型、降低模型复杂度、降低模型训练时间、提高模型鲁棒性和泛化性。
权利要求
1.一种基于SAE+BPNN的网络安全态势评估方法,其特征在于:
提取待评估网络安全态势感知指标数据;
对提取到的指标数据进行归一化处理;
将归一化处理后的指标数据输入训练完成的深度自编码神经网络,以对归一化后的指标数据进行降维处理;
将降维处理后的指标数据输入至一训练完成的BP神经网络,以对网络安全态势进行评估;所述指标数据的类型包括:数据流持续时间、使用协议数、源地址数、目标地址数、网络端口数、数据流类型、传输包数量、传输字节数和可疑数据量;对所述数据流持续时间、使用协议数、源地址数、目标地址数、网络端口数和数据流类型,采用以下公式进行归一化处理:
其中,
对所述目标地址数、网络端口数和数据流类型,采用以下公式进行归一化处理:
或
其中,
提取已知网络攻击类型的网络安全态势感知指标数据,作为训练指标数据;
对提取到的训练指标数据进行归一化处理;
对所述深度自编码神经网络的参数进行初始设置,所述深度自编码神经网络的参数包括网络参数、激活函数、优化函数、Loss函数、迭代次数和迭代步长;
将归一化处理后的训练指标数据输入深度自编码神经网络,计算信息损失值,并判定所述信息损失值是否小于等于第一设定值,若所述信息损失值大于所述第一设定值,则减少所述深度自编码神经网络的隐藏层数;
判定所述信息损失值是否小于等于第二设定值,所述第二设定值小于所述第一设定值,若所述信息损失值大于所述第二设定值,则增加所述深度自编码神经网络的迭代次数;训练BP神经网络的方法包括:
S51:将所述归一化处理后的训练指标数据输入所述训练完成的深度自编码神经网络,以对所述训练指标数据进行降维处理,并将降维处理后的所述训练指标数据输入BP神经网络;
S52:计算所述BP神经网络的隐含层和输出层各神经元的输出;
S53:计算所述BP神经网络的输出层和隐含层的校正误差;
S54:计算所述BP神经网络新的连接权值和阈值;
S55:重复步骤S52-S54,直至所有训练指标数据都训练完,结束训练。
2.根据权利要求1所述的一种基于SAE+BPNN的网络安全态势评估方法,其特征在于:所述信息损失值为所述Loss函数的输出值。
3.根据权利要求1所述的一种基于SAE+BPNN的网络安全态势评估方法,其特征在于:所述第一设定值为10%,所述第二设定值为1%。
4.根据权利要求3所述的一种基于SAE+BPNN的网络安全态势评估方法,其特征在于:
所述激活函数设置为Sigmoid函数,所述优化函数设置为Adam函数,所述Loss函数设置为mean_squared_error函数,所述迭代次数设置为400-1000,所述迭代步长设置为8。
5.根据权利要求1所述的一种基于SAE+BPNN的网络安全态势评估方法,其特征在于:
若所述训练完成的BP神经网络输出层的输出值大于等于第三设定值,则所述网络受到攻击;相反的,若所述训练完成的BP神经网络的输出层的输出值小于第三设定值,则所述网络安全。
说明书
技术领域
本发明涉及网络安全技术领域,尤其涉及一种基于SAE+BPNN的网络安全态势评估方法。
背景技术
随着互联网的普及和网络技术的发展,网络规模不断增大,网络安全问题也日益突出。对网络安全态势的评估也成为日益迫切的需求。网络安全态势评估作为网络安全态势感知的重要部分,其主要是利用评估方法综合分析网络的各个安全因素,得出相应的安全态势值,为用户提供准确的安全状态评价和网络安全趋势估计。目前常见的网络安全态势评估方法主要有神经网络、贝叶斯推理、支持向量机、D-S证据理论等。但是目前的研究大多存在以下三个问题:
(1)评估数据维度过大会导致模型构建的复杂度较高,训练计算量大、训练慢、参数繁多,影响评估效率。
(2)评估方法太依赖主观性,由于各评估指标参数的重要性没有统一的参照标准,现有的评估方法尤其是层次分析法,评估指标的权重往往借助经验或者专家的主观意见来设定。
(3)现有的评估方法已经实现一定的准确率,但是这种准确率是以牺牲一定的算法复杂度为代价实现的。
发明内容
鉴于此,本发明的目的是提供一种基于SAE+BPNN的网络安全态势评估方法,利用深度自编码神经网络(Stacked Auto-Encoder,SAE)加BP神经网络(error BackPropagation Neural Network,BPNN),解决复杂网络环境下,网络安全指标数据维度过大,训练计算量大、训练慢、参数繁多,影响评估效率的问题。
本发明通过以下技术手段解决上述技术问题:
一种基于SAE+BPNN的网络安全态势评估方法,包括:
提取待评估网络安全态势感知指标数据;
对提取到的指标数据进行归一化处理;
将归一化处理后的指标数据输入一训练完成的深度自编码神经网络,以对归一化后的指标数据进行降维处理;
将降维处理后的指标数据输入至一训练完成的BP神经网络,以对网络安全态势进行评估。
进一步,所述指标数据的类型包括:数据流持续时间、使用协议数、源地址数、目标地址数、网络端口数、数据流类型、传输包数量、传输字节数和可疑数据量。
进一步,对所述数据流持续时间、使用协议数、源地址数、目标地址数、网络端口数和数据流类型,采用以下公式进行归一化处理:
其中, 为指标当前值,xi为指标归一化后的值;
对所述目标地址数、网络端口数和数据流类型,采用以下公式进行归一化处理:
或
其中, 为指标当前值,xi为指标归一化后的值。
进一步,训练深度自编码神经网络的方法包括:
提取已知网络攻击类型的网络安全态势感知指标数据,作为训练指标数据;
对提取到的训练指标数据进行归一化处理;
对所述深度自编码神经网络的参数进行初始设置,所述包括网络参数、激活函数、优化函数、Loss函数、迭代次数和迭代步长;
将归一化处理后的训练指标数据输入深度自编码神经网络,计算信息损失值,并判定所述信息损失值是否小于等于第一设定值,若所述信息损失值大于所述第一设定值,则减少所述深度自编码神经网络的隐藏层数;
判定所述信息损失值是否小于等于第二设定值,所述第二设定值小于所述第一设定值,若所述信息损失值大于所述第二设定值,则增加所述深度自编码神经网络的迭代次数。
进一步,所述信息损失值为所述Loss函数的输出值。
进一步,所述第一设定值为10%,所述第二设定值为1%。
进一步,所述激活函数设置为Sigmoid函数,所述优化函数设置为Adam函数,所述Loss函数设置为mean_squared_error函数,所述迭代次数设置为400-1000,所述迭代步长设置为8。
进一步,训练BP神经网络的方法包括:
S51:将所述归一化处理后的训练指标数据输入所述训练完成的深度自编码神经网络,以对所述训练指标数据进行降维处理,并将降维处理后的所述训练指标数据输入BP神经网络;
S52:计算所述BP神经网络的隐含层和输出层各神经元的输出;
S53:计算所述BP神经网络的输出层和隐含层的校正误差;
S54:计算所述BP神经网络新的连接权值和阈值;
S55:重复步骤S52-S54,直至所有训练指标数据都训练完成,结束训练。
进一步,若所述训练完成的BP神经网络输出层的输出值大于等于第三设定值,则所述网络受到攻击;相反的,若所述训练完成的BP神经网络的输出层的输出值小于第三设定值,则所述网络安全。
本发明的有益效果:
本发明利用深度自编码神经网络的非线性数据降维能力,将态势指标数据做数据降维,提取数据特征,去除数据属性之间的共线性,降低模型训练时间,提高模型鲁棒性和泛化性,由于深度学习的模型还可以通过GPU来训练,可以缩短相应的模型训练时间,模型的适用性更强,鲁棒性更高,解决了复杂网络环境下,网络安全态势评估数据维度过大,训练计算量大、训练慢、参数繁多和影响评估效率的问题。
本发明针对BP神经网络在处理稀疏高维度数据时,所需模型复杂度较高、模型计算时间较长、准确率无法提升的问题,利用深度自编码神经网络对数据做降维处理,保证数据与标签间的非线性关系,并且可以优化模型、降低模型复杂度、降低模型训练时间、提高模型鲁棒性和泛化性。
附图说明
图1是本发明实施例的流程图;
图2是本发明实施例的深度自编码神经网络加BP神经网络的网络结构图;
图3是本发明实施例提供的1、2、3层深度自编码神经网络隐藏层的Loss函数输出值分布图;
图4是本发明实施例提供的对比试验结构图。
具体实施方式
以下将结合附图和具体实施例对本发明进行详细说明:
如图1所示,一种基于SAE+BPNN的网络安全态势评估方法,包括:
S1:提取待评估网络安全态势感知指标数据;
S2:对提取到的指标数据进行归一化处理;
S3:将归一化处理后的指标数据输入一训练完成的深度自编码神经网络,以对归一化后的指标数据进行降维处理;
S4:将降维处理后的指标数据输入至一训练完成的BP神经网络,以对网络安全态势进行评估。
具体的,所述指标数据的类型包括:数据流持续时间、使用协议数、源地址数、目标地址数、网络端口数、数据流类型、传输包数量、传输字节数和可疑数据量。
其中,对所述数据流持续时间、使用协议数、源地址数、目标地址数、网络端口数和数据流类型,采用以下公式进行归一化处理,以统一量纲:
其中, 为指标当前值,xi为指标归一化后的值;
对所述目标地址数、网络端口数和数据流类型,采用以下公式进行归一化处理,以统一量纲:
或
其中, 为指标当前值,xi为指标归一化后的值。
本发明中,训练深度自编码神经网络的方法包括:
提取已知网络攻击类型的网络安全态势感知指标数据,作为训练指标数据;
对提取到的训练指标数据进行归一化处理;
对所述深度自编码神经网络的参数进行初始设置,所述包括网络参数包括激活函数、优化函数、Loss函数、迭代次数和迭代步长;
将归一化处理后的训练指标数据输入深度自编码神经网络。首先,将深度自编码神经网络的输入层设为x=[x1,x2,···,xn]T∈Rn×1,隐藏层设为h=[h1,h2,···,hd]T∈Rd×1。令输入层到隐藏层的权值矩阵为W(W∈Rn×d),偏置为b,b=[b1,b2,···,bd]T∈Rd×1;令隐藏层到输出层的权值矩阵为W′(W′∈Rn×d),偏置为b′,b′=[b1′,b2′,···,bd′]T∈Rd×1。
深度自编码神经网络隐藏层输出可以表示为:
h=f1(Wx+b)
f1表示隐藏层的激活函数,可以根据具体应用的领域不同而选择ReLu、Sigmoid、Tanh等。
计算信息损失值,并判定所述信息损失值是否小于等于第一设定值,若所述信息损失值大于所述第一设定值,则减少所述深度自编码神经网络的隐藏层数;
判定所述信息损失值是否小于等于第二设定值,所述第二设定值小于所述第一设定值,若所述信息损失值大于所述第二设定值,则增加所述深度自编码神经网络的迭代次数。
进一步,所述信息损失值为所述Loss函数的输出值。
进一步,所述第一设定值为10%,所述第二设定值为1%。
进一步,所述激活函数设置为Sigmoid函数,所述优化函数设置为Adam函数,所述Loss函数设置为mean_squared_error函数,所述迭代次数设置为400-1000,所述迭代步长设置为8。
进一步,训练BP神经网络的方法包括:
S51:将所述归一化处理后的训练指标数据输入所述训练完成的深度自编码神经网络,以对所述训练指标数据进行降维处理,并将降维处理后的所述训练指标数据输入BP神经网络;
假定输入向量为:x=[x1,x2,···,xi,···,xm]T∈Rm×1等价于h=[h1,h2,···,hd]T∈Rd×1,其中m=d,输出向量为:y=[y1,y2,···,yi,···,ym]T∈Rm×1,第l隐藏层各神经元的输出为: 其中,sl为第l层神经元的个数,设 为第l-1层第j个神经元与l层第i个神经元之间的连接权重;
S52:计算所述BP神经网络的隐含层和输出层各神经元的输出;
为第l层第i个神经元的偏重,那么:
其中, 为第l层第i个神经元的输入,f(·)为神经元的激活函数。通常在多层神经网络中采用非线性激活函数,而不是用线性激活函数,因为采用基于线性激活函数的多层神经网络本质上还是多个线性函数的叠加,其结果仍然为一个线性函数;
S53:计算所述BP神经网络的输出层和隐含层的校正误差;
假定有m个训练样本m={(x(1),y(1)),(x(2),y(2)),...,(x(m),y(m))},其中d(i)为对应输入x(i)的期望输出。BP神经网络算法通过最优化各层神经元的输入权值 以及偏置 使得神经网络的输出尽可能地接近期望输出,以达到训练(或者学习)的目的。
采用批量更新方法,对于给定的m个训练样本,定义误差函数为:
其中,E(i)为单个样本的训练误差:
样本总体误差
S54:计算所述BP神经网络新的连接权值和阈值,通过以下公式进行计算:
其中, 为第l-1层第j个神经元与l层第i个神经元之间的连接权重,α为学习速率,取值范围为(0,1), 为第l层第i个神经元的偏重。
S55:重复步骤S52-S54,直至所有训练指标数据都训练完成,结束训练。
进一步,若所述训练完成的BP神经网络输出层的输出值大于等于第三设定值,则所述网络受到攻击;相反的,若所述训练完成的BP神经网络的输出层的输出值小于第三设定值,则所述网络安全。
为进一步对本发明进行说明,本实施例选用德国科堡科技大学的CIDDS-001数据集。CIDDS-001数据集一共包括92次攻击。在OpenStack环境中执行了70次攻击,22次攻击以外部服务器为目标。表1提供了有关CIDDS-001数据集中执行的攻击的更多信息。
表1:CIDDS-001数据集中执行的攻击数量
选取CIDD-001数据集Week2的外部流数据进行分析,第二天外部流数据流攻击情况如下表:
表2攻击日志信
从上表中,可以提取出相关信息,上午12点之前与12点之后各发起了3次攻击,于是本实验选取12点之后的数据流用作训练,12点之前的数据流用作测试。
针对该网络数据流的14个属性,确定9个评估指标(单位时间内):数据流持续时间、使用协议数、源地址数、目标地址数、网络端口数、数据流类型、传输包数量、传输字节数、可疑数据量如表3所示。
表3态势指标数据
将提取到的指标数据进行归一化后,输入深度自编码神经网络,深度自编码神经网络的参数设置如表4所示:
表4:深度自编码神经网络网络参数配置
确定深度自编码神经网络的隐藏层层数:分别采用1层、2层、3层隐藏层对指标数据进行编码、降维处理,输入维度为9,输出维度均设定为4维:一层网络输入到隐藏层输出为9-4,二层网络为9-7-4,三层为9-7-6-4。
图3展示了1、2、3层深度自编码神经网络隐藏层的Loss值情况,通过分析图3的结果,可以看出,在对指标数据进行编码降维时,当深度自编码神经网络隐藏层数为1,迭代次数epoch为400次时Loss函数输出值接近于0,这表明在经过1层深度自编码神经网络降维后,输出的数据很好地保存了输入数据的信息完整率,接近100%。而当深度自编码神经网络隐层层数为2或3层时,Loss函数输出值在epoch=200次时趋于稳定,但loss函数输出值一直保持在0.2以上。此时,深度自编码神经网络隐藏层输出数据相当于丢失原始输入数据20%以上的特征信息。通过实验分析,我们最终选取隐藏层为1层的深度自编码神经网络对指标数据进行编码,深度自编码神经网络的迭代次数选择600。
测试实例选取CIDD-001数据集中第二周周二早上9点到12点的外部数据流。其中,在9点到12点之间,一共发生有3次攻击行为,攻击时间产生分别是9点46分到9点48分、10点14分至10点30分、11点33分到12点00分。
实验参数设定:
表5:BP网络参数配置
从实验对比结果图4可以看出,设定神经网络的输出值大于等于0.5时,网络受到攻击,深度自编码神经网络算法在进行网络安全态势评估的过程中,能够大致判定出攻击出现情况,但评估结果波动相对较大;BP神经网络在评估过程中,能够准确的判断出攻击出现的情况,但在120分钟到140分钟内做出了一次错误的判断;深度自编码神经网络+BP神经网络算法能够准确的判定攻击发生的时间,其评估准确度最为精确,能够准确分辨出攻击出现的时间。
考虑到深度自编码神经网络算法是非线性映射的方法,其每使用一次深度自编码神经网络算法进行降维所生成数据均有所不同,而降维后数据将直接对评估的结果产生影响,针对以上情况,实例对每个算法均进行多次重复验证,求解出算法对应的评价准确度范围。
表6算法性能对比1
表7算法性能对比2
从表6和表7中可以看出,本文提出的深度自编码神经网络加BP神经网络的评估方法准确率相对BP神经网络算法有一定的提升,且运行时间相对来说,有所减少。同时,将常用网络安全态势评估方法NB、SVM用作对比,发现,通过深度自编码神经网络对指标数据进行降维处理后,NB与SVM的评估准确率均有所提高,且算法运行时间相对有所减少。
以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。本发明未详细描述的技术、形状、构造部分均为公知技术。
一种基于SAE+BPNN的网络安全态势评估方法专利购买费用说明
Q:办理专利转让的流程及所需资料
A:专利权人变更需要办理著录项目变更手续,有代理机构的,变更手续应当由代理机构办理。
1:专利变更应当使用专利局统一制作的“著录项目变更申报书”提出。
2:按规定缴纳著录项目变更手续费。
3:同时提交相关证明文件原件。
4:专利权转移的,变更后的专利权人委托新专利代理机构的,应当提交变更后的全体专利申请人签字或者盖章的委托书。
Q:专利著录项目变更费用如何缴交
A:(1)直接到国家知识产权局受理大厅收费窗口缴纳,(2)通过代办处缴纳,(3)通过邮局或者银行汇款,更多缴纳方式
Q:专利转让变更,多久能出结果
A:著录项目变更请求书递交后,一般1-2个月左右就会收到通知,国家知识产权局会下达《转让手续合格通知书》。
动态评分
0.0