一种基于模糊哈希的跨平台固件同源性安全检测方法与流程

文档序号:18941773发布日期:2019-10-23 01:12阅读:648来源:国知局
一种基于模糊哈希的跨平台固件同源性安全检测方法与流程

本发明涉及信息安全领域,特别涉及一种基于模糊哈希的跨平台固件同源性安全检测方法。



背景技术:

随着物联网技术演进与下沉,万物互联时代正在到来。目前,全球物联网设备数量达到70亿(此数字不包括智能手机,平板电脑,笔记本电脑或固定电话)。预计到2020年,活跃的物联网设备数量将增加到100亿,到2025年将增加到220亿。新技术的发展必然也伴随着新问题的产生。根据福布斯的研究,在物联网项目实施过程中,32%的企业表示对千物联网系统的安全问题的担心是企业所面侣的重要挑战。

固件的安全问题主要在于功能性的第三方库并没有在安全性上得到足够的重视,而在物联网设备固件开发生命周期中,也并没有针对第三方库代码的漏洞审查的环节,大多数的第三方库被直接调用。而近年来由于第三方库安全问题引起的安全事件也不容小觑。例如,由于调用的第三方库如openssl中出现的心脏滴血漏洞、gnubash出现的破壳漏洞和java中的反序列化漏洞,都是第三方资源库或应用框架漏洞的典型案例。统计结果也显示,第三方库在物联网固件安全方面造成的安全风险数量甚至比app上的情况更严重。在本次检测统计中,由第三方库导致的nday安全风险占比超过发现总量的90%。

从物联网设备的安全问题产生原因角度分析可知,平均每个物联网设备固件调用23.2种第三方库,出于节约开发成本、提高开发效率、缩短开发周期的目的,不少物联网设备开发厂商会直接使用第三方库,第三方库在物联网设备固件开发中非常频繁地被调用。

因此,由于固件自身的特点,导致固件使用第三方库的情况非常常见,因此一旦某个第三方库出现安全问题,那么所有引用该库的固件都存在着安全隐患。近年来随着越来越多的人对固件的安全重视程度加深,已经出现了一些对固件第三方库的检测方法,但是现有的方法效率较低,并且无法解决跨平台的问题,所以,提出一种高效的支持跨平台的第三方库的检测方式已尤为必要。进一步来说,需要提供一种基于模糊哈希的跨平台固件同源性安全检测方法。



技术实现要素:

本发明的目的在于克服现有技术的缺点与不足,提供一种基于模糊哈希的跨平台固件同源性安全检测方法,在解决了跨平台同源性检测的同时,创新性的使用第三方库中的字符串作为第三方库的身份信息,进而提高了检测效率,为检测固件的安全度提供了一种高效并且实用的方式。

实现本发明目的的具体技术方案是:

一种基于模糊哈希的跨平台固件同源性安全检测方法,该方法包括以下具体步骤:

步骤s1:将可以获取到的不同版本的第三方库进行预处理,进而得到各第三方库的身份信息,然后建立固件危险信息库;

步骤s2:使用不同方式获取待检测物联网设备的固件包;

步骤s3:对固件包进行分解获取其中的所包含的第三方库的可执行二进制文件;

步骤s4:使用多种方式提取可执行二进制文件中的特征字符串;

步骤s5:将提取到的特征字符串作为固件包的身份信息,然后使用模糊哈希算法对得到的身份信息进行同源性分析;

步骤s6:根据得到的固件中的各第三方库的同源性指数进一步得出固件包的安全信息。

本发明的步骤s1中,固件危险信息库中所包含的第三方库包括但不限于busybox、openssl和javascript等第三方库,同时固件危险信息库中的各第三方库的版本也会进行分类统计汇总。预处理建立的方式是指使用将各个第三方库的可执行二进制文件中的字符串提取出来作为对应第三方库的身份信息。

本发明的步骤s2中,物联网设备包括但不限于路由器、摄像头和智能门锁,对于现有的可提取固件包的各基于嵌入式的物联网智能设备都包括在内。物联网设备固件包的获取方式包括但不限于硬件提取、官网下载和抓包截取。

本发明的步骤s3中,物联网设备固件分解方式包括但不限于使用binwalk、fact和bap等第三方解包工具,binwalk代表着各固件解包工具,fact代表着各个自动化的固件包解包系统,bap代表着各个可以实现解包功能的第三方接口。这里提到的解包是将固件包打开,然后将里面所包含的第三方库提取出来。

本发明的步骤s3中,可执行的二进制文件是指固件中的第三方库中的可执行二进制文件。

本发明的步骤s4中,特征字符串包括但不限于第三方库版本信息、栈空间字符串信息和所使用的字符串常量。第三方库版本信息字符串是指一些直接指明该第三方库版本号的字符串,栈空间字符串是指可执行二进制文件中的栈空间中所包含的字符串,一般是程序执行过程中的所使用的一些临时变量,字符串常量是指程序执行过程中的所写入的各字符串。

本发明的步骤s4中,特征字符串的提取方式包括但不限于string命令和第三方开源工具,string命令为linux系统中自带的提取字符串的命令,第三方开源工具中也拥有提取字符串的功能。

本发明的步骤s5中,同源性分析是指用模糊哈希算法对固件包中的第三方库的身份信息和危险信息库中的第三方库的身份信息进行模糊哈希检测,由于模糊哈希对文字的增删相似性比对有着很好的效果,所以这里使用模糊哈希来对身份信息进行比对。

