Approximate Bayesian Computation As An Informed Fuzzing-Inference System

Chris Vaisnor
2024-04-09
Abstract:The power of fuzz testing lies in its random, often brute-force, generation and execution of inputs to trigger unexpected behaviors and vulnerabilities in software applications. However, given the reality of infinite possible input sequences, pursuing all test combinations would not only be computationally expensive, but practically impossible. Approximate Bayesian Computation (ABC), a form of Bayesian simulation, represents a novel, probabilistic approach to addressing this problem. The parameter space for working with these types of problems is effectively infinite, and the application of these techniques is untested in relevant literature. We use a relaxed, manual implementation of two ABC methods, a Sequential Monte Carlo (SMC) simulation, and a Markov Chain Monte Carlo (MCMC) simulation. We found promising results with the SMC posterior and mixed results with MCMC posterior distributions on our white-box fuzz-test function.
Software Engineering
What problem does this paper attempt to address?
The main goal of this paper is to explore how to use Approximate Bayesian Computation (ABC) to improve fuzz testing methods. Specifically, the paper attempts to address the following issues: 1. **Improving Fuzz Testing Efficiency**: Traditional fuzz testing methods generate a large number of inputs randomly to trigger unexpected behaviors or vulnerabilities in software. However, due to the almost infinite input space, this method is not only computationally expensive but also practically infeasible. Therefore, the paper proposes using the ABC method to dynamically adjust fuzz testing strategies, focusing on high-risk areas to more efficiently identify potential vulnerabilities. 2. **Optimizing Parameter Configuration**: ABC, as an approximate computation method based on Bayesian statistics, can help identify parameter configurations that make the data generated by the model sufficiently similar to the actual data. Through this method, the paper hopes to find effective input sequences without conducting comprehensive testing. 3. **Exploring Algorithm Feasibility**: The paper manually implements two ABC methods—Sequential Monte Carlo (SMC) simulation and Markov Chain Monte Carlo (MCMC) simulation—to verify the effectiveness of these techniques in fuzz testing. Experimental results show that the SMC method performs better in generating posterior particles that pass the tests, while the MCMC method has mixed results. In summary, this paper aims to demonstrate the potential of ABC techniques in the field of fuzz testing and provides a foundation for further research.