固件动态分析:现状、挑战与创新方法
1. 现有固件重托管方法概述
固件重托管在安全评估领域备受关注,其目标是实现更快的固件安全评估。目前主要有以下几种方法:
- 基于人在回路(HITL)的方法 :像Avatar、Avatar2、PROSPECT等项目采用了这种方法。它们提出对固件进行部分仿真,将不支持的I/O请求重定向到真实外设。然而,这意味着对硬件有很强的依赖性,并且在进行动态分析时,部分执行会转移到实际硬件上,影响了可扩展性。
- 基于抽象的方法
- 基于操作系统抽象 :如Firmadyne是一个用于自动化大规模动态分析固件的全系统仿真工具。它会提取文件系统,分析硬件特性,然后使用对应的预构建Linux内核,通过QEMU进行初始仿真。Costin等人的框架则通过QEMU仿真固件镜像,用默认内核替换系统原生内核。但这些方法仅支持有限数量的固件,主要是基于Linux的固件。
- 基于硬件抽象层(HAL) :HALucinator使用高级仿真(HLE)技术对嵌入式系统固件进行动态分析。它先识别固件中负责硬件交互的库函数,然后在全系统仿真器中提供这些函数的高级替代。还有一种称为准重托管的技术,通过POSIX接口实现便携式微控制器(PMCU),进行基于HAL的外设功能替换。不过,这些方法都基于固件依赖HAL的假设,并非适用于所有固件。
- 基于学习的方法 :这种方法通过捕获和重现I/O交互过程中生成的数据来学习外设行为,从而实现固件的虚拟化执行。例如,Pretender利用机器学习生成内存
超级会员免费看
订阅专栏 解锁全文
15

被折叠的 条评论
为什么被折叠?



