用智能生成中间条件提升定向模糊测试效率,更快发现真实漏洞。
Locus: Agentic Predicate Synthesis for Directed Fuzzing
- 自动生成语义有意义的中间状态条件作为搜索里程碑。
- 在8个主流模糊测试工具上平均提速41.6倍,发现9个未修复漏洞。
- 适合安全研究者和漏洞挖掘人员使用,尤其适用于复杂目标状态探测。
定向模糊测试旨在寻找使程序进入指定目标状态的输入。该任务极具挑战性,因目标状态常深嵌于程序中,而可能输入空间过于庞大。现有方法依赖分支距离或人工设定约束进行引导,但分支信息往往不足以精确刻画进展,人工约束又难泛化至多种漏洞类型与程序。本文提出Locus框架,通过合成谓词捕捉模糊测试进程中的语义中间状态,作为通往目标状态的里程碑。这些谓词被用于程序插桩,可排除不可能达成目标状态的执行路径,并提供额外覆盖指导。为实现自动化并泛化至多样程序,Locus采用基于程序分析的智能体框架,迭代生成与优化候选谓词,并通过符号执行确保谓词严格放宽目标状态,避免误判。评估显示,Locus显著提升8个先进模糊测试器在发现真实漏洞时的效率,平均加速41.6倍;目前已发现9个未修复漏洞,其中3个已获初步补丁确认。
原文摘要 · Abstract (English)
Directed fuzzing aims to find program inputs that lead to specified target program states. It has broad applications, such as debugging system crashes, confirming reported bugs, and generating exploits for potential vulnerabilities. This task is inherently challenging because target states are often deeply nested in the program, while the search space manifested by numerous possible program inputs is prohibitively large. Existing approaches rely on branch distances or manually-specified constraints to guide the search; however, the branches alone are often insufficient to precisely characterize progress toward reaching the target states, while the manually specified constraints are often tailored for specific bug types and thus difficult to generalize to diverse target states and programs. We present Locus, a novel framework to improve the efficiency of directed fuzzing. Our key insight is to synthesize predicates to capture fuzzing progress as semantically meaningful intermediate states, serving as milestones towards reaching the target states. When used to instrument the program under fuzzing, they can reject executions unlikely to reach the target states, while providing additional coverage guidance. To automate this task and generalize to diverse programs, Locus features an agentic framework with program analysis tools to synthesize and iteratively refine the candidate predicates, while ensuring the predicates strictly relax the target states to prevent false rejections via symbolic execution. Our evaluation shows that Locus substantially improves the efficiency of eight state-of-the-art fuzzers in discovering real-world vulnerabilities, achieving an average speedup of 41.6x. So far, Locus has found nine previously unpatched bugs, with three already acknowledged with draft patches.
Thank you to arXiv for use of its open access interoperability. PaperDance 不是 arXiv 官方产品;中文卡片由大模型生成,请以原文为准。