Detecting security vulnerabilities with vulnerability nets

Pingyan Wang,Shaoying Liu,Ai Liu,Wen Jiang
DOI: https://doi.org/10.1016/j.jss.2023.111902
IF: 3.5
2024-02-01
Journal of Systems and Software
Abstract:Detecting security vulnerabilities is a crucial part in secure software development. Many static analysis tools have proved to be effective in finding vulnerabilities, but generally there are some complex and subtle vulnerabilities that can escape from detection. Manual audits are a complementary approach to using tools. Unfortunately, most manual analyses are tedious and error prone. To benefit from both the tools and manual audits, some approaches incorporate the auditor's expertise into a static analysis tool during vulnerability discovery. Following this strategy, this paper presents a representation of source code called a vulnerability net, which is a special Petri net that integrates with data dependence graphs and control flow graphs. The combined representation can facilitate the detection of taint-style vulnerabilities such as buffer overflows and injection vulnerabilities. We test the proposed approach on Securibench Micro and demonstrate that it has the capability to identify a variety of vulnerabilities while keeping the rates of false negatives and positives low.
computer science, theory & methods, software engineering
What problem does this paper attempt to address?