Visible to the public Improving the Effectiveness of Grey-box Fuzzing By Extracting Program Information

TitleImproving the Effectiveness of Grey-box Fuzzing By Extracting Program Information
Publication TypeConference Paper
Year of Publication2020
AuthorsFu, Y., Tong, S., Guo, X., Cheng, L., Zhang, Y., Feng, D.
Conference Name2020 IEEE 19th International Conference on Trust, Security and Privacy in Computing and Communications (TrustCom)
Date Publisheddec
KeywordsAutomated Testing, Computer bugs, data mining, fuzzing, predictability, privacy, program analysis, pubcrawl, Resiliency, Scalability, security, Security Heuristics, Software, Tools
AbstractFuzzing has been widely adopted as an effective techniques to detect vulnerabilities in softwares. However, existing fuzzers suffer from the problems of generating excessive test inputs that either cannot pass input validation or are ineffective in exploring unvisited regions in the program under test (PUT). To tackle these problems, we propose a greybox fuzzer called MuFuzzer based on AFL, which incorporates two heuristics that optimize seed selection and automatically extract input formatting information from the PUT to increase the chance of generating valid test inputs, respectively. In particular, the first heuristic collects the branch coverage and execution information during a fuzz session, and utilizes such information to guide fuzzing tools in selecting seeds that are fast to execute, small in size, and more importantly, more likely to explore new behaviors of the PUT for subsequent fuzzing activities. The second heuristic automatically identifies string comparison operations that the PUT uses for input validation, and establishes a dictionary with string constants from these operations to help fuzzers generate test inputs that have higher chances to pass input validation. We have evaluated the performance of MuFuzzer, in terms of code coverage and bug detection, using a set of realistic programs and the LAVA-M test bench. Experiment results demonstrate that MuFuzzer is able to achieve higher code coverage and better or comparative bug detection performance than state-of-the-art fuzzers.
Citation Keyfu_improving_2020