一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

物联网设备固件漏洞检测方法、装置、设备及存储介质与流程

2022-12-13 21:09:14 来源:中国专利 TAG:


1.本发明涉及物联网技术领域,尤其涉及一种物联网设备固件漏洞检测方法、装置、设备及存储介质。


背景技术:

2.随着物联网的快速发展,物联网(internet of things,iot)设备的数量稳步上升,全球移动通信系统协会(gsma)预计2025年全球iot设备连接数将达到246亿,而我国物联网连接数增速预计快于全球,物联网与行业融合创新不断加速,已广泛应用于医疗、家具、公共事业等多个行业。
3.伴随着物联网规模扩大,近年来物联网安全事件持续频发,针对行业乃至国家级关键信息基础设施(如电网、通信网络等)基础设置的攻击增加,卡巴斯基最新数据显示,2019年上半年针对iot设备的攻击行为比2018年同期增加7倍,安全形势日益严峻。iot设备的安全日益重要。而因为iot设备的架构的丰富性,同一源码可以针对不同的cpu架构进行交叉编译,而指令、函数调用方面存在的差异导致跨架构的二进制文件漏洞检测十分困难,漏洞检测效率低下且漏报率高。
4.上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。


技术实现要素:

5.本发明的主要目的在于提供一种物联网设备固件漏洞检测方法、装置、设备及存储介质,旨在解决现有技术iot设备固件漏洞检测效率低下且漏报率高的技术问题。
6.为实现上述目的,本发明提供了一种物联网设备固件漏洞检测方法,所述方法包括以下步骤:
7.获取目标物联网设备的固件对应的程序控制流程及脆弱程序对应的脆弱程序控制流程,其中,所述脆弱程序为存在漏洞的程序;
8.通过预设相似度判定模型对所述程序控制流程及所述脆弱程序控制流程进行相似度判定,以获得相似度判定结果;
9.根据所述相似度判定结果确定所述目标物联网设备的固件是否存在漏洞。
10.可选的,所述通过预设相似度判定模型对所述程序控制流程及所述脆弱程序控制流程进行相似度判定,以获得相似度判定结果的步骤,包括:
11.对所述程序控制流程进行语义特征提取,以获得属性控制流图,并对所述脆弱程序控制流程进行语义特征提取,以获得脆弱属性控制流图;
12.通过预设相似度判定模型对所述属性控制流图及所述脆弱属性控制流图进行相似度判定,以获得相似度判定结果。
13.可选的,所述对所述程序控制流程进行语义特征提取,以获得属性控制流图,并对所述脆弱程序控制流程进行语义特征提取,以获得脆弱属性控制流图的步骤,包括:
14.通过预设语义提取模型对所述程序控制流程进行语义特征提取,以获得属性控制流图;
15.通过所述预设语义提取模型对所述脆弱程序控制流程进行语义特征提取,以获得脆弱属性控制流图。
16.可选的,所述通过预设语义提取模型对所述程序控制流程进行语义特征提取,以获得属性控制流图,并通过所述预设语义提取模型对所述脆弱程序控制流程进行语义特征提取,以获得脆弱属性控制流图的步骤之前,还包括:
17.获取函数提取训练集;
18.通过所述函数提取训练集对初始语义提取模型进行训练,以获得预设语义提取模型。
19.可选的,所述通过预设相似度判定模型对所述程序控制流程及所述脆弱程序控制流程进行相似度判定,以获得相似度判定结果的步骤之前,还包括:
20.获取相似度判定训练集;
21.通过相似度判定训练集对初始相似度判定模型进行训练,以获得预设相似度判定模型。
22.可选的,所述通过相似度判定训练集对初始相似度判定模型进行训练,以获得预设相似度判定模型的步骤,包括:
23.基于随机梯度下降法,通过相似度判定训练集及目标函数对初始相似度判定模型中的模型参数进行调整,以获得预设相似度判定模型;
24.其中,所述目标函数为:
[0025][0026]
式中,w1,p1...pn,w2均为所述初始相似度判定模型中的模型参数;i用于表示第i个样本;gi与gi'为所述相似度判定训练集中训练样本中相似度判定使用的属性控制流图;sim(gi,gi')为初始相似度判定模型计算得到的相似性结果;yi为所述相似度判定训练集中训练样本的标准相似度判定结果。
[0027]
可选的,所述通过相似度判定训练集对初始相似度判定模型进行训练,以获得预设相似度判定模型的步骤之后,还包括:
[0028]
获取相似度判定测试集及所述相似度判定测试集对应的标准相似度判定结果集;
[0029]
通过所述预设相似度判定模型对所述相似度判定测试集中的测试样本进行相似度判定,以获得相似度判定结果集;
[0030]
根据所述相似度判定结果集及所述标准相似度判定结果集确定模型判定准确率;
[0031]
在所述模型判定准确率低于预设阈值时,返回所述通过相似度判定训练集对初始相似度判定模型进行训练,以获得预设相似度判定模型的步骤。
[0032]
可选的,所述获取函数提取训练集的步骤之前,还包括:
[0033]
获取代码样本集;
[0034]
根据预设样本构建规则对所述代码样本集中的代码样本进行编译,以获得代码编译样本集;
[0035]
根据所述代码编译样本集构建函数提取训练集。
[0036]
可选的,所述根据预设样本构建规则对所述代码样本集中的代码样本进行编译,以获得代码编译样本集的步骤,包括:
[0037]
根据预设样本构建规则生成多个代码编译条件,其中,所述代码编译条件包括代码编译平台、编译器及编译器优化级别;
[0038]
基于所述代码编译条件对所述代码样本集中的代码样本进行编译,以获得代码编译样本集。
[0039]
可选的,所述根据所述代码编译样本集构建函数提取训练集的步骤,包括:
[0040]
获取所述代码编译样本集中各个代码编译样本对应的代码编译条件及所述代码编译样本中各个代码块对应的代码语义和邻接信息;
[0041]
根据所述代码语义及所述邻接信息构建对应的属性控制流图;
[0042]
根据所述代码编译样本集、所述代码编译样本集中各个代码编译样本对应的属性控制流图及代码编译条件构建函数提取训练集。
[0043]
可选的,所述根据所述相似度判定结果确定所述目标物联网设备的固件是否存在漏洞的步骤之后,还包括:
[0044]
获取根据所述相似度判定结果确定所述目标物联网设备的固件是否存在漏洞的漏洞检测结果;
[0045]
根据所述漏洞检测结果及所述脆弱程序生成漏洞检测报告,将所述漏洞检测报告保存并展示。
[0046]
可选的,所述根据所述漏洞检测结果及所述脆弱程序生成漏洞检测报告,将所述漏洞检测报告保存并展示的步骤之前,还包括:
[0047]
根据所述漏洞检测结果及所述脆弱程序确定漏洞类型,根据所述漏洞类型在漏洞修复策略库中查找对应的漏洞修复策略;
[0048]
相应的,所述根据所述漏洞检测结果及所述脆弱程序生成漏洞检测报告,将所述漏洞检测报告保存并展示的步骤,包括:
[0049]
根据所述漏洞修复策略、所述漏洞检测结果及所述脆弱程序生成漏洞检测报告,将所述漏洞检测报告保存并展示。
[0050]
此外,为实现上述目的,本发明还提出一种物联网设备固件漏洞检测装置,所述物联网设备固件漏洞检测装置包括以下模块:
[0051]
数据获取模块,用于获取目标物联网设备的固件对应的程序控制流程及脆弱程序对应的脆弱程序控制流程,其中,所述脆弱程序为存在漏洞的程序;
[0052]
相似判定模块,用于通过预设相似度判定模型对所述程序控制流程及所述脆弱程序控制流程进行相似度判定,以获得相似度判定结果;
[0053]
漏洞检测模块,用于根据所述相似度判定结果确定所述目标物联网设备的固件是否存在漏洞。
[0054]
可选的,所述相似判定模块,还用于对所述程序控制流程进行语义特征提取,以获得属性控制流图,并对所述脆弱程序控制流程进行语义特征提取,以获得脆弱属性控制流图;通过预设相似度判定模型对所述属性控制流图及所述脆弱属性控制流图进行相似度判定,以获得相似度判定结果。
[0055]
可选的,所述相似判定模块,还用于通过预设语义提取模型对所述程序控制流程
进行语义特征提取,以获得属性控制流图;通过所述预设语义提取模型对所述脆弱程序控制流程进行语义特征提取,以获得脆弱属性控制流图。
[0056]
可选的,所述相似判定模块,还用于获取函数提取训练集;通过所述函数提取训练集对初始语义提取模型进行训练,以获得预设语义提取模型。
[0057]
可选的,所述相似判定模块,还用于获取相似度判定训练集;通过相似度判定训练集对初始相似度判定模型进行训练,以获得预设相似度判定模型。
[0058]
可选的,所述漏洞检测模块,还用于获取根据所述相似度判定结果确定所述目标物联网设备的固件是否存在漏洞的漏洞检测结果;根据所述漏洞检测结果及所述脆弱程序生成漏洞检测报告,将所述漏洞检测报告保存并展示。
[0059]
此外,为实现上述目的,本发明还提出一种物联网设备固件漏洞检测设备,所述物联网设备固件漏洞检测设备包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的物联网设备固件漏洞检测程序,所述物联网设备固件漏洞检测程序被所述处理器执行时实现如上所述的物联网设备固件漏洞检测方法的步骤。
[0060]
此外,为实现上述目的,本发明还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有物联网设备固件漏洞检测程序,所述物联网设备固件漏洞检测程序执行时实现如上所述的物联网设备固件漏洞检测方法的步骤。
[0061]
本发明通过获取目标物联网设备的固件对应的程序控制流程及脆弱程序对应的脆弱程序控制流程,其中,脆弱程序为存在漏洞的程序;通过预设相似度判定模型对程序控制流程及脆弱程序控制流程进行相似度判定,以获得相似度判定结果;根据相似度判定结果确定目标物联网设备的固件是否存在漏洞。由于预设相似度判定模型是基于初始相似度判定模型训练得到的,可以判定两个程序是否具有相似性,通过预设相似度判定模型对程序控制流程及脆弱程序控制流程进行相似度判定,根据相似度判定结果即可确定目标物联网设备的固件是否存在与脆弱程序同类型的漏洞。
附图说明
[0062]
图1是本发明实施例方案涉及的硬件运行环境的电子设备的结构示意图;
[0063]
图2为本发明物联网设备固件漏洞检测方法第一实施例的流程示意图;
[0064]
图3为本发明物联网设备固件漏洞检测方法第二实施例的流程示意图;
[0065]
图4为本发明物联网设备固件漏洞检测方法第三实施例的流程示意图;
[0066]
图5为本发明物联网设备固件漏洞检测装置第一实施例的结构框图。
[0067]
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
[0068]
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0069]
参照图1,图1为本发明实施例方案涉及的硬件运行环境的物联网设备固件漏洞检测设备结构示意图。
[0070]
如图1所示,该电子设备可以包括:处理器1001,例如中央处理器(central processing unit,cpu),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏
(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(wireless-fidelity,wi-fi)接口)。存储器1005可以是高速的随机存取存储器(random access memory,ram)存储器,也可以是稳定的非易失性存储器(non-volatile memory,nvm),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
[0071]
本领域技术人员可以理解,图1中示出的结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0072]
如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及物联网设备固件漏洞检测程序。
[0073]
在图1所示的电子设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明电子设备中的处理器1001、存储器1005可以设置在物联网设备固件漏洞检测设备中,所述电子设备通过处理器1001调用存储器1005中存储的物联网设备固件漏洞检测程序,并执行本发明实施例提供的物联网设备固件漏洞检测方法。
[0074]
本发明实施例提供了一种物联网设备固件漏洞检测方法,参照图2,图2为本发明一种物联网设备固件漏洞检测方法第一实施例的流程示意图。
[0075]
本实施例中,所述物联网设备固件漏洞检测方法包括以下步骤:
[0076]
步骤s10:获取目标物联网设备的固件对应的程序控制流程及脆弱程序对应的脆弱程序控制流程,其中,所述脆弱程序为存在漏洞的程序。
[0077]
需要说明的是,本实施例的执行主体可以是所述物联网设备固件漏洞检测设备,所述物联网设备固件漏洞检测设备可以是个人电脑、服务器等电子设备,还可以为其他可实现相同或相似功能的设备,本实施例对此不加以限制,在本实施例及下述各实施例中,以物联网设备固件漏洞检测设备为例对本发明物联网设备固件漏洞检测方法进行说明。
[0078]
需要说明的是,固件(firmware)可以是担任着一个系统最基础最底层工作的软件,例如:物联网设备硬件的驱动程序。程序控制流程可以包括程序在执行时的数据处理、数据交互、程序跳转等流程,程序控制流程可以是将代码进行编译之后得到的。脆弱程序可以是存在漏洞的程序,脆弱程序控制流程可以是脆弱程序的程序控制流程。
[0079]
需要说明的是,目标物联网设备中可能开启有固件保护机制,在目标物联网设备开启有固件保护机制时,会使得难以读取目标物联网设备的固件,因此,可以先通过目标物联网设备的设备调试接口读取目标物联网设备的寄存器信息,通过对寄存器信息进行分析,确定目标物联网设备开启的固件保护机制类型,根据固件保护机制类型确定对应的固件读取策略,根据固件读取策略读取目标物联网设备的固件,例如:在通过目标物联网设备的寄存器信息确定目标物联网设备开启的固件保护机制类型为代码读取保护时,根据代码读取保护对应的固件读取策略先查找可向寄存器传递数据的加载指令,通过加载指令向寄存器传入目标内存地址,通过寄存器的属性值读取内存数据,以获得目标物联网设备的固件;在通过目标物联网设备的寄存器信息确定目标物联网设备开启的固件保护机制类型为端口保护机制(access port protection,approtect)时,可以向物联网设备进行故障注入,关闭端口保护机制。
[0080]
步骤s20:通过预设相似度判定模型对所述程序控制流程及所述脆弱程序控制流
程进行相似度判定,以获得相似度判定结果。
[0081]
需要说明的是,预设相似度判定模型可以是预先根据初始相似度判定模型训练好的神经网络模型,预设相似度判定模型的输入可以为需要进行相似度判定的两个程序对应的属性控制流图(attributed control flow graph,acfg),也可以直接输入两个程序的程序控制流程,由预设相似度判定模型根据程序控制流程进行分析,得到对应的属性控制流图。
[0082]
进一步地,为了便于通过预设相似度判定模型进行相似度判定,本实施例步骤s20,可以包括:
[0083]
对所述程序控制流程进行语义特征提取,以获得属性控制流图,并对所述脆弱程序控制流程进行语义特征提取,以获得脆弱属性控制流图;通过预设相似度判定模型对所述属性控制流图及所述脆弱属性控制流图进行相似度判定,以获得相似度判定结果。
[0084]
可以理解的是,脆弱属性控制流图可以为脆弱程序对应的属性控制流图。自行对程序控制流程及脆弱程序控制流程进行语义特征提取,更加灵活,便于人工介入,可以保证特征提取的准确率,且不需通过预设相似度判定模型进行语义特征提取,可以提高预设相似度判定模型的判定效率,节省模型运算时间。
[0085]
步骤s30:根据所述相似度判定结果确定所述目标物联网设备的固件是否存在漏洞。
[0086]
需要说明的是,相似度判定结果可以包括相似及不相似,可以理解的是,若固件与脆弱程序的相似度判定结果为相似,则可以判定目标物联网设备的固件也含有脆弱程序对应的漏洞,而若固件与脆弱程序的相似判定结果为不相似,则可以判定目标物联网设备的固件不含有脆弱程序对应的漏洞。
[0087]
在实际使用中,可以将目标物联网设备的固件与脆弱程序库中的各个脆弱程序进行相似度判定,根据相似度判定结果为相似的脆弱程序确定目标物联网设备的固件中存在的漏洞。脆弱程序库可以是由大量已经确定含有漏洞的程序组合构建的。
[0088]
进一步地,为了便于用户明确目标物联网设备固件的漏洞,本实施例步骤s30之后,还可以包括:
[0089]
获取根据所述相似度判定结果确定所述目标物联网设备的固件是否存在漏洞的漏洞检测结果;根据所述漏洞检测结果及所述脆弱程序生成漏洞检测报告,将所述漏洞检测报告保存并展示。
[0090]
需要说明的是,漏洞检测结果可以包括相似度判定结果及漏洞判定结果,漏洞判定结果可以包括存在漏洞及不存在漏洞。漏洞检测报告可以包括进行相似度判定的脆弱程序、相似度判定结果及漏洞判定结果等信息。
[0091]
可以理解的是,将漏洞检测报告进行展示可以令用户快速明确与目标物联网设备的固件进行相似度判定的脆弱程序及目标物联网设备的固件是否存在漏洞,将漏洞检测报告进行保存可以便于后续进行追溯分析,例如:分析漏洞检测是否准确等。
[0092]
进一步地,为了便于用户对目标物联网设备固件的漏洞进行修复,本实施例所述根据所述漏洞检测结果及所述脆弱程序生成漏洞检测报告,将所述漏洞检测报告保存并展示的步骤之前,还可以包括:
[0093]
根据所述漏洞检测结果及所述脆弱程序确定漏洞类型,根据所述漏洞类型在漏洞
修复策略库中查找对应的漏洞修复策略。
[0094]
相应的,所述根据所述漏洞检测结果及所述脆弱程序生成漏洞检测报告,将所述漏洞检测报告保存并展示的步骤,可以包括:
[0095]
根据所述漏洞修复策略、所述漏洞检测结果及所述脆弱程序生成漏洞检测报告,将所述漏洞检测报告保存并展示。
[0096]
需要说明的是,漏洞修复策略库可以是根据现有的漏洞及漏洞修复策略进行聚类分析得到的,其中可以包括各种漏洞类型对应的漏洞修复策略。
[0097]
可以理解的是,脆弱程序可以是已经标记过存在漏洞的程序,在漏洞检测结果为目标物联网设备的固件存在漏洞时,可以获取脆弱程序中漏洞对应的漏洞类型,根据漏洞类型可以在漏洞修复策略库中查找对应的漏洞修复策略,根据漏洞修复策略、楼冻结检测结果集脆弱程序生成漏洞检测报告,将漏洞检测报告进行展示可以令用户快速明确目标物联网设备的固件中存在的漏洞及漏洞类型,并可以根据漏洞修复策略尝试对目标物联网设备的固件进行漏洞修复,可以进一步提高用户体验。
[0098]
本实施例通过获取目标物联网设备的固件对应的程序控制流程及脆弱程序对应的脆弱程序控制流程,其中,脆弱程序为存在漏洞的程序;通过预设相似度判定模型对程序控制流程及脆弱程序控制流程进行相似度判定,以获得相似度判定结果;根据相似度判定结果确定目标物联网设备的固件是否存在漏洞。由于预设相似度判定模型是基于初始相似度判定模型训练得到的,可以判定两个程序是否具有相似性,通过预设相似度判定模型对程序控制流程及脆弱程序控制流程进行相似度判定,根据相似度判定结果即可确定目标物联网设备的固件是否存在与脆弱程序同类型的漏洞。
[0099]
参考图3,图3为本发明一种物联网设备固件漏洞检测方法第二实施例的流程示意图。
[0100]
基于上述第一实施例,本实施例物联网设备固件漏洞检测方法在所述步骤s20之前,还包括:
[0101]
步骤s11:获取相似度判定训练集。
[0102]
需要说明的是,相似度判定训练集可以是由多个相似度判定样本构建的集合,相似度判定样本可以包括两个二进制程序对应的属性控制流图及对应的相似度判定结果。
[0103]
步骤s12:通过相似度判定训练集对初始相似度判定模型进行训练,以获得预设相似度判定模型。
[0104]
需要说明的是,为了推导得到初始相似度判定模型,可以将属性控制流图表示为g=(v,e),其中v为属性控制流图中顶点的集合,e为属性控制流图中边的集合,先为每个顶点v∈v计算一个p维特征μv,然后使用顶点嵌入的聚合计算g的嵌入向量μg。即μg=av∈v(μv),其中,a是一个聚合函数,在本实施例中,以求和作为聚合函数。则,嵌入向量计算公式为:
[0105][0106]
其中,μg为嵌入向量,w2为模型参数,是一个p
×
p矩阵,μv为顶点对应的p维特征。
[0107]
其中,求取顶点v对应的特征μv可以基于基础的structure2vec模型,在其中加入神经网络训练其非线性变化的模型。
[0108]
其中,structure2vec模型的基础公式为:
[0109][0110]
在structure2vec模型的基础上使用神经网络对f参数化:
[0111][0112]
其中,xv是属性控制流图中图节点(或基本块)级特征的d维向量,w1是d
×
p矩阵,n(v)为v的前置节点集合,σ为n层全连接神经网络,可以表示为:
[0113][0114]
其中,pi(i=1,...,n)是p
×
p矩阵,n为嵌入深度,relu是整流线性单位,即relu(x)=max{0,x}。
[0115]
在图嵌入计算完毕之后,可以将通过siamese模型处理得到的相似性结果与预设相似阈值进行比对,将比对结果作为初始相似度判定模型的输出,即相似度判定结果,例如:在相似性结果大于预设相似阈值时,比对结果为相似,初始相似度判定模型输出1,在相似性结果小于预设相似阈值时,比对结果为不相似,初始相似度判定模型输出-1。siamese模型公式可以表示为:
[0116][0117]
其中,sim(g,g')为相似性结果,g与g'为需要进行相似度判定的属性控制流图,φ(g)及φ(g')为嵌入向量,即通过嵌入向量公式计算得到的μg。
[0118]
综上所述,将上述公式进行整合,即可得到初始相似度判定模型。
[0119]
需要说明的是,在构建初始相似度判定模型之后,需要构建一个目标函数,通过相似度判定训练集及目标函数对初始相似度模型进行训练,在训练过程中对初始相似度模型中的模型参数不断进行优化调整,在训练完毕时,即可得到预设相似度判定模型。
[0120]
在实际使用中,可以基于随机梯度下降法,通过相似度判定训练集及目标函数对初始相似度判定模型中的模型参数进行调整,以获得预设相似度判定模型;
[0121]
其中,所述目标函数为:
[0122][0123]
式中,w1,p1...pn,w2均为所述初始相似度判定模型中的模型参数;i用于表示第i个样本;gi与gi'为所述相似度判定训练集中训练样本中相似度判定使用的属性控制流图;sim(gi,gi')为初始相似度判定模型计算得到的相似性结果;yi为所述相似度判定训练集中训练样本的标准相似度判定结果,值可以为1(相似)或-1(不相似)。
[0124]
在实际使用中,随机梯度下降法模型收敛速度极快,可以提高模型训练速度,但相对可能会导致并不能获取到最优解,因此,根据实际需要,可以选用其他模型收敛方法,例如:批量梯度下降法、小批量地图下降法等,本实施例对此不加以限制。
[0125]
进一步地,为了保证训练完毕的预设相似度判定模型的准确性,本实施例步骤s12之后,还可以包括:
[0126]
获取相似度判定测试集及所述相似度判定测试集对应的标准相似度判定结果集;通过所述预设相似度判定模型对所述相似度判定测试集中的测试样本进行相似度判定,以获得相似度判定结果集;根据所述相似度判定结果集及所述标准相似度判定结果集确定模型判定准确率;在所述模型判定准确率低于预设阈值时,返回所述通过相似度判定训练集对初始相似度判定模型进行训练,以获得预设相似度判定模型的步骤。
[0127]
需要说明的是,相似度判定测试集可以是由多个测试样本构建而成的集合,测试样本可以包括包括两个二进制程序对应的属性控制流图,标准相似度判定结果集可以是由相似度判定测试集中各个测试样本对应的标准相似度判定结果构建的集合。相似度判定结果集可以是通过预设相似度判定模型对各个测试样本进行相似度判定,获得的相似度判定结果构建的集合。预设阈值可以根据实际需要进行设置。
[0128]
在实际使用中,通过将相似度判定结果集与标准相似度判定结果集进行比对,可以确定预设相似度判定模型的模型判定准确率,将模型判定准确率与预设阈值进行对比,当模型判定准确率大于预设阈值时,可以判定预设相似度判定模型的模型判定准确率满足预期,可以投入实际使用,当模型判定准确率小于或等于预设阈值时,可以判定预设相似度判定模型的模型判定准确率不满足预期,需要重新进行训练,此时,可以返回所述通过相似度判定训练集对初始相似度判定模型进行训练,以获得预设相似度判定模型的步骤重新训练模型。
[0129]
本实施例通过获取相似度判定训练集;通过相似度判定训练集对初始相似度判定模型进行训练,以获得预设相似度判定模型。为通过预设相似度判定模型对属性控制流图及脆弱属性控制流图进行相似度判定提供了基础,且在预设相似度判定模型训练完毕之后,还对预设相似度判定模型进行了准确率校验,在准确率校验不通过时,继续训练预设相似度判定模型,保证了训练完毕的预设相似度判定模型的相似度判定准确率,提高了物联网设备固件漏洞检测方法的可靠性。
[0130]
参考图4,图4为本发明一种物联网设备固件漏洞检测方法第三实施例的流程示意图。
[0131]
基于上述第一实施例,本实施例物联网设备固件漏洞检测方法在所述步骤s10之前,还可以包括:
[0132]
步骤s01:获取函数提取训练集。
[0133]
需要说明的是,函数提取训练集可以是由多个函数提取样本组合而成的集合。函数提取样本可以包括代码编译样本、代码编译样本对应的属性控制流图及代码编译条件等信息。代码编译样本可以是基于代码编译条件将代码样本进行编译后得到的。代码编译条件可以包括代码编译平台、编译器及编译器优化级别等信息。
[0134]
进一步地,为了便于训练预设语义提取模型,本实施例步骤s01之前,还可以包括:
[0135]
获取代码样本集;根据预设样本构建规则对所述代码样本集中的代码样本进行编译,以获得代码编译样本集;根据所述代码编译样本集构建函数提取训练集。
[0136]
需要说明的是,代码样本集可以是由多个代码样本组合而成的集合,代码样本可以是选择进行编译的程序或程序样本。预设样本构建规则可以根据实际需要设置,预设样本构建规则可以是用于描述包括如何对代码样本集中的代码样本进行编译的规则,例如:对代码样本进行编译需要使用的代码编译平台、编译器及编译优化级别。代码编译样本集
可以是由多个代码编译样本组合而成的集合。
[0137]
进一步地,为了使训练完毕的预设语义提取模型的泛用性,本实施例所述根据预设样本构建规则对所述代码样本集中的代码样本进行编译,以获得代码编译样本集的步骤,可以包括:
[0138]
根据预设样本构建规则生成多个代码编译条件,其中,所述代码编译条件包括代码编译平台、编译器及编译器优化级别;基于所述代码编译条件对所述代码样本集中的代码样本进行编译,以获得代码编译样本集。
[0139]
需要说明的是,因为iot设备的架构十分丰富,主要体现于代码编译平台不同、编译器不同及编译器优化级别不同,同一源码针对不同的cpu架构进行交叉编译,所得到的编译后的代码也不相同,例如:同一源码在arm架构与在mips架构上进行编译,得到的二进制文件也不尽相同,对应的属性控制流图也并不相同。若训练所使用的样本均来自于一种架构,则训练得到的预设语义提取模型也仅适用于一种架构,会十分局限,泛用性不足,因此,可以将代码样本集中的代码样本基于不同的架构进行编译,得到多种不同架构下对应的代码编译样本,将得到的代码编译样本组合,以获得代码编译样本集,再基于代码编译样本集构建函数提取训练集,可以保证训练完毕的预设语义提取模型可适用于多种架构,可提升预设语义提取模型的泛用性。
[0140]
在实际使用中,可以根据预设样本构建规则生成多个代码编译条件,再基于代码编译条件对代码样本集中的各个代码样本都基于多个代码编译条件进行编译,最终获得代码编译样本集。
[0141]
例如:假设预设样本构建规则中指定的代码编译平台为两种,编译器为两种,编译器优化级别也是两种,根据排列组合,即可组合生成8个代码编译条件,若代码样本集中有8个代码样本,将每个代码样本都基于8个代码编译条件进行编译,则共可获得64个代码编译样本,将这64个代码编译样本进行组合,即可获得代码编译样本集。
[0142]
在实际使用中,所述根据所述代码编译样本集构建函数提取训练集的步骤,可以包括:
[0143]
获取所述代码编译样本集中各个代码编译样本对应的代码编译条件及所述代码编译样本中各个代码块对应的代码语义和邻接信息;根据所述代码语义及所述邻接信息构建对应的属性控制流图;根据所述代码编译样本集、所述代码编译样本集中各个代码编译样本对应的属性控制流图及代码编译条件构建函数提取训练集。
[0144]
需要说明的是,代码语义可以为代码的含义,即代码运行逻辑,为了便于分析,可以以抽象语法树等形式进行表示。邻接信息可以包括代码块的邻接矩阵,即代码交互等信息。
[0145]
可以理解的是,获取对代码编译样本集中的各个代码编译样本中代码块对应的代码语义和邻接信息,再根据代码语义和邻接信息即可构建代码编译样本对应的属性控制流图,根据代码编译样本集及代码编译样本集中各个代码编译样本对应的属性控制流图及代码编译条件构建函数提取训练集。
[0146]
步骤s02:通过所述函数提取训练集对初始语义提取模型进行训练,以获得预设语义提取模型。
[0147]
需要说明的是,预设语义提取模型的作用是使用机器语言代替人工进行提取,其
中,初始语义提取模型可以是引入自然语言处理(natural language processing,nlp)构建的模型,例如:基于bert(bidirectional encoder representations from transformers)算法构建初始语义提取模型。对初始语义提取模型进行训练,得到的预设语义提取模型可以对编译后的代码进行语义提取,获取编译后的代码中各个代码块的代码语义、邻接信息等,最终输出属性控制流图。
[0148]
需要说明的是,在预设语义提取模型训练完毕之后,还可以通过函数提取测试集对预设语义提取模型进行准确率测试,在准确率测试未通过时,继续对预设语义提取模型进行训练。函数提取测试集可以是采用与函数提取训练集相同的构建方法构建而成的。
[0149]
相应的,本实施例中所述步骤s20,可以包括:
[0150]
步骤s201:通过预设语义提取模型对所述程序控制流程进行语义特征提取,以获得属性控制流图。
[0151]
可以理解的是,通过对初始语义提取模型训练完毕的预设语义提取模型可以对程序控制流程进行语义特征提取,并输出对应的属性控制流图。
[0152]
步骤s202:通过所述预设语义提取模型对所述脆弱程序控制流程进行语义特征提取,以获得脆弱属性控制流图。
[0153]
可以理解的是,通过对初始语义提取模型训练完毕的预设语义提取模型可以对脆弱程序控制流程进行语义特征提取,并输出对应的属性控制流图,即脆弱属性控制流图。
[0154]
步骤s203:通过预设相似度判定模型对所述属性控制流图及所述脆弱属性控制流图进行相似度判定,以获得相似度判定结果。
[0155]
可以理解的是,预设相似度判定模型可以对两个属性控制流图进行相似度判定,并输出相似度判定结果,因此,通过预设相似度判定模型可以对属性控制流图及脆弱属性控制流图进行相似度判定,并输出相似度判定结果。
[0156]
本实施例通过获取函数提取训练集;通过所述函数提取训练集对初始语义提取模型进行训练,以获得预设语义提取模型;通过预设语义提取模型对所述程序控制流程进行语义特征提取,以获得属性控制流图;通过所述预设语义提取模型对所述脆弱程序控制流程进行语义特征提取,以获得脆弱属性控制流图。可以通过预设语义提取模型对程序控制流程及脆弱程序控制流程进行语义特征提取,而不再需要人工进行语义特征提取,使得本实施例物联网设备固件漏洞检测方法更加简便,提高了用户体验。
[0157]
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有物联网设备固件漏洞检测程序,所述物联网设备固件漏洞检测程序被处理器执行时实现如上文所述的物联网设备固件漏洞检测方法的步骤。
[0158]
参照图5,图5为本发明物联网设备固件漏洞检测装置第一实施例的结构框图。
[0159]
如图5所示,本发明实施例提出的物联网设备固件漏洞检测装置包括:
[0160]
数据获取模块501,用于获取目标物联网设备的固件对应的程序控制流程及脆弱程序对应的脆弱程序控制流程,其中,所述脆弱程序为存在漏洞的程序;
[0161]
相似判定模块502,用于通过预设相似度判定模型对所述程序控制流程及所述脆弱程序控制流程进行相似度判定,以获得相似度判定结果;
[0162]
漏洞检测模块503,用于根据所述相似度判定结果确定所述目标物联网设备的固件是否存在漏洞。
[0163]
本实施例通过获取目标物联网设备的固件对应的程序控制流程及脆弱程序对应的脆弱程序控制流程,其中,脆弱程序为存在漏洞的程序;通过预设相似度判定模型对程序控制流程及脆弱程序控制流程进行相似度判定,以获得相似度判定结果;根据相似度判定结果确定目标物联网设备的固件是否存在漏洞。由于预设相似度判定模型是基于初始相似度判定模型训练得到的,可以判定两个程序是否具有相似性,通过预设相似度判定模型对程序控制流程及脆弱程序控制流程进行相似度判定,根据相似度判定结果即可确定目标物联网设备的固件是否存在与脆弱程序同类型的漏洞。
[0164]
进一步地,所述相似判定模块502,还用于对所述程序控制流程进行语义特征提取,以获得属性控制流图,并对所述脆弱程序控制流程进行语义特征提取,以获得脆弱属性控制流图;通过预设相似度判定模型对所述属性控制流图及所述脆弱属性控制流图进行相似度判定,以获得相似度判定结果。
[0165]
进一步地,所述相似判定模块502,还用于通过预设语义提取模型对所述程序控制流程进行语义特征提取,以获得属性控制流图;通过所述预设语义提取模型对所述脆弱程序控制流程进行语义特征提取,以获得脆弱属性控制流图。
[0166]
进一步地,所述相似判定模块502,还用于获取函数提取训练集;通过所述函数提取训练集对初始语义提取模型进行训练,以获得预设语义提取模型。
[0167]
进一步地,所述相似判定模块502,还用于获取相似度判定训练集;通过相似度判定训练集对初始相似度判定模型进行训练,以获得预设相似度判定模型。
[0168]
进一步地,所述相似判定模块502,还用于基于随机梯度下降法,通过相似度判定训练集及目标函数对初始相似度判定模型中的模型参数进行调整,以获得预设相似度判定模型;
[0169]
其中,所述目标函数为:
[0170][0171]
式中,w1,p1...pn,w2均为所述初始相似度判定模型中的模型参数;i用于表示第i个样本;gi与gi'为所述相似度判定训练集中训练样本中相似度判定使用的属性控制流图;sim(gi,gi')为初始相似度判定模型计算得到的相似性结果;yi为所述相似度判定训练集中训练样本的标准相似度判定结果。
[0172]
进一步地,所述相似判定模块502,还用于获取相似度判定测试集及所述相似度判定测试集对应的标准相似度判定结果集;通过所述预设相似度判定模型对所述相似度判定测试集中的测试样本进行相似度判定,以获得相似度判定结果集;根据所述相似度判定结果集及所述标准相似度判定结果集确定模型判定准确率;在所述模型判定准确率低于预设阈值时,返回所述通过相似度判定训练集对初始相似度判定模型进行训练,以获得预设相似度判定模型的步骤。
[0173]
进一步地,所述相似判定模块502,还用于获取代码样本集;根据预设样本构建规则对所述代码样本集中的代码样本进行编译,以获得代码编译样本集;根据所述代码编译样本集构建函数提取训练集。
[0174]
进一步地,所述相似判定模块502,还用于根据预设样本构建规则生成多个代码编译条件,其中,所述代码编译条件包括代码编译平台、编译器及编译器优化级别;基于所述
代码编译条件对所述代码样本集中的代码样本进行编译,以获得代码编译样本集。
[0175]
进一步地,所述相似判定模块502,还用于获取所述代码编译样本集中各个代码编译样本对应的代码编译条件及所述代码编译样本中各个代码块对应的代码语义和邻接信息;根据所述代码语义及所述邻接信息构建对应的属性控制流图;根据所述代码编译样本集、所述代码编译样本集中各个代码编译样本对应的属性控制流图及代码编译条件构建函数提取训练集。
[0176]
进一步地,所述漏洞检测模块503,还用于获取根据所述相似度判定结果确定所述目标物联网设备的固件是否存在漏洞的漏洞检测结果;根据所述漏洞检测结果及所述脆弱程序生成漏洞检测报告,将所述漏洞检测报告保存并展示。
[0177]
进一步地,所述漏洞检测模块503,还用于:根据所述漏洞检测结果及所述脆弱程序确定漏洞类型,根据所述漏洞类型在漏洞修复策略库中查找对应的漏洞修复策略;
[0178]
所述漏洞检测模块503,还用于根据所述漏洞修复策略、所述漏洞检测结果及所述脆弱程序生成漏洞检测报告,将所述漏洞检测报告保存并展示。
[0179]
应当理解的是,以上仅为举例说明,对本发明的技术方案并不构成任何限定,在具体应用中,本领域的技术人员可以根据需要进行设置,本发明对此不做限制。
[0180]
需要说明的是,以上所描述的工作流程仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部来实现本实施例方案的目的,此处不做限制。
[0181]
另外,未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的物联网设备固件漏洞检测方法,此处不再赘述。
[0182]
此外,需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
[0183]
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0184]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器(read only memory,rom)/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0185]
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
[0186]
本发明公开了a1、一种物联网设备固件漏洞检测方法,所述物联网设备固件漏洞检测方法包括以下步骤:
[0187]
获取目标物联网设备的固件对应的程序控制流程及脆弱程序对应的脆弱程序控
制流程,其中,所述脆弱程序为存在漏洞的程序;
[0188]
通过预设相似度判定模型对所述程序控制流程及所述脆弱程序控制流程进行相似度判定,以获得相似度判定结果;
[0189]
根据所述相似度判定结果确定所述目标物联网设备的固件是否存在漏洞。
[0190]
a2、如a1所述的物联网设备固件漏洞检测方法,所述通过预设相似度判定模型对所述程序控制流程及所述脆弱程序控制流程进行相似度判定,以获得相似度判定结果的步骤,包括:
[0191]
对所述程序控制流程进行语义特征提取,以获得属性控制流图,并对所述脆弱程序控制流程进行语义特征提取,以获得脆弱属性控制流图;
[0192]
通过预设相似度判定模型对所述属性控制流图及所述脆弱属性控制流图进行相似度判定,以获得相似度判定结果。
[0193]
a3、如a2所述的物联网设备固件漏洞检测方法,所述对所述程序控制流程进行语义特征提取,以获得属性控制流图,并对所述脆弱程序控制流程进行语义特征提取,以获得脆弱属性控制流图的步骤,包括:
[0194]
通过预设语义提取模型对所述程序控制流程进行语义特征提取,以获得属性控制流图;
[0195]
通过所述预设语义提取模型对所述脆弱程序控制流程进行语义特征提取,以获得脆弱属性控制流图。
[0196]
a4、如a3所述的物联网设备固件漏洞检测方法,所述通过预设语义提取模型对所述程序控制流程进行语义特征提取,以获得属性控制流图,并通过所述预设语义提取模型对所述脆弱程序控制流程进行语义特征提取,以获得脆弱属性控制流图的步骤之前,还包括:
[0197]
获取函数提取训练集;
[0198]
通过所述函数提取训练集对初始语义提取模型进行训练,以获得预设语义提取模型。
[0199]
a5、如a1所述的物联网设备固件漏洞检测方法,所述通过预设相似度判定模型对所述程序控制流程及所述脆弱程序控制流程进行相似度判定,以获得相似度判定结果的步骤之前,还包括:
[0200]
获取相似度判定训练集;
[0201]
通过相似度判定训练集对初始相似度判定模型进行训练,以获得预设相似度判定模型。
[0202]
a6、如a5所述的物联网设备固件漏洞检测方法,所述通过相似度判定训练集对初始相似度判定模型进行训练,以获得预设相似度判定模型的步骤,包括:
[0203]
基于随机梯度下降法,通过相似度判定训练集及目标函数对初始相似度判定模型中的模型参数进行调整,以获得预设相似度判定模型;
[0204]
其中,所述目标函数为:
[0205][0206]
式中,w1,p1...pn,w2均为所述初始相似度判定模型中的模型参数;i用于表示第i
个样本;gi与gi'为所述相似度判定训练集中训练样本中相似度判定使用的属性控制流图;sim(gi,gi')为初始相似度判定模型计算得到的相似性结果;yi为所述相似度判定训练集中训练样本的标准相似度判定结果。
[0207]
a7、如a5所述的物联网设备固件漏洞检测方法,所述通过相似度判定训练集对初始相似度判定模型进行训练,以获得预设相似度判定模型的步骤之后,还包括:
[0208]
获取相似度判定测试集及所述相似度判定测试集对应的标准相似度判定结果集;
[0209]
通过所述预设相似度判定模型对所述相似度判定测试集中的测试样本进行相似度判定,以获得相似度判定结果集;
[0210]
根据所述相似度判定结果集及所述标准相似度判定结果集确定模型判定准确率;
[0211]
在所述模型判定准确率低于预设阈值时,返回所述通过相似度判定训练集对初始相似度判定模型进行训练,以获得预设相似度判定模型的步骤。
[0212]
a8、如a4所述的物联网设备固件漏洞检测方法,所述获取函数提取训练集的步骤之前,还包括:
[0213]
获取代码样本集;
[0214]
根据预设样本构建规则对所述代码样本集中的代码样本进行编译,以获得代码编译样本集;
[0215]
根据所述代码编译样本集构建函数提取训练集。
[0216]
a9、如a8所述的物联网设备固件漏洞检测方法,所述根据预设样本构建规则对所述代码样本集中的代码样本进行编译,以获得代码编译样本集的步骤,包括:
[0217]
根据预设样本构建规则生成多个代码编译条件,其中,所述代码编译条件包括代码编译平台、编译器及编译器优化级别;
[0218]
基于所述代码编译条件对所述代码样本集中的代码样本进行编译,以获得代码编译样本集。
[0219]
a10、如a8所述的物联网设备固件漏洞检测方法,所述根据所述代码编译样本集构建函数提取训练集的步骤,包括:
[0220]
获取所述代码编译样本集中各个代码编译样本对应的代码编译条件及所述代码编译样本中各个代码块对应的代码语义和邻接信息;
[0221]
根据所述代码语义及所述邻接信息构建对应的属性控制流图;
[0222]
根据所述代码编译样本集、所述代码编译样本集中各个代码编译样本对应的属性控制流图及代码编译条件构建函数提取训练集。
[0223]
a11、如a1-a10任一项所述的物联网设备固件漏洞检测方法,所述根据所述相似度判定结果确定所述目标物联网设备的固件是否存在漏洞的步骤之后,还包括:
[0224]
获取根据所述相似度判定结果确定所述目标物联网设备的固件是否存在漏洞的漏洞检测结果;
[0225]
根据所述漏洞检测结果及所述脆弱程序生成漏洞检测报告,将所述漏洞检测报告保存并展示。
[0226]
a12、如a11所述的物联网设备固件漏洞检测方法,所述根据所述漏洞检测结果及所述脆弱程序生成漏洞检测报告,将所述漏洞检测报告保存并展示的步骤之前,还包括:
[0227]
根据所述漏洞检测结果及所述脆弱程序确定漏洞类型,根据所述漏洞类型在漏洞
修复策略库中查找对应的漏洞修复策略;
[0228]
相应的,所述根据所述漏洞检测结果及所述脆弱程序生成漏洞检测报告,将所述漏洞检测报告保存并展示的步骤,包括:
[0229]
根据所述漏洞修复策略、所述漏洞检测结果及所述脆弱程序生成漏洞检测报告,将所述漏洞检测报告保存并展示。
[0230]
本发明公开了b13、一种物联网设备固件漏洞检测装置,所述物联网设备固件漏洞检测装置包括以下模块:
[0231]
数据获取模块,用于获取目标物联网设备的固件对应的程序控制流程及脆弱程序对应的脆弱程序控制流程,其中,所述脆弱程序为存在漏洞的程序;
[0232]
相似判定模块,用于通过预设相似度判定模型对所述程序控制流程及所述脆弱程序控制流程进行相似度判定,以获得相似度判定结果;
[0233]
漏洞检测模块,用于根据所述相似度判定结果确定所述目标物联网设备的固件是否存在漏洞。
[0234]
b14、如b13所述的物联网设备固件漏洞检测装置,所述相似判定模块,还用于对所述程序控制流程进行语义特征提取,以获得属性控制流图,并对所述脆弱程序控制流程进行语义特征提取,以获得脆弱属性控制流图;通过预设相似度判定模型对所述属性控制流图及所述脆弱属性控制流图进行相似度判定,以获得相似度判定结果。
[0235]
b15、如b14所述的物联网设备固件漏洞检测装置,所述相似判定模块,还用于通过预设语义提取模型对所述程序控制流程进行语义特征提取,以获得属性控制流图;通过所述预设语义提取模型对所述脆弱程序控制流程进行语义特征提取,以获得脆弱属性控制流图。
[0236]
b16、如b15所述的物联网设备固件漏洞检测装置,所述相似判定模块,还用于获取函数提取训练集;通过所述函数提取训练集对初始语义提取模型进行训练,以获得预设语义提取模型。
[0237]
b17、如b13所述的物联网设备固件漏洞检测装置,所述相似判定模块,还用于获取相似度判定训练集;通过相似度判定训练集对初始相似度判定模型进行训练,以获得预设相似度判定模型。
[0238]
b18、如b13所述的物联网设备固件漏洞检测装置,所述漏洞检测模块,还用于获取根据所述相似度判定结果确定所述目标物联网设备的固件是否存在漏洞的漏洞检测结果;根据所述漏洞检测结果及所述脆弱程序生成漏洞检测报告,将所述漏洞检测报告保存并展示。
[0239]
本发明公开了c19、一种物联网设备固件漏洞检测设备,所述物联网设备固件漏洞检测设备包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的物联网设备固件漏洞检测程序,所述物联网设备固件漏洞检测程序被所述处理器执行时实现如上所述的物联网设备固件漏洞检测方法的步骤。
[0240]
本发明公开了d20、一种计算机可读存储介质,所述计算机可读存储介质上存储有物联网设备固件漏洞检测程序,所述物联网设备固件漏洞检测程序执行时实现如上所述的物联网设备固件漏洞检测方法的步骤。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献