An Exploratory Study on Fuzzing and Concolic Execution Engines for Automated Vulnerability Discovery
With technology growth and popularity of agile development in the industry for faster application deployment times, testing software for vulnerabilities becomes a challenge. Several automated tools allow discovery of bugs and other issues feasible in a shorter time. Fuzzing and concolic execution engines are such tools that allow for automated vulnerability discovery in existing programs. Fuzzing engines are used to explore unexpected inputs and to ensure that these inputs do not lead to unexpected behavior. Concolic execution engines are used to traverse every possible branch in a program to ensure that the program as a whole does not contain any logic errors. Each of these methods has its strengths and weaknesses which depend on the specific content of the code that is being analyzed. These tools are important in the field of cybersecurity as they can help ensure that vulnerabilities are discovered before malicious attackers can discover and potentially exploit them. In this paper, we perform an exploratory study of these tools and discuss the effectiveness of these tools through a demonstration.