近日,Synopsys 公司发布2020年开源安全和风险分析(OSSRA)报告。该报告重点介绍了商业应用程序中开源使用的趋势和模式,并提供见解和建议,来帮助组织从安全性、许可证合规性和运营角度更好地管理开源风险。
据悉,报告是由 Black Duck Audits(黑鸭审计)服务团队进行的 1250 多次商业代码库审计的结果,审计涉及 17 个行业,包括物联网、网络 &软件基础设施、金融服务 &金融科技、企业软件/SaaS、零售 &电商、网络安全等。
99%的代码库中包含开源组件,开源在全部审计的代码库中占 70%。
据悉,黑鸭审计研究发现:在 2019 年审计的代码库中,有 99%审计的代码库包含开源组件。并且,在审计的 17 个行业中,有 9 个行业 100%的代码库包含开源。它们还发现,在全部审计的代码库中,开源占到 70%。
只有 1.2%的代码库中不包含开源组件
同时,报告还发现,2019 年每个代码库中平均有 445 个开源组件,与 2018 年的 298 个相比,开源组件使用率大幅增加。2016 年,Synopsys 公司发布第一份开源安全和风险分析(OSSRA)报告。当时,开源在全部审计的代码库中仅占 36%,现在,这个数字从 2018 年的 60%上升到 2019 年的 70%。
此外,它们还发现,有 124 个开源组件被普遍应用于所有 17 个行业中的代码库中。
其中,排名前五的开源组件为:
1.jQuery:一个快速、简洁的 JavaScript 框架
2.Bootstrap:出自 Twitter,它是基于 HTML、CSS、JavaScript 开发的简洁、直观、强悍的前端开发框架,让 Web 开发更加快捷。
3.Font Awesome:它是为 Twitter Bootstrap 设计的图标字体。
4.Lodash:它是一个一致性、模块化、高性能的 JavaScript 实用工具库
5.jQuery UI:它是一套 jQuery 的页面 UI 插件
此外,前十的开源组件(代码库包含组件的百分比)如下图:
在审计的代码库中,JavaScript 是使用最多的编程语言,占比为 74%。而 C++、Shell scripts 和 C 则占代码库的 50%或更高。总之,JavaScript 是开源组件中占主导性的编程语言,C++紧随其后,排名第二。
前十的编程语言排名(代码库使用该语言的百分比)
75%的代码库包含漏洞,有 49%的代码库包含高风险漏洞
根据这份报告,黑鸭审计指出:在 2019 年审计的代码库中,有 82%的开源组件是过时的。同样,它们还发现:高达 75%的代码库至少包括一个公开漏洞,2018 年才只有 60%。并且,每个代码库平均有 82 个漏洞。
在 3 月份,安全公司 WhiteSource发布了一份“开源安全年度报告”。报告表明, 2019 年,公开披露的开源安全漏洞数量再创新高,总数为 6100 个。与 2018 年相比,开源安全漏洞的数量增长近 50%。
而据奇安信代码安全事业部介绍,开源软件的代码安全缺陷密度是 14.22/KLOC,高危安全缺陷密度为 0.72/KLOC。换句话说,每 1000 行开源软件代码中就有 14 个安全缺陷,每 1400 行开源软件代码中就有 1 个高危安全缺陷。
Synopsys 公司的报告还表明,在审计的全部代码库中,有 49%的代码库包含高风险漏洞。事实上,开源软件的高风险漏洞危害极大,比如美国征信巨头 Equifax2017 年发生数据泄露,原因就是黑客利用 Struts 开源软件的漏洞实施攻击,窃取 1.45 亿用户的数据。
此外,报告还发现:
68%的代码库包含某种形式的开放源代码许可证冲突,而 33%的代码库包含没有可识别的开源组件。许可证冲突的发生率因行业有所不同,互联网和移动 App 行业最高(93%),VR、游戏、娱乐和媒体等行业相对较低(59%)。
评论