中文

固件所言非所应模拟:一种规范引导的固件仿真方法(扩展版)

密码学与安全 2022-10-12 v3

摘要

由于缺少外设模型,微控制器固件仿真具有挑战性。现有工作通过分析目标固件来发现如何响应外设读操作。这存在问题,因为固件有时不包含足够的线索来支持仿真,甚至包含误导性信息(例如有缺陷的固件)。在本工作中,我们提出一种从外设规范构建外设模型的新方法。利用自然语言处理(NLP),我们将人类语言描述的外设行为(记录于芯片手册中)转换为一组结构化的条件-动作规则。通过在运行时检查、执行并链接这些规则,我们可以为每个固件执行动态合成一个外设模型。提取的条件-动作规则可能不完整甚至有误。因此,我们提出结合符号执行来快速定位根本原因,这有助于我们手动修正有问题的规则。我们已针对来自三家不同芯片厂商的五种流行 MCU 开发板实现了我们的想法。使用一种基于编辑距离的新算法来计算轨迹差异,我们针对大型固件语料库的评估证实,与最先进的方案相比,我们的原型实现了更高的保真度。得益于精确的仿真,我们的模拟器有效避免了现有模糊测试工作中观察到的误报。我们还设计了一种新的动态分析方法来对照规范执行驱动代码合规性检查。我们发现了一些不合规情况,随后确认为由竞态条件引起的缺陷。

关键词

引用

@article{arxiv.2208.07833,
  title  = {What Your Firmware Tells You Is Not How You Should Emulate It: A Specification-Guided Approach for Firmware Emulation (Extended Version)},
  author = {Wei Zhou and Lan Zhang and Le Guan and Peng Liu and Yuqing Zhang},
  journal= {arXiv preprint arXiv:2208.07833},
  year   = {2022}
}

备注

Wei Zhou and Lan Zhang contributed equally to this work