开源C/ c++静态分析工具在大型项目中的应用

José D’Abruzzo Pereira, M. Vieira
{"title":"开源C/ c++静态分析工具在大型项目中的应用","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":"{\"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}","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

摘要

软件应用程序经常部署安全漏洞,这可能为攻击打开大门。在关键业务场景中,此类攻击可能导致重大的财务和声誉损失。静态分析工具(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%)。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
On the Use of Open-Source C/C++ Static Analysis Tools in Large Projects
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).
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信