paperbot · PL 论文追踪

全部论文 待读 收藏

P2 InstruGuard: Find and Fix Instrumentation Errors for Coverage-based Greybox Fuzzing

InstruGuard:面向基于覆盖率的灰盒模糊测试的插桩错误发现与修复
ASE 2021 36th IEEE/ACM International Conference on Automated Software Engineering (ASE)2021匹配度 2/10 · 论文使用静态分析与二进制重写修复覆盖率灰盒模糊测试中的插桩错误,属于程序分析与测试/安全方向;但它不涉及 LLM/Agent、机器学习系统、浮点程序分析或贝叶斯程序分析,与用户画像的核心交叉方向匹配很弱。引用 8 inbox
Yuwei Liu, Yanhao Wang, Purui Su, Yuanping Yu, Xiangkun Jia
crossref: 2026-09-12

AI 速览

一句话:提出静态分析与二进制重写平台 InstruGuard,自动发现并修复覆盖率灰盒模糊测试中的插桩错误,提升漏洞发现能力。

基于覆盖率的灰盒模糊测试依赖编译期轻量插桩获取细粒度覆盖率反馈,但插桩存在漏插与冗余插桩两类错误;实验表明这类问题在不同模糊器与不同编译优化级别下普遍且严重,会损害模糊测试效果。本文设计并实现开源平台 InstruGuard:通过对目标二进制进行静态分析检测插桩错误,并基于二进制重写提供通用修复方案。作者构建了包含 15 个真实程序的数据集,选取 6 个代表性模糊器,在不同编译优化选项下检查并修复插桩二进制,从执行路径、行覆盖率和真实漏洞发现三方面对比修复前后的模糊测试效果。结果表明 InstruGuard 能纠正不同模糊器的插桩错误,帮助发现更多缺陷,并发现了一个此前被其他模糊器遗漏的新零日漏洞。

问题
覆盖率引导的灰盒模糊测试普遍存在漏插与冗余插桩两类错误,且在不同模糊器和不同编译优化级别下都会出现,破坏覆盖率反馈的有效性;而以往工作只关注覆盖率指标优化,未质疑插桩本身的正确性。
方法
对目标二进制执行静态分析以检测插桩错误,并基于二进制重写提出通用修复方案,实现开源实用平台 InstruGuard。
评估
构建含 15 个真实程序的数据集,选取 6 个代表性模糊器,在多种编译优化选项下使用 InstruGuard 检查并修复插桩二进制,并从执行路径、行覆盖率与真实漏洞发现三方面对比修复前后的模糊测试结果。
原文摘要(Abstract)

As one of the most successful methods at vulnerability discovery, coverage-based greybox fuzzing relies on the lightweight compile-time instrumentation to achieve the fine-grained coverage feedback of the target program. Researchers improve it by optimizing the coverage metrics without questioning the correctness of the instrumentation. However, instrumentation errors, including missed instrumentation locations and redundant instrumentation locations, harm the ability of fuzzers. According to our experiments, it is a common and severe problem in various coverage-based greybox fuzzers and at different compiler optimization levels.In this paper, we design and implement InstruGuard, an open-source and pragmatic platform to find and fix instrumentation errors. It detects instrumentation errors by static analysis on target binaries, and fixes them with a general solution based on binary rewriting. To study the impact of instrumentation errors and test our solutions, we built a dataset of 15 real-world programs and selected 6 representative fuzzers as targets. We used InstruGuard to check and repair the instrumented binaries with different fuzzers and different compiler optimization options. To evaluate the effectiveness of the repair, we ran the fuzzers with original instrumented programs and the repaired ones, and compared the fuzzing results from aspects of execution paths, line coverage, and real bug findings. The results showed that InstruGuard had corrected the instrumentation errors of different fuzzers and helped to find more bugs in the dataset. Moreover, we discovered one new zero-day vulnerability missed by other fuzzers with fixed instrumentation but without any changes to the fuzzers.

链接与引用

DOI 原文 ·

BibTeX
@inproceedings{paperbot6597,
  title = {InstruGuard: Find and Fix Instrumentation Errors for Coverage-based Greybox Fuzzing},
  author = {Yuwei Liu and Yanhao Wang and Purui Su and Yuanping Yu and Xiangkun Jia},
  booktitle = {ASE},
  year = {2021},
  doi = {10.1109/ase51524.2021.9678671}
}