【技术实现步骤摘要】
基于神经网络的嵌入式终端软件代码漏洞检测方法及装置
本专利技术涉及智能电网安全
,尤其是涉及一种基于神经网络的嵌入式终端软件代码漏洞检测方法及装置。
技术介绍
嵌入式技术在电力系统中具有至关重要的作用,且应用于电力系统中的嵌入式设备(即嵌入式终端)具有类型多样和架构多元化的特点。这些嵌入式设备在提供各种功能的同时,也容易带来安全隐患。研究表明,80.4%以上的嵌入式设备固件在供应商发布时就包含了多个N-day漏洞,甚至会包含已被公开8年以上的漏洞。由于嵌入式设备代码具有同源、更新慢的特点,因此一个源代码级的漏洞可能会传播到数百个以上不同硬件架构和软件平台的其他嵌入式设备中,且可能会长期存在于这些设备中。因此,如何检测嵌入式设备中的已知漏洞成为了保证嵌入式设备安全的关键。针对不同平台下的嵌入式设备代码进行相似性研究和检测是识别已公开漏洞的有效方法。目前,针对嵌入式设备代码相似性检测的研究主要有两种。一种是扫描嵌入式设备固件中特定的字符串或常量,该方法在遇到复杂漏洞或者漏洞绑定不同字符串或常量时无法正确识别。另一种 ...
【技术保护点】
1.一种基于神经网络的嵌入式终端软件代码漏洞检测方法,其特征在于,包括:/n获取目标嵌入式终端软件的源代码,并对所述源代码进行预处理,得到二进制代码;/n将所述二进制代码的特征函数输入至预先训练好的神经网络,得到二进制代码的属性控制流图;/n将所述二进制代码的属性控制流图和漏洞代码的属性控制流图进行相似性比对,得到比对结果;其中,所述漏洞代码为预设漏洞库中的已知漏洞;/n基于所述比对结果确定所述嵌入式终端软件的源代码是否存在已知漏洞。/n
【技术特征摘要】
1.一种基于神经网络的嵌入式终端软件代码漏洞检测方法,其特征在于,包括:
获取目标嵌入式终端软件的源代码,并对所述源代码进行预处理,得到二进制代码;
将所述二进制代码的特征函数输入至预先训练好的神经网络,得到二进制代码的属性控制流图;
将所述二进制代码的属性控制流图和漏洞代码的属性控制流图进行相似性比对,得到比对结果;其中,所述漏洞代码为预设漏洞库中的已知漏洞;
基于所述比对结果确定所述嵌入式终端软件的源代码是否存在已知漏洞。
2.根据权利要求1所述的方法,其特征在于,将所述二进制代码的属性控制流图和漏洞代码的属性控制流图进行相似性比对,得到比对结果包括:
将所述二进制代码的属性控制流图输入至暹罗网络,得到第一特征向量;其中,所述第一特征向量用于表征所述二进制代码的属性控制流图的结构信息;
将所述漏洞代码的属性控制流图输入至所述暹罗网络,得到第二特征向量;其中,所述第二特征向量用于表征所述漏洞代码的属性控制流图的结构信息;
将所述第一特征向量和所述第二特征向量进行相似性比对,得到所述比对结果。
3.根据权利要求2所述的方法,其特征在于,将所述第一特征向量和所述第二特征向量进行相似性比对,得到所述比对结果包括:
计算所述第一特征向量和所述第二特征向量的余弦距离;
基于所述余弦距离确定所述比对结果。
4.根据权利要求2所述的方法,其特征在于,在将所述二进制代码的属性控制流图和漏洞代码的属性控制流图进行相似性比对之前,方法还包括:
获取漏洞训练样本和/或非漏洞训练样本;其中,所述漏洞训练样本包含漏洞代码的属性控制流图,所述非漏洞训练样本包含二进制代码的属性控制流图;
基于所述漏洞训练样本和/或非漏洞训练样本训练暹罗网络,并在训练所述暹罗网络的过程中,通过拟牛顿法对所述暹罗网络的目标函数进行优化,得到优化后的暹罗网络。
5.根据权利要求4所述的方法,其特征在于,获取漏洞训练样本和/或非漏洞训练样本包括:...
【专利技术属性】
技术研发人员:朱朝阳,颜秉晶,周亮,王海翔,冀晓宇,徐文渊,应欢,张燕秒,卢新岱,韩丽芳,缪思薇,朱亚运,李霁远,
申请(专利权)人:中国电力科学研究院有限公司,浙江大学,国家电网有限公司,国网浙江省电力有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。