一种物联网设备固件更新漏洞的自动化检测方法

文档序号:37860816发布日期:2024-05-07 19:36阅读:8来源:国知局
一种物联网设备固件更新漏洞的自动化检测方法

本发明涉及网络安全,尤其是涉及一种物联网设备固件更新漏洞的自动化检测方法。


背景技术:

1、物联网设备在网络通信、工业控制、智能家居、智慧医疗等诸多领域有广泛应用,物联网设备固件作为物联网设备的重要组成部分,能够为物联网设备提供云端交互、设备间通信、安全保证等功能。物联网设备厂商为保证设备免于受到网络攻击,通常会推出新版本固件以修复旧版本固件中存在的漏洞,即固件更新。然而固件更新本身容易遭到网络攻击,比如中间人攻击、固件篡改、钓鱼攻击等。针对固件更新的攻击一旦成功,通常使攻击者获取物理网设备的内部数据及其控制权,如果是路由器、网关等关键设备,攻击者还可进一步获取网络、服务器控制权,其影响远高于针对物联网设备的攻击。

2、当前针对物联网设备固件更新漏洞的检测以人工逆向分析为主,其检测准确率与检测效率高度依赖分析人员技术水平,且检测成本巨大,难以应对日益增多的网络攻击。


技术实现思路

1、本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种物联网设备固件更新漏洞的自动化检测方法,能够自动、准确、高效地检测物联网设备固件更新漏洞。

2、本发明的目的可以通过以下技术方案来实现:一种物联网设备固件更新漏洞的自动化检测方法,包括以下步骤:

3、s1、从固件中提取文件系统,并进行前后端文件分离;

4、s2、解析前后端文件,获得待分析后端binary文件;

5、s3、解析待分析后端binary文件,构建待分析后端binary文件间调用图、固件更新过程的函数间调用图、函数控制流图;

6、s4、根据步骤s3构建的待分析后端binary文件间调用图、固件更新过程的函数间调用图、函数控制流图,进行漏洞检测,输出得到漏洞报告。

7、进一步地,所述步骤s1具体包括以下步骤:

8、s11、从二进制格式固件中提取文件系统;

9、s12、从文件系统中分离前端web文件和后端binary文件。

10、进一步地,所述步骤s1具体是使用固件提取工具binwalk提供的api编写脚本代码,以从二进制格式固件中提取文件系统;

11、所述步骤s12具体是按照前后端文件所在文件夹及文件格式,以从文件系统中分离前后端文件。

12、进一步地,所述步骤s2具体包括以下步骤:

13、s21、针对前端web文件,扫描其中的html、javascript、php代码,筛选与固件更新有关的函数,获取其中http请求中的字符串;

14、s22、依据获取的字符串,对后端binary文件进行筛选,获取待分析后端binary文件。

15、进一步地,所述待分析后端binary文件包括固件版本检查、云端固件下载、本地固件上传、固件解密校验、新固件写入、设备重启文件。

16、进一步地,所述步骤s21的具体过程为:

17、针对前端web文件,首先扫描html文件,获取其中<button>标签的onclick属性集合b,<button></button>中i18n的参数和<button>标签的value属性集合t,<input>标签的onclick属性集合i;

18、依据预设的语料库,通过正则表达式匹配对集合b、t、i进行筛选,筛选后的集合为b`、t`、i`,而后对b`、t`所在的<button>标签集合取交集,获取其onclick属性集合bt`;

19、为bt`和i`集合中的每个元素构建其抽象语法树ast,检索ast中callee:identifier和property:identifier的name属性,而后在前端web文件中检索name属性代表的函数,通过代码扫描,检索http请求,若无http请求,则按照处理bt`和i`集合的步骤递归进行直至找到http请求或递归至最底层调用函数,而后获取http请求中的字符串,构成集合k。

20、进一步地,所述步骤s22的具体过程为:

21、检索后端binary文件,若某个后端binary文件包含集合k中至少一个元素,则将该文件标记为待分析后端binary文件。

22、进一步地,所述步骤s3具体包括以下步骤:

23、s31、针对每个待分析后端binary文件bi,通过检索预设函数对应参数,并检查参数是否包含预设关键字,以获取预设关键字所指示的待分析后端binary文件bj(j≠i),bi与bj构成调用与被调用关系,以bi、bj文件为节点、调用关系为边,构建待分析后端binary文件间调用图;

24、s32、针对待分析后端binary文件间调用图中各待分析后端binary文件,通过设定的入口函数代码特征定位入口函数,使用反汇编工具识别入口函数与其他函数的调用关系,以函数为节点、函数调用关系为边,构建该待分析后端binary文件的固件更新过程的函数间调用图;

25、s33、针对某个待分析后端binary文件的固件更新过程的函数间调用图,对其中每一个函数,利用反汇编工具,识别其基本块与基本块之间的控制流,以基本块为节点、控制流为边,构建函数控制流图。

26、进一步地,所述步骤s4具体包括以下步骤:

27、s41、依照待分析后端binary文件间调用图,按照调用关系逐一对各待分析后端binary文件的固件更新过程的函数间调用图进行分析,具体而言,对各待分析后端binary的固件更新过程的函数间调用图,首先筛选叶子节点,从中选择执行shell命令的函数和第三方库函数,而后从叶子节点出发向根节点进行检测;

28、s42、在检测过程中,对于每个节点,按照设定的漏洞特征对函数控制流图的各基本块进行漏洞检测,符合漏洞特征的,则将该函数标记为潜在漏洞函数;

29、s43、进行漏洞可达性验证,检测到潜在漏洞函数后,继续向根节点检索,检查根节点到潜在漏洞函数所在节点之间的节点是否与潜在漏洞函数所在节点存在数据调用,对于存在数据调用的节点,若其所调用数据由外部输入,则将潜在漏洞函数标记为漏洞函数,并记录函数地址、函数名、函数参数、函数返回值、漏洞特征,形成漏洞报告。

30、进一步地,所述设定的漏洞特征具体为:

31、若待分析后端binary文件为固件版本检查文件,则对应漏洞特征为:wget命令中未使用https,通信密钥硬编码;

32、若待分析后端binary文件为云端固件下载文件,则对应漏洞特征为:wget命令中未使用https,通信密钥硬编码,固件下载至物联网设备前未校验;

33、若待分析后端binary文件为本地固件上传文件,则对应漏洞特征为:固件上传至物联网设备前未校验;

34、若待分析后端binary文件为固件解密校验文件,则对应漏洞特征为:校验函数缺失,采用弱加密、弱校验算法,校验函数易绕过;

35、若待分析后端binary文件为新固件写入文件,则对应漏洞特征为:mtd_write命令执行前不存在校验函数;

36、若待分析后端binary文件为设备重启文件,则对应漏洞特征为:reboot命令执行前不存在校验函数。

37、与现有技术相比,本发明具有以下优点:

38、本发明从二进制格式固件中提取文件系统,并进行前后端文件分离,再针对前后端文件进行解析,以得到待分析后端binary文件,之后通过解析待分析后端binary文件,构建得到待分析后端binary文件间调用图、固件更新过程的函数间调用图、函数控制流图,并据此进行漏洞自动化检测、输出得到漏洞报告。本发明无需人工逆向固件并进行繁琐的汇编代码分析工作,只需提供固件文件即可自动、准确、高效地检测物联网设备固件更新漏洞。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1