System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及通信,特别是涉及一种基于深度强化学习的设备漏洞检测方法和装置。
技术介绍
1、随着现代设备的复杂性以及不同版本软件的多样性的增加,为了确保软件按照预期运行,保证设备拥有有效的容错性,并减少软件代码的冗余率,需要对设备的控制软件进行测试。但是,由于软件不断迭代,设备支持的功能增加,使得设备需要测试的命令数目不断增加。
2、传统的漏洞检测方法中,会由测试人员根据相应命令的构造规则手动输入需要测试的命令或者操作。但是,随着软件的迭代以及设备的演进,这种测试方式的效率往往不能满足软件开发时间的需求,会导致在设备软件开发的过程中测试在开发周期的占比时间越来越长。并且,人工操作往往效率不高并且很难做到各种场景测试完全,测试方案无法全方位检测到设备对于非正常操作的容错性。同时,现在漏洞检测的技术都是基于代码层面的单元测试,而不是以设备作为整体的测试。
3、鉴于此,如何克服现有技术所存在的缺陷,解决现有漏洞检测方法中人工输入测试命令导致的测试效率低和测试覆盖度低的现象,是本
待解决的问题。
技术实现思路
1、针对现有技术的以上缺陷或改进需求,本专利技术解决了现有漏洞检测方法中人工输入测试命令导致的测试效率低和测试覆盖度低的问题。
2、本专利技术实施例采用如下技术方案:
3、第一方面,本专利技术提供了一种基于深度强化学习的设备漏洞检测方法,包括:
4、获取至少二组样本集合,基于策略梯度分别使用每组样本集合对模型进行训练,
5、将命令的构造规则输入至少二组训练后的模型中,分别获取每组模型输出的字符概率;对每组模型所输出的字符概率进行加权平均,获取最终字符概率;
6、根据最终字符概率获取至少二种用于漏洞检测的输入命令,将获取到的输入命令输入至设备中获取相应的命令反馈,其中,用于漏洞检测的输入命令包含至少一种正确命令和至少一种错误命令;
7、根据命令反馈和最终字符概率计算本次输出的奖励值,将本次使用的构造规则、本次获取的输入命令和相应的命令反馈组成新的样本,将新的样本加入样本集合,使用新的样本集合和奖励值对模型进行迭代优化,以获取更优化的用于漏洞检测的输入命令,以便根据相应的命令反馈检测设备在接收每个输入命令后是否会产生漏洞。
8、进一步地,所述获取至少二组样本集合,具体包括:
9、获取设备可用命令的构造规则,以及历史的输入命令和命令反馈,将每组对应的构造规则、输入命令和命令反馈整合为一个原始样本;
10、获取指定数量的原始样本,对获取到的原始样本进行特征提取,将提取到的特征数据作为样本,将样本随机划分为指定数量的样本集合。
11、进一步地,所述构造规则包括长度区间和可用字符集;所述将命令的构造规则输入至少二组训练后的模型中,分别获取每组模型输出的字符概率,具体包括:
12、根据长度区间计算模型需生成的输入命令的长度,根据可用字符集计算输入命令中每个字符出现的概率;
13、每组模型根据输入命令的长度和输入命令中每个字符出现的概率,输出相应的字符概率。
14、进一步地,所述根据长度区间计算模型需生成的输入命令的长度,具体包括:
15、当模型第一次输出时,在长度区间中选取一个随机数作为模型本次输出时得到的输入命令的长度;
16、当模型非第一次输出时,基于长度区间、上一次输出时得到的输入命令的长度和上一次输出时的奖励值,计算本次输出时得到的输入命令的长度。
17、进一步地,所述计算本次输出时得到的输入命令的长度,具体包括:
18、根据上一次输出时得到的输入命令的长度、最高奖励值和上一次输出时的奖励值,计算参考长度;
19、计算上一次输出时得到的输入命令的长度和参考长度的差值,将差值与长度区间的下限中较大的一个作为长度下限;
20、计算上一次输出时得到的输入命令的长度和参考长度的和值,将和值与长度区间的上限中较小的一个作为长度上限;
21、在长度下限和长度上限之间选取一个随机数,将选取的随机数作为本次输出时得到的输入命令的长度。
22、进一步地,所述每组模型根据输入命令的长度和输入命令中每个字符出现的概率,具体包括:
23、根据最高奖励值和上一次输出时的奖励值,计算上一次输出时得到的输入命令中出现的每个字符在本次输出时出现的再现概率;
24、根据每个字符的再现概率、本次输出时的最终字符概率和指定的权值,计算本次输出时每个字符出现的概率。
25、进一步地,所述计算本次输出时每个字符出现的概率,具体包括:
26、根据本次输出时的最终字符概率、前一次输出时的最终字符概率、上一次输出时的奖励值、最高奖励值和指定的调节参数,依次计算可用字符集中每个字符的输出概率,获取输出概率最高的字符,将获取到的字符作为输入命令中的第一个字符;
27、将已获取到的字符反馈至模型中,再次计算每个字符的输出概率,以获取输入命令中的下一个字符,直至输入命令的长度达到本次输出时得到的输入命令的长度。
28、进一步地,所述根据命令反馈和最终字符概率计算本次输出的奖励值,具体包括:
29、根据命令反馈加权计算本次输出的最终奖励值,计算每组模型的字符概率和最终字符概率的偏差值;
30、根据最终奖励值、最终字符概率和偏差值,计算可用字符集中每个字符的奖励值,将所有字符的奖励值作为本次输出的奖励值。
31、进一步地,所述计算每组模型的字符概率和最终字符概率的偏差值,具体包括:
32、获取字符概率和最终字符概率中每个字符的概率之差,将所有字符的概率之差的平方和作为偏差值。
33、第二方面,本专利技术提供了一种基于深度强化学习的设备漏洞检测装置,具体为:包括至少一个处理器和存储器,至少一个处理器和存储器之间通过数据总线连接,存储器存储能被至少一个处理器执行的指令,指令在被处理器执行后,用于完成第一方面中的基于深度强化学习的设备漏洞检测方法。
34、与现有技术相比,本专利技术的有益效果在于:使用深度强化学习的模型进行测试命令的生成,通过策略梯度和平均概率增加了命令的随机性,通过奖励值提高了命令的可参考价值,从而能够通过模型生成大量符合实际需要的用于漏洞检测的命令,以避免人工输入命令所造成的问题。
本文档来自技高网...【技术保护点】
1.一种基于深度强化学习的设备漏洞检测方法,其特征在于,包括:
2.根据权利要求1所述的基于深度强化学习的设备漏洞检测方法,其特征在于,所述获取至少二组样本集合,具体包括:
3.根据权利要求1所述的基于深度强化学习的设备漏洞检测方法,其特征在于,所述构造规则包括长度区间和可用字符集;所述将命令的构造规则输入至少二组训练后的模型中,分别获取每组模型输出的字符概率,具体包括:
4.根据权利要求3所述的基于深度强化学习的设备漏洞检测方法,其特征在于,所述根据长度区间计算模型需生成的输入命令的长度,具体包括:
5.根据权利要求4所述的基于深度强化学习的设备漏洞检测方法,其特征在于,所述计算本次输出时得到的输入命令的长度,具体包括:
6.根据权利要求3所述的基于深度强化学习的设备漏洞检测方法,其特征在于,所述每组模型根据输入命令的长度和输入命令中每个字符出现的概率,具体包括:
7.根据权利要求6所述的基于深度强化学习的设备漏洞检测方法,其特征在于,所述计算本次输出时每个字符出现的概率,具体包括:
8.根据权
9.根据权利要求8所述的基于深度强化学习的设备漏洞检测方法,其特征在于,所述计算每组模型的字符概率和最终字符概率的偏差值,具体包括:
10.一种基于深度强化学习的设备漏洞检测装置,其特征在于:
...【技术特征摘要】
1.一种基于深度强化学习的设备漏洞检测方法,其特征在于,包括:
2.根据权利要求1所述的基于深度强化学习的设备漏洞检测方法,其特征在于,所述获取至少二组样本集合,具体包括:
3.根据权利要求1所述的基于深度强化学习的设备漏洞检测方法,其特征在于,所述构造规则包括长度区间和可用字符集;所述将命令的构造规则输入至少二组训练后的模型中,分别获取每组模型输出的字符概率,具体包括:
4.根据权利要求3所述的基于深度强化学习的设备漏洞检测方法,其特征在于,所述根据长度区间计算模型需生成的输入命令的长度,具体包括:
5.根据权利要求4所述的基于深度强化学习的设备漏洞检测方法,其特征在于,所述计算本次输出时得到的输入命令的长度,...
【专利技术属性】
技术研发人员:陈子义,颜昌隆,王泽伟,
申请(专利权)人:烽火通信科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。