Gray-Box Fuzzing via Gradient Descent and Boolean Expression Coverage
Authors | |
---|---|
Year of publication | 2024 |
Type | Article in Proceedings |
Conference | Tools and Algorithms for the Construction and Analysis of Systems - 30th International Conference, TACAS 2024, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2024, Luxembourg City, Luxembourg, April 6-11, 2024, Proceedings, Part III |
MU Faculty or unit | |
Citation | |
web | https://link.springer.com/chapter/10.1007/978-3-031-57256-2_5 |
Doi | http://dx.doi.org/10.1007/978-3-031-57256-2_5 |
Keywords | fuzzing; test generation; atomic Boolean expression; Fizzer |
Description | We present a gray-box fuzzing approach based on several new ideas. While standard gray-box fuzzing aims to cover all branches of the input program, our approach primarily aims to cover both results of each Boolean expression. To achieve this goal, we track the distances to flipping these results and we dynamically detect the input bytes that influence the distance. Then we use this information to efficiently flip the results. More precisely, we apply gradient descent on the detected bytes or we create new inputs by using detected bytes from different inputs. We implemented our approach in a tool called Fizzer. An evaluation on the benchmarks of Test-Comp 2023 shows that Fizzer is fully competitive with the winning tools of the competition, which use advanced formal methods like symbolic execution or bounded model checking, usually in combination with fuzzing. |
Related projects: |