File Download
There are no files associated with this item.
Links for fulltext
(May Require Subscription)
- Publisher Website: 10.1016/j.jss.2023.111886
- Scopus: eid_2-s2.0-85183775208
- Find via
Supplementary
-
Citations:
- Scopus: 0
- Appears in Collections:
Article: Valkyrie: Improving fuzzing performance through deterministic techniques
Title | Valkyrie: Improving fuzzing performance through deterministic techniques |
---|---|
Authors | |
Keywords | Dynamic analysis Fuzzing Vulnerability detection |
Issue Date | 2024 |
Citation | Journal of Systems and Software, 2024, v. 209, article no. 111886 How to Cite? |
Abstract | Greybox 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 Identifier | http://hdl.handle.net/10722/346863 |
ISSN | 2023 Impact Factor: 3.7 2023 SCImago Journal Rankings: 1.160 |
DC Field | Value | Language |
---|---|---|
dc.contributor.author | Rong, Yuyang | - |
dc.contributor.author | Zhang, Chibin | - |
dc.contributor.author | Liu, Jianzhong | - |
dc.contributor.author | Chen, Hao | - |
dc.date.accessioned | 2024-09-17T04:13:46Z | - |
dc.date.available | 2024-09-17T04:13:46Z | - |
dc.date.issued | 2024 | - |
dc.identifier.citation | Journal of Systems and Software, 2024, v. 209, article no. 111886 | - |
dc.identifier.issn | 0164-1212 | - |
dc.identifier.uri | http://hdl.handle.net/10722/346863 | - |
dc.description.abstract | Greybox 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.language | eng | - |
dc.relation.ispartof | Journal of Systems and Software | - |
dc.subject | Dynamic analysis | - |
dc.subject | Fuzzing | - |
dc.subject | Vulnerability detection | - |
dc.title | Valkyrie: Improving fuzzing performance through deterministic techniques | - |
dc.type | Article | - |
dc.description.nature | link_to_subscribed_fulltext | - |
dc.identifier.doi | 10.1016/j.jss.2023.111886 | - |
dc.identifier.scopus | eid_2-s2.0-85183775208 | - |
dc.identifier.volume | 209 | - |
dc.identifier.spage | article no. 111886 | - |
dc.identifier.epage | article no. 111886 | - |