Categories
程式開發

Synopsys:75%的代码库包含漏洞,每个代码库平均有82个漏洞


Synopsys:75%的代码库包含漏洞,每个代码库平均有82个漏洞 1

近日,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 插件

此外,前十的开源组件(代码库包含组件的百分比)如下图:

Synopsys:75%的代码库包含漏洞,每个代码库平均有82个漏洞 2

在审计的代码库中,JavaScript是使用最多的编程语言,占比为74%。而C++、Shell scripts和C则占代码库的50%或更高。总之,JavaScript是开源组件中占主导性的编程语言,C++紧随其后,排名第二。

前十的编程语言排名(代码库使用该语言的百分比)

Synopsys:75%的代码库包含漏洞,每个代码库平均有82个漏洞 3

75%的代码库包含漏洞,有49%的代码库包含高风险漏洞

根据这份报告,黑鸭审计指出:在2019年审计的代码库中,有82%的开源组件是过时的。同样,它们还发现:高达75%的代码库至少包括一个公开漏洞,2018年才只有60%。并且,每个代码库平均有82个漏洞。

在3月份,安全公司 WhiteSource发布了一份“开源安全年度报告”。报告表明, 2019 年,公开披露的开源安全漏洞数量再创新高,总数为 6100 个。与 2018 年相比,开源安全漏洞的数量增长近 50%。

Synopsys:75%的代码库包含漏洞,每个代码库平均有82个漏洞 4

而据奇安信代码安全事业部介绍,开源软件的代码安全缺陷密度是 14.22/KLOC,高危安全缺陷密度为 0.72/KLOC。换句话说,每 1000 行开源软件代码中就有 14 个安全缺陷,每 1400 行开源软件代码中就有 1 个高危安全缺陷。

Synopsys公司的报告还表明,在审计的全部代码库中,有49%的代码库包含高风险漏洞。事实上,开源软件的高风险漏洞危害极大,比如美国征信巨头Equifax2017年发生数据泄露,原因就是黑客利用Struts 开源软件的漏洞实施攻击,窃取1.45亿用户的数据。

此外,报告还发现:

68%的代码库包含某种形式的开放源代码许可证冲突,而33%的代码库包含没有可识别的开源组件。许可证冲突的发生率因行业有所不同,互联网和移动App行业最高(93%),VR、游戏、娱乐和媒体等行业相对较低(59%)。