FuSeBMC v4: Improving code coverage with smart seeds via fuzzing and static analysis

06/28/2022
by   Kaled M. Alshmrany, et al.
0

Bounded model checking (BMC) and fuzzing techniques are among the most effective methods for detecting errors and security vulnerabilities in software. However, there is still a shortcoming in detecting these errors due to the inability to cover large areas in the target code. Coverage standards and measures are also an excellent way to ascertain the effectiveness of the test suite. We propose FuSeBMC v4, a test generator that relies on smart seeds to improve the hybrid fuzzer to achieve high C programs coverage. First, FuSeBMC analyses and incrementally injects goal labels into the given C program to guide BMC and Evolutionary Fuzzing engines. Also, It ranks these goal labels according to the given strategy. After that, the engines are employed to produce smart seeds quickly to use later. Then, FuSeBMC coordinates between the engines and seed distribution by the Tracer. This Tracer generally manages the tool to record the goals covered and transfer the information between the engines by providing a shared memory to harness the power and take advantage of the power of each engine. So that the BMC engine helps give the seed that makes the fuzzing engine not struggle with complex mathematical guards. Furthermore, Tracer evaluates test cases dynamically to convert high-impact cases into seeds for subsequent test fuzzing. As a result, we received three awards for participation in the fourth international competition in software testing (Test-Comp 2022), outperforming all state-of-the-art tools in every category, including the coverage category.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
12/20/2021

FuSeBMC v.4: Smart Seed Generation for Hybrid Fuzzing

FuSeBMC is a test generator for finding security vulnerabilities in C pr...
research
12/21/2020

FuSeBMC: A White-Box Fuzzer for Finding Security Vulnerabilities in C Programs

We describe and evaluate a novel white-box fuzzer for C programs named F...
research
06/13/2022

Combining BMC and Fuzzing Techniques for Finding Software Vulnerabilities in Concurrent Programs

Finding software vulnerabilities in concurrent programs is a challenging...
research
09/14/2023

Coverage Goal Selector for Combining Multiple Criteria in Search-Based Unit Test Generation

Unit testing is critical to the software development process, ensuring t...
research
08/06/2021

A Smart and Defensive Human-Machine Approach to Code Analysis

Static analysis remains one of the most popular approaches for detecting...
research
07/27/2023

Reinforcement learning guided fuzz testing for a browser's HTML rendering engine

Generation-based fuzz testing can uncover various bugs and security vuln...
research
07/27/2021

Guidelines on Minimum Standards for Developer Verification of Software

Executive Order (EO) 14028, "Improving the Nation's Cybersecurity", 12 M...

Please sign up or login with your details

Forgot password? Click here to reset