Speeding-up fuzzing through directional seeds

2Citations
Citations of this article
5Readers
Mendeley users who have this article in their library.

This article is free to access.

Abstract

Fuzzing is an automated process for discovering inputs in a program that may trigger unexpected behavior. Today, fuzzing has become a standard practice for the discovery of bugs and security vulnerabilities. However, the main issue with such practices is that the exploration of the input space of programs can often be prohibitively expensive. Therefore, several alternative fuzzing strategies have been introduced during the last few years. Some fuzzing techniques rely on human expertise to provide a plausible set of initial input examples, namely, seeds. However, the process of handcrafting seeds for fuzzing purposes often becomes strenuous for humans as it requires a deeper understanding of the Program-Under-Test (PUT). Also, the use of known inputs to programs often does not trigger vulnerable program behavior or may not reach potentially vulnerable code locations. To address those issues, we propose a seed generation framework that enables Human-In-The-Loop (HITL) directed fuzzing where the human assumes a more active role in the creation of seeds that can penetrate and assess desired locations of the PUT. Our proposed framework uses Symbolic Execution (SE) to generate seeds that exercise paths to target program locations. Moreover, our framework enables the visualization of the explored execution paths in the binary of the PUT for the generated seeds. We evaluated our approach on a set of 12 carefully designed C programs with diverse characteristics that mimic real-world programs. The experimental results show the effectiveness of the proposed approach in improving the performance of standard fuzzing tools such as the American Fuzzy Lop ((Figure presented.)). Specifically, our solution can generate seeds that substantially enhance the performance of the fuzzer, achieving speedups ranging from 1.46× to 68.53× for branch conditions, 1.39× to 254.62× for branch depths, 14,879.59× to 30,295.88× for branch widths over traditional seeds. Additionally, the speedup increases with the number of target function ranging from 12,260× to 22,856.07× over traditional seeds while only requiring less than 15 seconds on average for the seed generation step.

Cite

CITATION STYLE

APA

Koffi, K. A., Kampourakis, V., Kolias, C., Song, J., & Ivans, R. C. (2025). Speeding-up fuzzing through directional seeds. International Journal of Information Security, 24(2). https://doi.org/10.1007/s10207-024-00953-6

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free