基于神经网络注意力机制的程序检测方法技术

技术编号:39894774 阅读:7 留言:0更新日期:2023-12-30 13:07
本发明专利技术涉及一种基于神经网络注意力机制的程序检测方法

【技术实现步骤摘要】
基于神经网络注意力机制的程序检测方法、装置及介质


[0001]本专利技术涉及程序安全测试
,尤其是涉及一种基于神经网络注意力机制的程序检测方法

装置及介质


技术介绍

[0002]随着计算机和网络技术的发展,程序与我们的生活和工作越来越相关

然而,程序的复杂性使得它不可避免地存在漏洞

通常,漏洞一般不会影响程序的功能,但如果攻击者利用它们,则有可能执行攻击者编写的恶意代码,从而危及用户信息的安全性

因此,漏洞检测在软件和系统安全中起着至关重要的作用,模糊测试技术作为一种有效的漏洞挖掘技术得到了广泛的研究和应用

[0003]模糊测试主要对收集到的种子进行特定的变化,以获得大量的测试用例,这些测试用例可用于执行目标程序并触发程序中的潜在崩溃

然而,传统的模糊测试普遍存在测试自动化程度低和检测到的漏洞类型较少的问题

因此,机器学习开始被引入到模糊测试用例生成过程中

但现有的基于机器学习的模糊测试方法仍然存在边缘覆盖不足

效率低等问题


技术实现思路

[0004]本专利技术的目的是为了提供一种基于神经网络注意力机制的程序检测方法

装置及介质,以解决边缘覆盖不足

效率低等问题,同时能够有效提高模糊测试的导向性

[0005]本专利技术的目的可以通过以下技术方案来实现:
[0006]一种基于神经网络注意力机制的程序检测方法,包括以下步骤:
[0007]步骤
1)
获取初始化种子用例;
[0008]步骤
2)
利用结合了注意力机制的前馈神经网络模型对种子用例进行训练,并根据训练好的前馈神经网络模型,利用
AdaMax
梯度下降算法引导突变以获得测试用例;
[0009]步骤
3)
将测试用例输入待测目标程序,基于模糊测试方法得到测试结果;
[0010]步骤
4)
根据步骤
3)
的测试结果对前馈神经网络模型进行迭代优化以获得最优测试用例;
[0011]步骤
5)
将最优测试用例输入待测目标程序,基于模糊测试方法得到最终测试结果

[0012]所述步骤
1)
具体为:使用模糊器
AFL
对待测目标程序进行广义模糊,以获取初始化种子用例

[0013]所述步骤
2)
包括以下步骤:
[0014]步骤
21)
向函数中读取初始化种子用例,使用工具
afl

cmin
对初始化种子用例进行预处理,筛除完全一样和具有相同代码执行路径的数据样本;
[0015]步骤
22)
构建结合了注意力机制的前馈神经网络模型,对种子用例进行数据处理操作,并训练前馈神经网络模型;
[0016]步骤
23)
根据训练好的前馈神经网络模型,使用
AdaMax
梯度下降算法引导突变以获得有效的测试用例

[0017]所述预处理包括去重

最小集化处理

[0018]所述步骤
22)
包括以下步骤:
[0019]步骤
221)
构建
Attention()
类;
[0020]步骤
222)
在初始前馈神经网络模型中添加
Attention()
注意力机制层,构建结合了注意力机制的前馈神经网络模型;
[0021]步骤
223)
对种子用例进行数据处理操作,并根据设定对结合了注意力机制的前馈神经网络模型进行训练

[0022]所述结合了注意力机制的前馈神经网络模型包括输入层

输出层和隐藏层,其中,隐藏层包括两个全连接层

激活函数层和注意力层,并引入随机失活机制,输入层连接至第一个全连接层,第一个全连接层设有
4096
个神经元,并且接受大小为
10000
的输入;第二个全连接层与第一个全连接层相连,并设有
2000
个神经元;激活函数层使用
relu

sigmoid
激活函数

[0023]所述步骤
23)
具体包括以下步骤:
[0024]步骤
231)
以训练好的结合了注意力机制的前馈神经网络模型为基础,使用输出层的神经元来计算梯度:
[0025]ω

