一句话:提出 AFLRepair,对输入做字节级变异后自动修复语法,使灰盒模糊测试能生成多样且合法的输入。
模糊测试通过注入随机输入来发现漏洞,具有高度自动化和可扩展性,但传统方法难以生成符合程序输入规范且多样、稀有的输入,从而限制了其效力。本文提出 AFLRepair:先对程序输入施加随机字节级变异以产生大量测试用例,再自动修复变异后变得非法的输入语法,从而在保证输入有效性的同时探索关键程序区域中的多样执行路径,提升发现隐藏缺陷的概率。初步实验已在 Lua 解释器上触发一次崩溃。作者计划继续在多个开源软件上开展全面的模糊测试实验,并报告所发现的漏洞。
Fuzz testing, an automated technique that introduces random data inputs to systems, has demonstrated remarkable effectiveness in identifying vulnerabilities. Its scalability and automation have made it a focal point of interest in both academic and industrial settings. However, traditional fuzzing techniques often struggle to generate diverse, rare inputs that conform to a program's input specifications, thereby limiting their full potential. To address these challenges, I propose AFLRepair, a novel approach that applies random mutations to program inputs and subsequently repairs the syntax of any resulting invalid inputs. AFLRepair leverages bytelevel mutations to create a wide array of test cases while ensuring their validity, facilitating the exploration of diverse execution paths within critical program regions. This significantly increases the likelihood of uncovering hidden bugs. Preliminary experiments have revealed a crash on the Lua interpreter. The plan is to continue to validate AFLRepair through comprehensive fuzzing experiments on several open-source software, reporting any vulnerabilities discovered.
DOI 原文 ·
@inproceedings{paperbot8395,
title = {Syntactic Resilience in Greybox Fuzzing: Automated Error Recovery},
author = {Bachir Bendrissou},
booktitle = {ASE},
year = {2024},
doi = {10.1145/3691620.3695607}
}