Binvariants: Enhancing Fuzzing of Closed-Source Binary Executables via Register-Level Likely Invariants
Zao Yang, Stefan Nagy
摘要
Closed-source software is ubiquitous in everyday computing, underscoring the need for robust security vetting of "binary-only" executable code. While code-coverage-guided fuzzing has long proven effective at unearthing software bugs, fuzzing in open-source contexts has since evolved beyond code coverage as its principal guiding metric. State-of-the-art fuzzing advancements demonstrate that likely data invariants-data-level properties which, if violated, expose unusual and often bug-preceding program states-significantly widen fuzzing's reach to defects ordinarily occluded by coverage-only testing. Unfortunately, current invariant-guided fuzzing universally depends on source-level abstractions, rendering it unportable to binary-only targets. Consequently, closed-source software fuzzing-and more importantly, binary-only bug discovery-remain stalled at nowobsolete coverage-only techniques, even as open-source software fuzzing advances well past them.
To bridge this longstanding gap, this paper introduces register-level likely invariants: the first technique to integrate likely data invariants within binary-only fuzzing. In contrast to contemporary source-level data invariant mining, our approach operates directly on CPU registers, capturing the low-level program states that themselves encode higher-level data relationships. From these low-level states, we automatically derive likely data invariants and expose their violations as fuzzer-observable signals via runtime instrumentation, steering fuzzing into states often unreachable by code coverage alone. In doing so, our approach surfaces qualitatively different states, complementing traditional coverage-guided fuzzing with distinct bug-finding capabilities.
We implement our approach as a prototype, Binvariants, and evaluate its performance across 25 benchmark applications: 7 closed-source, as well as 18 open-source programs compiled as binary-only executables. Our results show that, compared to driving binary fuzzing solely via code coverage, register-level likely invariants helps fuzzing trigger over 27× more unique invariant violations beyond coverage-only fuzzing, thereby exercising a mean 52% more distinct code regions. Moreover, our approach uncovers 143 total bugs versus coverage-only fuzzing's 137-including 20 missed by code coverage-demonstrating how register-level likely invariants extends binary-only fuzzing's reach into execution states beyond what coverage alone is capable of. CCS Concepts: • Software and its engineering → Software testing and debugging.
问问这篇 Paper
智能体会读完全文。
Lune 把这篇 Paper 索引到了每一个公式,引用它的顶会 Paper 也一样。你提问,回答直接引用原文。
它引用的顶会 Paper22
- Evaluating Fuzz TestingGeorge Klees, Andrew Ruef, Benji Cooper, Shiyi Wei 等CCS 2018 · 被引用 753 次
- Angora: Efficient Fuzzing by Principled SearchPeng Chen, Hao ChenS&P 2018 · 被引用 616 次
- QSYM : A Practical Concolic Execution Engine Tailored for Hybrid FuzzingInsu Yun, Sangho Lee, Meng Xu, Yeongjin Jang 等USENIX Security 2018 · 被引用 537 次
- CollAFL: Path Sensitive FuzzingShuitao Gan, Chao Zhang, Xiaojun Qin, Xuwen Tu 等S&P 2018 · 被引用 426 次
- REDQUEEN: Fuzzing with Input-to-State CorrespondenceCornelius Aschermann, Sergej Schumilo, Tim Blazytko, Robert Gawlik 等NDSS 2019 · 被引用 413 次
相关 Paper
- Breaking Through Binaries: Compiler-quality Instrumentation for Better Binary-only FuzzingStefan Nagy, Anh Nguyen-Tuong, Jason D. Hiser, Jack W. Davidson 等USENIX Security 2021 · 被引用 65 次
- The Use of Likely Invariants as Feedback for FuzzersAndrea Fioraldi, Daniele Cono D'Elia, Davide BalzarottiUSENIX Security 2021 · 被引用 67 次
- Same Coverage, Less Bloat: Accelerating Binary-only Fuzzing with Coverage-preserving Coverage-guided TracingStefan Nagy, Anh Nguyen-Tuong, Jason D. Hiser, Jack W. Davidson 等CCS 2021 · 被引用 21 次
- DifuzzRTL: Differential Fuzz Testing to Find CPU BugsJaewon Hur, Suhwan Song, Dongup Kwon, Eunjin Baek 等S&P 2021 · 被引用 126 次
- A Binary-level Thread Sanitizer or Why Sanitizing on the Binary Level is HardJoschua Schilling, Andreas Wendler, Philipp Görz, Nils Bars 等USENIX Security 2024 · 被引用 4 次
