据软件测试公司Veracode最新的报告,超过四分之三使用 Java 和 .NET 编写的应用程序至少存在一个以上的 OWASP Top 10 漏洞。OWASP Top 10 是根据开放 Web 应用程序安全项目公开共享的 10 个最关键的 Web 应用程序安全漏洞列表。
Veracode对76万个应用程序的安全性进行分析之后发现,使用Java、.NET编程生态系统的应用程序中,大约有20%的应用程序至少存在一个高严重性或严重性漏洞。
平均每个应用程序每月出现一个及以上安全漏洞的几率超过27%,编写不当的应用程序和不经常扫描的应用程序可能存在更多缺陷。但安全流程历史较长且由训练有素的人编写的应用程序数据显示,开发人员不太可能引入新的缺陷。
Veracode 战略产品管理副总裁 Tim Jarrett 表示,该分析强调了将安全性集成到开发管道中的重要性。
另一方面,应用程序中的缺陷和漏洞却并没有得到快速修复。虽然开发人员和开源项目正在努力修复软件缺陷,但报告结果显示,平均漏洞的半衰期依旧是以“月”为单位,而不是几天或几周。
例如,在占所有样本量71%的Java 和 .NET 应用程序中,分别被发现一半以上的漏洞在243天和158天后,依旧没有完全修复。
Veracode报告
应用程序膨胀和老化也对安全性产生了重大的负面影响。平均应用程序积累了大约 40% 的代码,并且更容易出现漏洞。大约 54% 的两年前应用程序存在缺陷,五年的应用程序缺陷率达到69%。
JavaScript 的安全性更高
令人惊讶的是,用 JavaScript 或使用其中一种 JavaScript 框架编写的应用程序出现漏洞的几率更小。某项调查研究显示,大约 80% 的 Java 和 .NET 应用程序存在漏洞,20%存在高危漏洞;而使用 JavaScript 的应用程序只有56%存在漏洞,高危漏洞不到10%。
Veracode 战略产品管理副总裁 Tim Jarrett 表示JavaScript 框架更新、更安全,并且具有开源生态系统的优势。
此外,如果 Java 应用程序中的漏洞是第一方问题——让开发人员解决问题——在 JavaScript 和 Node.js 框架中,漏洞通常是第三方问题,因为漏洞发生在软件所依赖的组件中。
参考来源:https://www.darkreading.com/threat-intelligence/java-net-developers-frequent-vulnerabilities