24

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

 4 years ago
source link: https://www.infoq.cn/article/uBz1IUZisIpSTh2IFKAj
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

z222yuv.jpg!web

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

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

JnURNzR.jpg!web

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

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

IzqyeyI.jpg!web

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

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

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

UZjIZzV.jpg!web

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

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

此外,报告还发现:

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


Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK