- 简介在软件开发中,及早发现安全问题对于最小化其不可预见的影响至关重要。代码审查是一种广泛使用的手动分析方法,旨在揭示软件项目中的安全问题以及其他编码问题。虽然一些研究表明自动静态应用程序安全测试工具(SAST)可以增强安全问题的识别能力,但对于SAST在支持安全代码审查方面的实际有效性了解有限。此外,大多数SAST研究依赖于主题程序的合成或完全易受攻击的版本,这可能无法准确代表代码审查过程中实际的代码更改。 为了填补这一空白,我们使用实际代码更改的数据集研究C/C++ SAST。除了研究SAST的有效性之外,我们还量化了在SAST警告优先处理更改的函数时可能获得的好处。我们的数据集包括92个C和C++项目中的815个漏洞贡献提交(VCC)中的319个真实世界漏洞。结果显示,单个SAST可以在52%的VCC的易受攻击的函数中产生警告。使用SAST警告优先处理更改的函数可以提高准确性(即精确度增加12%,召回率增加5.6%),并将初始虚警(检查非易受攻击函数中的代码行,直到第一个易受攻击函数)减少13%。然而,至少76%的易受攻击函数中的警告与VCC无关,由于SAST规则的限制,22%的VCC仍未被检测到。我们的发现突出了SAST支持的安全代码审查的好处和剩余差距,以及未来工作中应解决的挑战。
-
- 图表
- 解决问题研究自动化静态应用程序安全测试工具(SAST)在支持安全代码审查方面的实际有效性,以及使用SAST警告对更改的函数进行优先排序的潜在好处。
- 关键思路使用实际代码更改的数据集,研究了C/C++ SAST的实际有效性,并量化了使用SAST警告对更改的函数进行优先排序的潜在好处。
- 其它亮点研究发现,单个SAST可以在52%的易受攻击的代码更改中的易受攻击的函数中产生警告。使用SAST警告对更改的函数进行优先排序可以提高准确性,并减少初始误报率。然而,至少76%的易受攻击函数中的警告与易受攻击的代码更改无关,而22%的易受攻击代码更改由于SAST规则的限制而未被检测到。
- 相关研究包括使用SAST进行代码审查的其他研究,以及使用其他自动化工具进行代码审查的研究,如动态测试和模糊测试。
NEW
提问交流
提交问题,平台邀请作者,轻松获得权威解答~
向作者提问

提问交流