通过静态二进制级移植实现固件重托管
密码学与安全
2021-07-30 v2
摘要
工业物联网(IIoT)的快速增长使嵌入式系统成为安全分析人员和恶意对手的主要目标。由于硬件非标准化且软件多样化,嵌入式设备给安全分析人员准确分析固件二进制文件带来了独特挑战。硬件组件的多样性以及固件与硬件之间的紧密耦合使得动态分析难以进行,而动态分析必须具备在虚拟化环境中执行固件代码的能力。然而,仿真大量硬件外设使得分析人员不得不频繁修改仿真器,以在不同虚拟化环境中执行各种固件代码,极大限制了安全分析的能力。在这项工作中,我们探讨了与实时操作系统(RTOS)相关的固件重托管问题。具体而言,开发者创建板级支持包(BSP)并开发设备驱动程序以使该RTOS在其平台上运行。通过为BSP例程和设备驱动程序提供高层替代实现,我们可以对固件进行最小修改,从而将其从原始硬件环境迁移到虚拟化环境。我们展示了一种能够通过以自动化方式修补固件、无需修改现有仿真器即可大规模执行固件的方法。我们提出的方法称为静态二进制级移植,首先识别目标固件中的BSP和设备驱动程序,然后用可适配现有仿真器的预构建BSP例程和驱动程序对固件进行修补。最后,我们在多个硬件平台和固件样本上演示了所提方法在安全性分析中的实用性。结果表明,该方法具有足够的灵活性,可用于漏洞评估和漏洞利用开发中的固件仿真。
引用
@article{arxiv.2107.09856,
title = {Firmware Re-hosting Through Static Binary-level Porting},
author = {Mingfeng Xin and Hui Wen and Liting Deng and Hong Li and Qiang Li and Limin Sun},
journal= {arXiv preprint arXiv:2107.09856},
year = {2021}
}