关键缺陷减少不等于安全无忧,软件安全债务仍是重中之重!

归因
2月前

1709085902911575.jpg


据Veracode的研究显示,在过去几年里,尽管应用程序中高度严重的安全漏洞的流行率显著下降,但仍有众多组织存在着严重的安全债务问题。

该研究基于Veracode最近的静态应用程序安全测试(SAST),动态应用程序安全测试(DAST)和软件组件分析(SCA)扫描超过100万个应用程序收集的数据。

"人工智能生成的代码广泛传播产生了大量不安全代码,这可能会产生安全债务," Veracode 的首席研究官 Chris Eng 表示。"考虑到我们发现的安全债务的严重性,有必要考虑使用人工智能辅助的修复工具来偿还债务,而不是需要重新分配开发团队或扩大其规模。"

这项研究还指出,在整个软件开发生命周期(SDLC)的过程中,应重视对本地和第三方代码的测试,以发现其中存在的大量缺陷。

减少关键缺陷,而不是淘汰

研究发现,截止至2023年,应用程序中严重缺陷的流行率已经降至2016年的一半,仅为37.9%。尽管只有约3.2%的缺陷被认为是极其严重的(CVSS评分达到9或更高),但几乎占所有缺陷的16%都被认为“极有可能”被恶意攻击者利用。

这意味着在2023年发现的所有漏洞中,仅有不到百分之一(0.7%)是非常重要的,并且具有高度的可利用性。

总的来说,使用Veracode 的SAST、DAST以及SCA工具发现,在所有被扫描的应用程序中,有80%的活动应用程序存在未解决的安全漏洞,而在只针对开发阶段的程序进行SAST扫描的情况下,这一比例下降到了73%。

根据Veracode的研究,在第三方开源组件和本地代码中发现的缺陷比例基本相当。实际上,大约有63.4%的应用程序在本地代码中存在缺陷,而在第三方代码中则有70.2%的应用程序存在缺陷。这种情况与人工智能技术的广泛应用有关,因此我们需要对软件供应链的这两个来源进行深入扫描。

另外,通常情况下,一个典型的应用程序中每1MB的代码就会有42个缺陷。其中,跨站脚本、注入、路径遍历以及易受攻击和过时的组件是最常见的缺陷,它们的强度(每个应用程序的平均发现)和数量(应用程序的百分比)都非常高。

安全债务堆积如山

软件安全债务,在研究中被定义为持续一年以上未得到修复的缺陷这种缺陷存在于所有应用程序中,占总数的42%。如果把不足一年的应用程序也考虑进去,这个比例会下降到23%,也就是说,有57%的应用程序存在缺陷,但是它们还没有形成债务。

在考虑关键安全债务(未修复的关键缺陷)时,情况有所不同。研究显示,“绝大多数组织(71%)在某种程度上有安全债务”此外,“将近一半的公司(46%)存在严重的持续性缺陷,我们将其归类为关键安全债务。

研究表明,有安全债务的组织中,有四分之一在其在不到17%的应用程序中有安全债务,有四分之一的组织在超过67%的应用程序中有债务。平均来看,约一半的安全缺陷(47%)源于安全债务。

为了解决软件安全债务问题,该研究提出了几项建议,其中包括将安全性融入到软件开发生命周期中,持续进行修复,优先处理重要安全债务,提升开发人员的安全能力,并了解自己语言所涉及的安全债务情况。

* 本文为陈发明编译,图片均来源于网络,无法联系到版权持有者。如有侵权,请与后台联系,做删除处理。

— 【 THE END 】—