{"title":"On the Use of Open-Source C/C++ Static Analysis Tools in Large Projects","authors":"José D’Abruzzo Pereira, M. Vieira","doi":"10.1109/EDCC51268.2020.00025","DOIUrl":null,"url":null,"abstract":"Software applications are frequently deployed with security vulnerabilities that may open the door to attacks. In business-critical scenarios, such attacks may lead to significant financial and reputation losses. Static Analysis Tools (SATs), which analyze the source code without executing it, can be used to detect potential faults in the source code, including security vulnerabilities. However, many false alarms are normally reported, leading teams to discard the use of such tools, especially on large software projects. Existing works have dealt with the evaluation of SATs, but they are mostly based on small pieces of code designed to support the evaluation. In this paper, we present and discuss the results of the execution of two Open-Source C/C++ SATs (CPPCheck and Flawfinder) on the large open-source project Mozilla. Our goal is to study the applicability of SATs in a large project and the vulnerability categories they can detect. Results show that CppCheck could detect 83.5% of the vulnerabilities, and Flawfinder could detect 36.2%, although the number of false alarms is high (7.2% for CppCheck and 93.2% for Flawfinder). Regarding the different categories, the two SATs showed quite diverse performances (e.g., CppCheck was able to detect $92.6% of Data Protection vulnerabilities and 62.5% of Coding Practices vulnerabilities, while false alarms were 99.1% and 99.9%, respectively).","PeriodicalId":212573,"journal":{"name":"2020 16th European Dependable Computing Conference (EDCC)","volume":"16 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2020-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"11","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2020 16th European Dependable Computing Conference (EDCC)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/EDCC51268.2020.00025","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 11
Abstract
Software applications are frequently deployed with security vulnerabilities that may open the door to attacks. In business-critical scenarios, such attacks may lead to significant financial and reputation losses. Static Analysis Tools (SATs), which analyze the source code without executing it, can be used to detect potential faults in the source code, including security vulnerabilities. However, many false alarms are normally reported, leading teams to discard the use of such tools, especially on large software projects. Existing works have dealt with the evaluation of SATs, but they are mostly based on small pieces of code designed to support the evaluation. In this paper, we present and discuss the results of the execution of two Open-Source C/C++ SATs (CPPCheck and Flawfinder) on the large open-source project Mozilla. Our goal is to study the applicability of SATs in a large project and the vulnerability categories they can detect. Results show that CppCheck could detect 83.5% of the vulnerabilities, and Flawfinder could detect 36.2%, although the number of false alarms is high (7.2% for CppCheck and 93.2% for Flawfinder). Regarding the different categories, the two SATs showed quite diverse performances (e.g., CppCheck was able to detect $92.6% of Data Protection vulnerabilities and 62.5% of Coding Practices vulnerabilities, while false alarms were 99.1% and 99.9%, respectively).
软件应用程序经常部署安全漏洞,这可能为攻击打开大门。在关键业务场景中,此类攻击可能导致重大的财务和声誉损失。静态分析工具(sat)在不执行源代码的情况下分析源代码,可用于检测源代码中的潜在错误,包括安全漏洞。然而,通常会报告许多错误警报,导致团队放弃使用这些工具,特别是在大型软件项目中。现有的工作已经处理了sat的评估,但它们大多是基于小块的代码来支持评估。在本文中,我们展示并讨论了两个开源C/ c++ sat (CPPCheck和Flawfinder)在大型开源项目Mozilla上的执行结果。我们的目标是研究sat在大型项目中的适用性以及它们可以检测到的漏洞类别。结果表明,CppCheck可以检测到83.5%的漏洞,而Flawfinder可以检测到36.2%的漏洞,尽管假警报的数量很高(CppCheck为7.2%,而Flawfinder为93.2%)。对于不同的类别,两种sat表现出相当不同的表现(例如,CppCheck能够检测到92.6%的数据保护漏洞和62.5%的编码实践漏洞,而假警报分别为99.1%和99.9%)。