paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Fuzzing Embedded Systems using Debug Interfaces

使用调试接口对嵌入式系统进行模糊测试
ISSTA Proceedings of the 32nd ACM SIGSOFT International Symposium on Software Testing and Analysis2023匹配度 1/10 · 该论文属于嵌入式系统的动态分析/模糊测试(利用调试接口硬件断点获取覆盖率),既非静态分析,也不涉及 LLM/Agent、浮点程序分析或贝叶斯程序分析,与用户画像的核心研究方向基本无交集。引用 22 inbox
Max Eisele, Daniel Ebert, Christopher Huth, Andreas Zeller
crossref: 2026-09-12

AI 速览

一句话:利用微控制器调试接口的硬件断点提取未插桩二进制的部分覆盖率,实现通用嵌入式模糊测试。

嵌入式系统模糊测试面临挑战:微控制器高度多样、难以虚拟化,且其软件往往无法修改或插桩。论文观察到多数微控制器提供调试接口,可通过调试探针(通常由 GDB 控制)设置有限数量的硬件断点。作者据此设计 GDBFuzz,利用硬件断点从未插桩二进制代码中提取部分覆盖率反馈,从而以通用且广泛可用的机制实现覆盖引导模糊测试。在四块不同微控制器板上的评估表明,GDBFuzz 能快速达到高代码覆盖率,并检测到已知和新漏洞。由于适用于任何 GDB 可调试的程序与系统,它是最低依赖、最多才多艺的覆盖引导模糊器之一。

问题
嵌入式系统难以模糊测试:微控制器多样、难以虚拟化,且软件可能无法修改或插桩,导致缺少覆盖率反馈。
方法
利用微控制器调试接口和 GDB 可控调试探针设置硬件断点,从未插桩二进制中提取部分覆盖率反馈,构建覆盖引导模糊器 GDBFuzz。
评估
在四块不同微控制器板上评估,GDBFuzz 快速达到高代码覆盖率,并检测到已知和新漏洞。
原文摘要(Abstract)

Fuzzing embedded systems is hard. Their key components – microcontrollers – are highly diverse and cannot be easily virtualized; their software may not be changed or instrumented. However, we observe that many, if not most, microcontrollers feature a debug interface through which a debug probe (typically controllable via GDB, the GNU debugger) can set a limited number of hardware breakpoints. Using these, we extract partial coverage feedback even for uninstrumented binary code; and thus enable effective fuzzing for embedded systems through a generic, widespread mechanism. In its evaluation on four different microcontroller boards, our prototypical implementation GDBFuzz quickly reaches high code coverage and detects known and new vulnerabilities. As it can be applied to any program and system that GDB can debug, GDBFuzz is one of the least demanding and most versatile coverage-guided fuzzers.

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@inproceedings{paperbot8051,
  title = {Fuzzing Embedded Systems using Debug Interfaces},
  author = {Max Eisele and Daniel Ebert and Christopher Huth and Andreas Zeller},
  booktitle = {ISSTA},
  year = {2023},
  doi = {10.1145/3597926.3598115}
}