基于文件同源性的嵌入式设备固件漏洞检测系统开发文献综述
2020-04-14 21:32:18
1.设计背景
在21世纪这个物联网技术高速发展的时代,路由器,门禁,手机,相机,网络摄像头等嵌入式设备早已经成为人们生活与工作中必不可少的部分。但在越来越多嵌入式设备接入网络的同时,我们也必须对嵌入式系统的安全性做出保证。
“固件”是固化在硬件设备中的软件,承担最基础最底层的工作,支持设备的运行,是整个嵌入式系统的神经中枢。和传统软件一样,嵌入式设备中的固件也存在漏洞,跟据开放式WEB应用程序安全项目(OWASP)2017年的调查中,固件安全问题在争对物联网设备的所有攻击中排名第九[1]。在文献[2]中,也证明并演示了当前设备固件存在很多安全漏洞,并且这些漏洞可以造成极其严重的后果。所以确保嵌入式设备安全性的核心就是确保固件的安全,而漏洞检测在其中起着举足轻重的作用。
由于嵌入式设备制造界的“客制化”生产模式,几乎所有的嵌入式设备都存在固件漏洞。不同的设备厂商可能选择同一个固件开发分包商,或同一个设备厂商的软件可能由多个分包商开发;但由于分包商依赖的开发工具、开发包或者提供的库没有统一标准,导致不同品牌的设备可能运行相同或者类似的固件以及包含相同的第三方库,同一品牌的设备可能存在多个不同分包商第三方库导致的漏洞。这产生了以下问题:
(1)在进行系统安全性检测时,需要对大量的嵌入式设备固件进行解包、分析,传统的静态,动态分析方法无法适用。
(2)仅针对某个特定型号的设备或某个版本固件的分析,无法代表该系列所有固件的安全状态,极大地增加了工作的重复性。
但在产生问题的同时,也可利用固件镜像的生产模式特点,设计一种基于第三方库同源性的固件漏洞关联算法。第三方库同源可理解为不同的固件开发库是否源自同一个开源资源库或者是否由同一个第三方开发商、团队编写,以及其是否有内在关联性、相似性;在实际运用中,通过将设备固件映像与已公开的包含漏洞的第三方库进行比对,可对固件安全性进行整体判断。
由于嵌入式设备固件非开源,无法获得其源代码,必须使用二进制文件进行比对分析,但当前的二进制比对算法(比特流比对[3-4],指令序列比对[5-10]和动态插装[12]等),无法适用于不同平台的固件文件。因此,需要一种支持跨平台的关联方法来进行同源性分析。
2. 目的及贡献