2021 · 会议论文

Conware:硬件外设的自动化建模

Conware: Automated Modeling of Hardware Peripherals

Conware 根据真实固件与外设交互的记录,构建可复用的硬件外设软件模型。一个 LLVM 编译遍对 Arduino 源码插桩,在真实开发板上记录 MMIO 读写和中断;也可改用已有的硬件在环记录方法。每份记录被转换为按外设划分的图,读取值以模式等简单子模型概括;这些图再经合并与优化形成自动机,可跨外设组合,并在基于 Avatar² 的仿真器中运行。作者在 Arduino Due(SAM3X Cortex-M3)上为十种外设建模,并仅用基于厂商示例代码训练的模型,仿真了一个未经插桩的智能门锁固件。

研究范围与局限

训练需要接好外设的真实开发板,以及供基于 LLVM 的记录器使用的源代码。评测覆盖带有十种爱好者常用外设的裸机 Arduino Due 固件,端口映射 I/O 系统不在范围内。模型只编码记录期间观察到的行为,假定状态迁移由 MMIO 写操作驱动,并把中断附在状态迁移上而非触发它的写操作上,因此不支持由读操作触发的迁移和精确的中断时序。针对未见固件的结果只有一个由六个外设模型组合而成的门锁程序:其 UART 输出与真实硬件一致,执行了从 loop() 可达的 609 个基本块中的 362 个(59%)和 68 个函数中的 58 个(85%);作者衡量的是执行能否持续,而非外设的完整保真度。由于重放是确定性的,记录与重放对比中每个样本只运行一次,每次 10 分钟。

与本合集的关联

补充依据真实硬件交互记录并重建外设模型的方法,与本目录中替换硬件抽象层、以固件为依据和以规范为依据的重托管方法互补。

发表与复核详情

发表载体
ACM ASIA CCS 2021
发表状态
会议论文
出版/提交日期
2021 年 5 月 24 日
日期依据
ACM 提交的 Crossref 元数据将 published/纸质出版日期记为 2021-05-24,在线出版日期为 2021-06-04。本条目采用纸质出版日期,而非 6 月 7–11 日的会议日期。
DOI
10.1145/3433210.3437532

Crossref 记录了九位作者的顺序、页码 95–109、2021-05-24 的纸质出版日期和 2021-06-04 的在线出版日期。所审阅的 15 页副本托管在 Christopher Kruegel 的 UCSB 网站上,带有 ACM 引用格式和 DOI,但本条目不认定其与 ACM PDF 完全相同。论文引用 ucsb-seclab/conware 作为代码;快照 05dfdf5(2020-07-19,提交说明为代码的投稿版本)未声明许可证,因此不默认任何复用权利。其 README 流程是用 LLVM 对 Arduino 代码插桩,在接好外设的真实 Arduino 上运行,通过 UART 导出日志,再借助 Avatar² 和 OpenOCD 生成、优化并仿真模型;安装脚本会编译 LLVM。pretender 与 avatar2-pretender 两个子模块使用指向 UCSB 实验室自有 Git 服务器的 SSH 地址,固定的依赖中还包含 enum34 等 Python 2 向后移植包。本次未使用任何硬件、固件或代码。

来源复核于

本合集仅做来源复核,未重新运行论文实验。请通过原始论文或 BibTeX 引用原作者。

报告条目过时 建议修正翻译

一手来源

  1. https://dl.acm.org/doi/10.1145/3433210.3437532
  2. https://api.crossref.org/works/10.1145/3433210.3437532
  3. https://sites.cs.ucsb.edu/~chris/research/doc/asiaccs21_conware.pdf
  4. https://seclab.cs.ucsb.edu/publications/2021spenskyconware/
  5. README.md GitHub · ucsb-seclab/conware · 修订 05dfdf5
  6. .gitmodules GitHub · ucsb-seclab/conware · 修订 05dfdf5
  7. requirements.txt GitHub · ucsb-seclab/conware · 修订 05dfdf5