面向物联网终端的自动化动态固件安全分析系统设计与实现文献综述

 2022-10-27 10:10

文献综述(或调研报告):

随着嵌入式设备的日益普及,一些相关工作使用各种分析技术对固件镜像进行了大规模分析。例如,Heffner[1]对嵌入式固件镜像进行了大规模抽取,以收集超过2000个硬编码SSL私钥的数据库。同样,Rapid7[2]对硬编码的SSH私钥也进行了类似的分析,尽管规模较小。

使用静态分析,Costin等人[3]介绍第一个公开的大规模固件映像分析。特别突出的一点是他们把32,000个固件映像解压缩为170万个单独的文件,然后进行了静态分析。他们利用这一大规模分析对嵌入式设备的安全性提供了新的见解。他们发现了总共38个先前未知的漏洞,包括硬编码后门,嵌入式私钥对和XSS漏洞,所有这些漏洞都是“无需执行复杂的静态分析”而获得的。

另一种大规模测量嵌入式设备安全的有效技术是网络扫描,它避免了直接分析固件镜像。使用诸如Nmap等工具,Cui和Stolfo [14] 提出了全球范围内易受攻击的嵌入式设备数量的下界。他们系统地扫描了大部分网站来监测少量的嵌入式设备的存在。他们确定了超过540,000个配置了出厂默认根密码的可公开访问的嵌入式设备。这占所有发现的嵌入式设备的13%以上。这些设备的范围从企业设备(如防火墙和路由器)到消费电子设备(如VoIP适配器,电缆和IPTV盒)到办公设备(如网络打印机和视频会议设备)。在144个国家中检测到易受攻击的设备,其中包括17,427家独特的私营企业,ISP,政府,教育,卫星提供商以及住宅网络环境。同样,使用ZMap [4]网络扫描仪,Heninger 等人[5]对TLS和SSH服务器进行了大规模的网络调查,并提供证据证明易受攻击的密钥广泛存在。他们发现0.75%的TLS证书由于密钥生成期间熵不足而共享密钥,他们怀疑另外1.70%的TLS证书来自相同的错误实现,并可能容易受到攻击。不仅如此,他们还能够为0.50%的TLS主机和0.03%的SSH主机获得RSA私钥,因为它们的公钥由于熵问题而共享不平常的共同因素。他们还可以为1.03%的SSH主机获得DSA私钥,因为签名随机性不足。对易受攻击的主机进行集群和调查,发现绝大多数似乎是嵌入式设备。

此外,之前的工作发现了影响各种嵌入式设备的具体漏洞。使用HP LaserJet打印机作为案例研究,Cui等人[15]表明远程固件更新功能可以被攻击者利用来插入恶意软件。他们演示了如何利用此功能来允许攻击者将恶意固件修改注入易受攻击的嵌入式设备。这些恶意软件能够进行网络侦察,数据泄露和传播到通用计算机和其他嵌入式设备类型。Weinmann [6]表明由于操作系统供应商部署了许多对抗措施,例如ASLR,DEP和代码签名,因此实际利用内存损害漏洞非常困难。但是,大多数智能手机的cellular baseband运行在一个单独的处理器上,可以更加简单地利用漏洞。他们分析了两个广泛部署的基带栈,并举例说明了可用于在bashband处理器上注入和执行任意代码的内存损坏的情况。这些漏洞可以通过使用非法GSM基站的空中接口触发,例如使用OpenBTS和USRP软件定义无线电。同样,Bonkoski等人[7]探讨了智能平台管理接口(IPMI)的安全影响。他们阐述了不正确实施的IPMI所带来的威胁,并且证明IPMI漏洞可能普遍存在。他们分析了一个主要的原始设备制造商的 IPMI的实现,并发现它充满了漏洞,其中一些会允许远程攻击者获得对BMC的根访问权并可能控制主机系统。使用来自互联网范围扫描的数据,他们发现至少有100,000个支持IPMI的服务器(跨三个大型供应商)运行在可公开访问的IP地址上。最后,Maskiewicz等人[8]和Nohl等人[9]表明恶意功能可以插入到USB外设的固件中,使攻击者能够控制主机系统并泄露数据。其中Maskiewicz的研究表明虽然许多嵌入式设备都支持固件更新功能,但它们不会验证此类更新的安全。这使攻击者可以利用恶意固件来感染外围设备。通过介绍罗技G600鼠标的案例研究,展示了对网络系统的攻击。他们还编写了一个文件传输工具,将恶意软件从鼠标传输到目标机器。如果目标是联网的,则可以将鼠标用作持久威胁,根据需要来更新和重新安装恶意软件。

为了防御这种攻击媒介,已经开发了几种不同的技术来发现嵌入式设备中的漏洞。由于嵌入式系统越来越多地将软件驱动的低功耗微处理器用于安全关键设置,这表现出对可以监测在这些设备上运行的软件(通常称为固件)的安全性的工具的需求。尽管固件通常是用C语言编写的,但由于低功耗平台的特定架构特征,现有的源代码分析工具不适用于此设置。例如,Davidson等人[10]已经开发了一个符号执行器,使用KLEE [11]符号执行引擎来检测嵌入式设备中的漏洞。他们的工作在MSP430系列8位嵌入式微控制器的99个开源固件程序集中发现了21个内存安全漏洞。

采用真实工作负载的FPGA(现场可编程门阵列)的全系统仿真可以增强SoC(系统级芯片)设计的可信度。然而,由于FPGA仿真需要关键模块的完整实现并且提供较弱的可见性,所以这是耗时的。Li等人[12] 提出FEMU,一种用于SoC验证的混合固件/硬件仿真框架。将QEMU仿真器移植到BIOS中以模拟硬件外设,以在开发期间验证嵌入式SoC。此外,FEMU提供编程接口,以简化固件中的对设备的建模。基于一套辅助硬件模块,FEMU允许混合使用真实硬件和模拟固件模型的全系统仿真。

为了缓解对嵌入式系统安全性日益增长的担忧,即使源代码或硬件文档不可用,对固件二进制文件进行精确分析也很重要。然而,这一领域的研究受到缺乏专用工具的阻碍。最近,Zaddach等人[13]也开发了一个框架来执行嵌入式固件的动态研究——通过在模拟器中转发来自实际硬件的I/O访问。然而,这种方法在分析成本和时间方面并没有扩展。

参考文献

[1]https://github.com/devttys0/littleblackbox

剩余内容已隐藏,您需要先支付 10元 才能查看该篇文章全部内容!立即支付

以上是毕业论文文献综述,课题毕业论文、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。