Validating Static Warnings via Testing Code Fragments

06/08/2021
by   Ashwin Kallingal Joshy, et al.
0

Static analysis is an important approach for finding bugs and vulnerabilities in software. However, inspecting and confirming static warnings are challenging and time-consuming. In this paper, we present a novel solution that automatically generates test cases based on static warnings to validate true and false positives. We designed a syntactic patching algorithm that can generate syntactically valid, semantic preserving executable code fragments from static warnings. We developed a build and testing system to automatically test code fragments using fuzzers, KLEE and Valgrind. We evaluated our techniques using 12 real-world C projects and 1955 warnings from two commercial static analysis tools. We successfully built 68.5 1003 test cases. Through automatic testing, we identified 48 true positives and 27 false positives, and 205 likely false positives. We matched 4 CVE and real-world bugs using Helium, and they are only triggered by our tool but not other baseline tools. We found that testing code fragments is scalable and useful; it can trigger bugs that testing entire programs or testing procedures failed to trigger.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
09/06/2021

Find Bugs in Static Bug Finders

Static bug finders have been widely-adopted by developers to find bugs i...
research
10/14/2022

Learning Algorithms in Static Analysis of Web Applications

Web applications are distributed applications, they are programs that ru...
research
02/24/2022

Deploying Static Analysis

Static source code analysis is a powerful tool for finding and fixing bu...
research
09/24/2021

Finding Taint-Style Vulnerabilities in Linux-based Embedded Firmware with SSE-based Alias Analysis

Although the importance of using static analysis to detect taint-style v...
research
05/21/2022

How to Find Actionable Static Analysis Warnings

Automatically generated static code warnings suffer from a large number ...
research
12/11/2020

WITCHER : Detecting Crash Consistency Bugs in Non-volatile Memory Programs

The advent of non-volatile main memory (NVM) enables the development of ...
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