Background: Modern software uses many third-party libraries and frameworks as dependencies. Known vulnerabilities in these dependencies are a potential security risk. Software composition analysis (SCA) tools, therefore, are being increasingly adopted by practitioners to keep track of vulnerable dependencies. Aim: The goal of this study is to understand the difference in vulnerability reporting by various SCA tools. Understanding if and how existing SCA tools differ in their analysis may help security practitioners to choose the right tooling and identify future research needs. Method: We present an in-depth case study by comparing the analysis reports of 9 industry-leading SCA tools on a large web application, OpenMRS, composed of Maven (Java) and npm (JavaScript) projects. Results: We find that the tools vary in their vulnerability reporting. The count of reported vulnerable dependencies ranges from 17 to 332 for Maven and from 32 to 239 for npm projects across the studied tools. Similarly, the count of unique known vulnerabilities reported by the tools ranges from 36 to 313 for Maven and from 45 to 234 for npm projects. Our manual analysis of the tools' results suggest that accuracy of the vulnerability database is a key differentiator for SCA tools. Conclusion: We recommend that practitioners should not rely on any single tool at the present, as that can result in missing known vulnerabilities. We point out two research directions in the SCA space: i) establishing frameworks and metrics to identify false positives for dependency vulnerabilities; and ii) building automation technologies for continuous monitoring of vulnerability data from open source package ecosystems.
翻译:现代软件的背景:现代软件使用许多第三方图书馆和框架作为依赖性。在这些依赖性中已知的脆弱性是一个潜在的安全风险。因此,实践者越来越多地采用软件构成分析(SCA)工具来跟踪脆弱依赖性。目标:本研究的目标是了解各种SCA工具在脆弱性报告方面的差异。了解现有的SCA工具在分析中是否有差异以及如何帮助安全从业者选择正确的工具并确定未来的研究需要。方法:我们提出一个深入的案例研究,通过比较大型网络应用程序Open MRS(由Maven(Java)和npm(JavaScript)项目组成的9个行业领导性SCA工具的弱点分析报告。结果:我们发现这些工具在脆弱性报告方面各不相同。 报告的脆弱程度从马文17到332到239不等,在整个研究工具的 npm项目中,从32到239不等。同样,工具所报告的独特已知脆弱性从313个来源到45至234个(nm)用于大型网络应用程序。我们关于脆弱程度的手册分析工具的准确性分析显示,在数据库中,目前的关键脆弱性分析工具的单一结果。