File Download

There are no files associated with this item.

  Links for fulltext
     (May Require Subscription)
Supplementary

Article: Valkyrie: Improving fuzzing performance through deterministic techniques

TitleValkyrie: Improving fuzzing performance through deterministic techniques
Authors
KeywordsDynamic analysis
Fuzzing
Vulnerability detection
Issue Date2024
Citation
Journal of Systems and Software, 2024, v. 209, article no. 111886 How to Cite?
AbstractGreybox fuzzing has received much attention from developers and researchers due to its success in discovering bugs within many programs. However, randomized algorithms have limited fuzzers’ effectiveness. First, branch coverage feedback that is based on random edge ID can lead to branch collision. Besides, state-of-the-art fuzzers heavily rely on randomized methods to reach new coverage. Finally, some state-of-the-art fuzzers only employ heuristics-based bug exploitation methods, which are not effective in triggering those that require non-trivial triggering conditions. We believe deterministic techniques deliver consistent and reproducible results. We propose Valkyrie, a greybox fuzzer whose performance is boosted primarily by deterministic techniques. Valkyrie combines collision-free branch coverage with context sensitivity to maintain accuracy while introducing an instrumentation removal algorithm to reduce overhead. It also pioneers a new mutation method, compensated step, allowing fuzzers that use solvers to adapt to real-world fuzzing scenarios without randomness. Additionally, Valkyrie proactively identifies possible exploit points in target programs and utilizes solvers to trigger actual bugs. We implement and evaluate Valkyrie's effectiveness on the standard benchmark Magma, and a wide variety of real-world programs. Valkyrie triggered 21 unique integer and memory errors, 10.5% and 50% more than AFL++ and Angora, respectively. Valkyrie reached 8.2% and 12.4% more branches in real-world programs, compared with AFL++ and Angora, respectively. We also verify that our branch counting and mutation method is better than the state-of-the-art, which shows that deterministic techniques trump random techniques in consistency, reproducibility, and performance.
Persistent Identifierhttp://hdl.handle.net/10722/346863
ISSN
2023 Impact Factor: 3.7
2023 SCImago Journal Rankings: 1.160

 

DC FieldValueLanguage
dc.contributor.authorRong, Yuyang-
dc.contributor.authorZhang, Chibin-
dc.contributor.authorLiu, Jianzhong-
dc.contributor.authorChen, Hao-
dc.date.accessioned2024-09-17T04:13:46Z-
dc.date.available2024-09-17T04:13:46Z-
dc.date.issued2024-
dc.identifier.citationJournal of Systems and Software, 2024, v. 209, article no. 111886-
dc.identifier.issn0164-1212-
dc.identifier.urihttp://hdl.handle.net/10722/346863-
dc.description.abstractGreybox fuzzing has received much attention from developers and researchers due to its success in discovering bugs within many programs. However, randomized algorithms have limited fuzzers’ effectiveness. First, branch coverage feedback that is based on random edge ID can lead to branch collision. Besides, state-of-the-art fuzzers heavily rely on randomized methods to reach new coverage. Finally, some state-of-the-art fuzzers only employ heuristics-based bug exploitation methods, which are not effective in triggering those that require non-trivial triggering conditions. We believe deterministic techniques deliver consistent and reproducible results. We propose Valkyrie, a greybox fuzzer whose performance is boosted primarily by deterministic techniques. Valkyrie combines collision-free branch coverage with context sensitivity to maintain accuracy while introducing an instrumentation removal algorithm to reduce overhead. It also pioneers a new mutation method, compensated step, allowing fuzzers that use solvers to adapt to real-world fuzzing scenarios without randomness. Additionally, Valkyrie proactively identifies possible exploit points in target programs and utilizes solvers to trigger actual bugs. We implement and evaluate Valkyrie's effectiveness on the standard benchmark Magma, and a wide variety of real-world programs. Valkyrie triggered 21 unique integer and memory errors, 10.5% and 50% more than AFL++ and Angora, respectively. Valkyrie reached 8.2% and 12.4% more branches in real-world programs, compared with AFL++ and Angora, respectively. We also verify that our branch counting and mutation method is better than the state-of-the-art, which shows that deterministic techniques trump random techniques in consistency, reproducibility, and performance.-
dc.languageeng-
dc.relation.ispartofJournal of Systems and Software-
dc.subjectDynamic analysis-
dc.subjectFuzzing-
dc.subjectVulnerability detection-
dc.titleValkyrie: Improving fuzzing performance through deterministic techniques-
dc.typeArticle-
dc.description.naturelink_to_subscribed_fulltext-
dc.identifier.doi10.1016/j.jss.2023.111886-
dc.identifier.scopuseid_2-s2.0-85183775208-
dc.identifier.volume209-
dc.identifier.spagearticle no. 111886-
dc.identifier.epagearticle no. 111886-

Export via OAI-PMH Interface in XML Formats


OR


Export to Other Non-XML Formats