paperbot · PL 论文追踪

全部论文 待读 收藏

P2 SymRustC: A Hybrid Fuzzer for Rust

SymRustC:一个面向 Rust 的混合模糊测试器
ISSTA Proceedings of the 32nd ACM SIGSOFT International Symposium on Software Testing and Analysis2023匹配度 2/10 · 论文属于程序测试与动态符号执行(concolic execution)方向的工程系统,与用户核心关注的 LLM/Agent 与静态分析、形式化验证交叉,以及浮点程序分析、贝叶斯程序分析均无直接关联;仅可作为 Rust 混合模糊测试与程序分析工具的工程实现参考。引用 4 inbox
Frédéric Tuong, Mohammad Omidvar Tehrani, Marco Gaboardi, Steven Y. Ko
crossref: 2026-09-12dblp: 2026-09-12

AI 速览

一句话:将 SymCC 的 concolic execution 与 LibAFL 的 fuzzing 结合,构建面向 Rust 的混合 fuzzer 以发现程序错误。

本文提出 SymRustC,一个面向 Rust 程序的混合模糊测试器,其核心思想是将 fuzzing 与 concolic execution 相结合。具体而言,SymRustC 复用 SymCC 提供 concolic execution 能力,并复用 LibAFL 提供 fuzzing 框架。由于 SymCC 通过插桩 LLVM IR 来实现 concolic execution,而 Rust 编译器恰好以 LLVM 作为后端,作者将 SymCC 与 Rust 编译器集成,从而对 Rust 程序进行插桩以支持 concolic execution。在此基础上,他们基于 LibAFL 开发了一个将 fuzzing 与 concolic execution 组合起来的混合 fuzzer。论文介绍了其实现方式,并通过四个案例研究展示 SymRustC 能够生成发现 Rust 程序错误的输入。

问题
如何为 Rust 程序构建有效的混合模糊测试工具,以自动生成能够暴露程序错误的输入。
方法
将 SymCC 集成到 Rust 编译器,利用其对 LLVM IR 的插桩能力为 Rust 程序提供 concolic execution,并基于 LibAFL 框架实现将 fuzzing 与 concolic execution 结合的混合 fuzzer。
评估
通过介绍实现细节并开展四个案例研究,展示 SymRustC 能够生成触发 Rust 程序错误的输入。
原文摘要(Abstract)

We present SymRustC, a hybrid fuzzer for Rust. SymRustC is hybrid in the sense that it combines fuzzing and concolic execution. SymRustC leverages an existing tool called SymCC for its concolic execution capability and another existing tool called LibAFL for its fuzzing capability. Since SymCC instruments LLVM IR (Intermediate Representation) for concolic execution and the Rust compiler uses LLVM as a backend, we integrate SymCC with the Rust compiler to instrument Rust programs for concolic execution. LibAFL provides a framework to develop a fuzzer, and we use it to develop a hybrid fuzzer that combines fuzzing and our concolic execution. We discuss our implementation as well as four case studies to demonstrate that SymRustC can generate inputs that discover errors in Rust programs.

链接与引用

DOI 原文 · DBLP

BibTeX
@inproceedings{TuongTGK23,
  title = {SymRustC: A Hybrid Fuzzer for Rust},
  author = {Frédéric Tuong and Mohammad Omidvar Tehrani and Marco Gaboardi and Steven Y. Ko},
  booktitle = {ISSTA},
  year = {2023},
  doi = {10.1145/3597926.3604927}
}