本发明的步骤s6中,同源性指数是指步骤s5中的各个第三方库相对应计算出的模糊哈希的哈希值的相似性带入同源性计算公式所得出的数值。该数值越大,代表相似性越高,数值越小,相似性越低。其中,模糊哈希计算出来的数值范围为0-100,0代表无任何相似性,100代表完全一致。

本发明的有益效果在于:

能够解决跨平台的固件第三方库同源性检测问题:由于跨平台检测的主要难点在于不同的编译环境对第三方库进行编译后,会将文件中的部分内容更改掉,然而由于在不同编译环境的编译过程中,第三方库中所包含的字符串几乎不会发生变化,因此可以利用这一点来解决跨平台的第三方库同源性检测问题。

能够提高第三方库同源性检测的检测效率:由于常规的同源性检测中,检测对象是整个第三方库,但是由于第三方库中的文件数目非常多,导致在进行检测时会消耗大量的时间,而本发明中使用身份信息来检测第三方库,这样将文件的数量直接变为1,大大提高了检测的效率。

综上,本发明不但解决了跨平台的第三方库同源性检测问题,而且利用将检测比对数量变为1来大大提高了第三方库同源性检测的效率,为物联网固件的同源性安全检测提供了一种可靠的方法。

附图说明

图1是本发明流程概述图;

图2是本发明的详细流程图。

具体实施方式

下面结合以下具体实施例和附图,对本发明作进一步的详细说明。实施本发明的过程、条件、实验方法等,除以下专门提及的内容之外,均为本领域的普遍知识和公知常识,本发明没有特别限制内容。

实施例

本发明中有关的技术术语代表的含义如下:

同源性指数:同源性指数是由模糊哈希算法计算出来的数值,数值范围为0-100,0表示无任何同源性,100表示完全相同。

固件危险信息:若某固件的其中一个第三方库与数据库中的第三方库的同源性指数大于60,则认为该第三方库的同源性较高,则数据库中的第三方库的危险信息会继承给固件。

如图2所示,本发明包括以下步骤:

步骤s1,预处理建立固件危险信息库;

步骤s2,获取待检测物联网设备的固件包;

步骤s3,对固件包进行分解获取其中的可执行二进制文件;

步骤s4,提取可执行二进制文件中的特征字符串;

步骤s5,使用模糊哈希算法对得到的特征字符串集合进行同源性分析;

步骤s6,根据得到的不同的二进制文件的同源性指数和危险信息库进一步得出固件包的安全信息。

下面详细描述本实施例中的步骤s1:

将各个第三方库的可执行二进制文件中的字符串提取出来作为对应第三方库的身份信息,并将各种第三方库的身份信息整理到一起作为固件危险信息库。同时这里进行预处理的第三方库包括但不限于busybox、openssl和javascript,只要是固件中会用到的第三方库,这里都会将其预处理进固件危险信息库中。

下面详细描述本实施例中的步骤s2:

使用硬件阵脚提取、固件包对应官网下载和流量抓包截取下载地址等方法来获取物联网设备固件包,其中物联网设备包括但不限于路由器、摄像头、智能门锁和无人机,对于现有的可提取固件包的各基于嵌入式的物联网智能设备都包括在内。提取方式也不仅限于上述三种,能达到提取固件包的目的即可。

下面详细描述本实施例中的步骤s3:

使用binwalk、fact和bap等第三方解包工具,binwalk代表着各固件解包工具对步骤s2中所得到的固件包进行解包操作,其中解包方式不止上述三种,fact代表着各个自动化的固件包解包系统,bap代表着各个可以实现解包功能的第三方接口。这里提到的解包是将固件包打开,然后将里面所包含的第三方库提取出来。进而再提取出固件中的可执行的二进制文件。

下面详细描述本实施例中的步骤s4:

特征字符串包括但不限于第三方库版本信息、栈空间字符串信息和所使用的字符串常量。第三方库版本信息字符串是指一些直接指明该第三方库版本号的字符串,栈空间字符串是指可执行二进制文件中的栈空间中所包含的字符串,一般是程序执行过程中的所使用的一些临时变量,字符串常量是指程序执行过程中的所写入的各字符串。

特征字符串的提取方式包括但不限于string命令和第三方开源工具,string命令为linux系统中自带的提取字符串的命令,第三方开源工具中也拥有提取字符串的功能。

将固件包中第三方库中获得的特征字符串放入对应的以第三方库名字命名的文本文件中,并以字典序进行排序,进而可以获得固件中的不同第三方库的身份信息。

下面详细描述本实施例中的步骤s5:

同源性分析是指用模糊哈希算法对固件包中的第三方库的身份信息和危险信息库中的第三方库的身份信息进行模糊哈希检测,由于模糊哈希对文字的增删相似性比对有着很好的效果,所以这里使用模糊哈希来对身份信息进行比对。

下面详细描述本实施例中的步骤s6:

同源性指数是指步骤s5中的各个第三方库相对应计算出的模糊哈希的哈希值的相似性带入同源性计算公式所得出的数值。该数值越大,代表相似性越高,数值越小,相似性越低。其中,模糊哈希计算出来的数值范围为0-100,0代表无任何相似性,100代表完全一致。

若某固件的其中一个第三方库与数据库中的第三方库的同源性指数大于60,则认为该第三方库的同源性较高,则数据库中的第三方库的危险信息会继承给固件。此时即可记录第三方库中的危险信息也为固件中的危险信息。进而对固件中的各个第三方库进行检测后即可得出整个固件中的危险信息。

本发明的保护内容不局限于以上实施例。在不背离发明构思的精神和范围下,本领域技术人员能够想到的变化和优点都被包括在本发明中,并且以所附的权利要求书为保护范围。

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