基于文件同源性分析的嵌入式设备固件漏洞检测文献综述
2020-05-01 08:50:31
嵌入式设备随处可见,手机、打印机、家用路由器、智能摄像头、网络摄像机、电脑组件及其外设都是常用的嵌入式设备。随着物联网技术的兴起,越来越多的嵌入式设备连入网络,其安全问题也日益突出。
嵌入式系统与传统的PC机系统不同,其通常由一个称为“固件”的软件组成。固件是指写入EEPROM或Flash等存储介质中的程序。通俗的理解就是固化的软件。与传统的软件相同,部分嵌入式设备中的固件也可能在缺陷。由于嵌入式设备制造领域存在“客制化”的生产模式,这就导致同一漏洞可能出现在不同的设备上。
在硬件生产的过程中,设备厂商通常只是固化一小段引导程序,而诸如操作系统、文件系统等则是先交由第三方分包商构建,再交给供应商代购。这就出现了一个现象:不同的设备厂商可能选择同一个分包商。由于分包商使用的开发工具、开发包、第三方库没有统一的标准,从而导致不同品牌的设备其运行的固件中很大概率包含相同的第三方库。因此,嵌入式设备会受到一些来自于共同的第三方库的已知漏洞的影响,同一个第三方库的漏洞可能会影响不同的设备厂商。这使得对嵌入式设备固件的漏洞检测存在大量的重复性工作。仅针对某个特定型号的设备或某个版本的固件的分析无法代表该系列所有固件的安全状态,必须找到一种合理的针对嵌入式设备固件的漏洞分析方法,有效地鉴别固件依赖库以及开发库之间的关联性,确定引入的相同或相似的开源代码的同源性,进而对固件出现的漏洞进行修复。
第三方库的同源性可理解为不同的固件开发库是否源自同一个开源资料库或这是否由同一个第三方开发商、开发团队编写,以及其是否有内在关联性、相似性。
现有的固件漏洞分析方法以静态分析为主,通过扫描某个固件程序中硬编码的后门标识,或采用符号执行对控制流和数据流进行跟踪,分析对象较为单一,无法对相同序列固件的整体安全性进行综合评估。由于嵌入式设备固件专用于特定的硬件,动态分析不通提供商的嵌入式设备通常需要使用其配套的调试设备。其中具有代表性的Avatar部署过程不仅复杂,而且不同的设备固件特定执行环境需要QEMU进行仿真,适用性较差。
本课题旨在根据已知存在漏洞的固件,寻找合适的特征文件,利用同源性分析,检测未知的固件中是否存在漏洞。{title}2. 研究的基本内容与方案
{title}本课题的主要研究内容是基于文件同源性分析的固件家族归类及漏洞检测,包括固件家族分类、固件解包和特征文件提取、特征数据库建立以及基于二进制差量分析、模糊哈希、字符串常量匹配的特征文件近似相似性分析,最后根据分析结果对固件安全性做出评估。下面分别介绍二进制差量分析、字符串常量匹配和模糊哈希三种方法:
二进制差量分析和模糊哈希能够比较全面地分析二进制代码变化的部分,对基于单一体系结构下编译的固件第三方库的同源性分析效果较好。由于基于ARM,MIPS,PowerPC等不同体系结构的二进制文件差异比较大,因此针对跨架构下的同源性分析效果不明显。
字符串常量匹配法来源于字符串常量在编译过程中与体系结构无关,相同的源代码基于ARM、MIPS等不同体系结构的交叉编译工具编译,字符串常量往往不发生改变。因此这种方法能够较好地适应跨体系结构之间的第三方库的同源性分析。
本课题首先设计相关平台,通过网络爬虫等技术收集下载如路由器、网络摄像头等设备的不同型号、不同系列的固件,为大规模的分析提供数据支持;然后利用收集到的设备固件,根据已知有漏洞的固件,寻找合适的特征文件,利用同源性分析,检测未知的固件中是否存在漏洞。3. 参考文献[1] 李登, 尹青, 林键,等. 基于同源性分析的嵌入式设备固件漏洞检测[J]. 计算机工程, 2017, 43(1):72-78.
[2] 常青, 刘中金, 王猛涛,等. VDNS:一种跨平台的固件漏洞关联算法[J]. 计算机研究与发展, 2016, 53(10):2288-2298.