ω

η
J

(
ω
)
[0026]其中
ω
为参数,
η
为学习率,
J

(
ω
)
为参数的梯度损失;
[0027]步骤
232)
加入
AdaMax
梯度下降算法指导梯度更新过程:
[0028][0029]其中
ω
为参数,
η
为学习率,
r
i
是参数
ω
的二阶矩的估计,为当前动量矢量
s
i
的偏置修正估计

[0030]所述模糊测试的具体过程为:
[0031]向被测目标程序中输入测试用例,记录执行过程中的异常情况,并将结果保存到日志文件中,所述异常情况包括崩溃

错误消息或不正常的行为;
[0032]分析日志文件,识别和分类发现的漏洞和错误,用于结合了注意力机制的前馈神经网络模型的迭代优化

[0033]所述步骤
4)
具体为:将当前测试用例与之前的测试用例按预设比例混合,输入到结合了注意力机制的前馈神经网络模型中,并结合前一次的模糊测试结果,迭代优化前馈神经网络模型

[0034]一种基于神经网络注意力机制的程序检测装置,包括存储器

处理器,以及存储于所述存储器中的程序,所述处理器执行所述程序时实现如上述所述的方法

[0035]一种存储介质,其上存储有程序,所述程序被执行时实现如上述所述的方法

[0036]与现有技术相比,本专利技术具有以下有益效果:
[0037](1)
本专利技术提出一种基于神经网络注意力机制的程序检测方法,以对软件程序进行漏洞挖掘,使用神经网络结合注意机制构建自动样本生成模型,对模型进行训练,使模型学习样本的内在格式特征,从而能够自动生成本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种基于神经网络注意力机制的程序检测方法,其特征在于,包括以下步骤:步骤
1)
获取初始化种子用例;步骤
2)
利用结合了注意力机制的前馈神经网络模型对种子用例进行训练,并根据训练好的前馈神经网络模型,利用
AdaMax
梯度下降算法引导突变以获得测试用例;步骤
3)
将测试用例输入待测目标程序,基于模糊测试方法得到测试结果;步骤
4)
根据步骤
3)
的测试结果对前馈神经网络模型进行迭代优化以获得最优测试用例;步骤
5)
将最优测试用例输入待测目标程序,基于模糊测试方法得到最终测试结果
。2.
根据权利要求1所述的一种基于神经网络注意力机制的程序检测方法,其特征在于,所述步骤
1)
具体为:使用模糊器
AFL
对待测目标程序进行广义模糊,以获取初始化种子用例
。3.
根据权利要求1所述的一种基于神经网络注意力机制的程序检测方法,其特征在于,所述步骤
2)
包括以下步骤:步骤
21)
向函数中读取初始化种子用例,使用工具
afl

cmin
对初始化种子用例进行预处理,筛除完全一样和具有相同代码执行路径的数据样本;步骤
22)
构建结合了注意力机制的前馈神经网络模型,对种子用例进行数据处理操作,并训练前馈神经网络模型;步骤
23)
根据训练好的前馈神经网络模型,使用
AdaMax
梯度下降算法引导突变以获得有效的测试用例
。4.
根据权利要求3所述的一种基于神经网络注意力机制的程序检测方法,其特征在于,所述步骤
22)
包括以下步骤:步骤
221)
构建
Attention()
类;步骤
222)
在初始前馈神经网络模型中添加
Attention()
注意力机制层,构建结合了注意力机制的前馈神经网络模型;步骤
223)
对种子用例进行数据处理操作,并根据设定对结合了注意力机制的前馈神经网络模型进行训练
。5.
根据权利要求1或3所述的一种基于神经网络注意力机制的程序检测方法,其特征在于,所述结合了注意力机制的前馈神经网络模型包括输入层

输出层和隐藏层,其中,隐藏层包括两个全连接层

激活函数层和注意力层,并引入随机...

【专利技术属性】
技术研发人员:王彬彬张蕾刘畅沈泉江郑成温蜜王亮亮张闫
申请(专利权)人:国网上海市电力公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1