Static analysis tools are frequently used to detect potential vulnerabilities in software systems. However, an inevitable problem of these tools is their large number of warnings with a high false positive rate, which consumes time and effort for investigating. In this paper, we present DeFP, a novel method for ranking static analysis warnings. Based on the intuition that warnings which have similar contexts tend to have similar labels (true positive or false positive), DeFP is built with two BiLSTM models to capture the patterns associated with the contexts of labeled warnings. After that, for a set of new warnings, DeFP can calculate and rank them according to their likelihoods to be true positives (i.e., actual vulnerabilities). Our experimental results on a dataset of 10 real-world projects show that using DeFP, by investigating only 60% of the warnings, developers can find +90% of actual vulnerabilities. Moreover, DeFP improves the state-of-the-art approach 30% in both Precision and Recall.
翻译:经常使用静态分析工具来发现软件系统中的潜在脆弱性。 然而,这些工具的一个不可避免的问题是,它们使用大量假正率高的警告,这花费了时间和调查努力。我们在本文件中介绍了DeFP,这是排列静态分析警告的新方法。根据类似情况下的警告往往有相似标签的直觉(真正的正或假正),DeFP是用两个BILSTM模型构建的,以捕捉与标签警告相关的模式。之后,对于一套新警告,DeFP可以根据其真实的正率(即实际脆弱性)来计算和排序。我们在10个真实世界项目数据集上的实验结果显示,通过对60%的警告进行调查,开发者可以找到实际脆弱性的+90%。此外,DeFP在精密度和回记中改进了最先进的30%方法。