数据说话:关于软件供应链的真相

2024-03-06 06:18

本文主要是介绍数据说话:关于软件供应链的真相,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

数据说话:关于软件供应链的真相

开源组件可以帮助开发人员更快地进行创新,但有时也需要付出高昂的代价。

企业环境(以及商业软件公司)中的开发人员已经意识到,为了快速提供产品功能,没有比利用一些代码重新构建属于自身的软件更方便快捷的方法了。因此,他们开始越来越多地通过在其代码库中混合和匹配开源软件组件的方式来构建属于他们的软件,以最大限度地缩短其软件开发时间,留出精力编写真正能够为其应用程序增加价值和差异性的组件。

这种对开源组件的依赖性极大地加速了开发人员的创新速度,但往往也需要付出高昂的代价:许多可供下载的组件都包含危险的安全漏洞。

我们从一个简单的,定义明确的示例来看软件供应链,是这样子的:

 数据说话:关于软件供应链的真相

那么开源的情况则是混乱的:未经验证的许可证、未经测试的软件仓库、以及狂野的西部牛仔(开发者),这一切所导致的软件供应链看起来似乎是不可管理的,漏斗的形状更像是这样:

 数据说话:关于软件供应链的真相

正如上图所直观显示的一样,开源至少导致了一个额外层次的增加。或许你并不这么认为,而是说,将开源组件简单的插入产品中,和过去授权插入第三方的组件没有任何本质上的差别。这里要说明的是,虽然看起来没什么大的变化,但是有一个隐性的知识需要考虑。关于上游的开源组件,多数的源代码仓库时候是没有任何的商业保证的。作为供应链或产品经理,最不愿意的事情就是被别人掐住喉咙,一旦出错,是无法补救的。

目前,一些公司已经制定了有关开发人员如何以及何时使用这些开源组件的策略,并且正在积极地管理这些组件以跟踪安全缺陷;但是另有一些公司并没有这些安全实践。最新的研究结果表明,那些进行了良好安全实践的企业可以最大限度地降低将这些组件引入软件的风险,同时也能最大限度地提高收益。

美国新思科(Sonatype)公司于上周发布的《2019年软件供应链状况报告》,该报告由新思科技网络安全研究中心(CyRC)制作,审查了由黑鸭(BlackDuck)审计服务团队执行的超过1,200个商业应用程序和库的审计结果。报告重点介绍了开源应用的趋势和模式,以及不安全的开源组件和许可证冲突的普遍性。在该报告中,Sonatype公司首席执行官Wayne Jackson表示:

“对于那些通过更好的供应商选择、组件选择和自动化来实现其软件供应链的组织来说,其得到的回报是巨大的。”

1. 几乎所有软件都是开源软件 数据说话:关于软件供应链的真相

最新的研究结果表明,如今几乎所有的现代软件都包含至少一些开源组件。根据Synopsys今年早些时候发布的《2019开源安全和风险分析(OSSRA)报告》显示,在至少包含1000个文件的应用程序中,99%的应用程序至少包含一些开源组件。同时,针对Sonatype所研究的500个现代应用程序的分析结果也显示,平均来看,85%的代码是由开源组件组成的。

2. 开源组件可用性激增数据说话:关于软件供应链的真相

Sonaypte的研究表明,过去两年开源组件的平均增长速度提高了75%。开发人员越多地使用开源组件,他们就越有可能为自己的项目做出贡献——这也推动了各种在线存储库不断提供新的开放代码,形成了一个新开放代码协作世界。自2018年初以来,开发人员平均每天可以访问超过21,448个新的开源组件版本。

3. 对开源组件的需求也呈现飙升趋势

 数据说话:关于软件供应链的真相

上图显示Java项目在可用组件的总体量和增长方面处于领先地位。不仅有更多的Java组件可供下载,而且在现实世界中也可以更多地使用这些组件。对于Java组件发布的下载请求总数在2018年增长了68%,达到了1460亿。Sonatype估算如果假设世界上大概有1200万Java开发人员,这一数字就相当于平均每人12,166个请求。PHP大马

4. 持续增长5年的开源漏洞数据说话:关于软件供应链的真相

Sonatype研究显示,自2014年以来,确认或疑似与开源有关的违规行为增长了71%。好消息是,开源漏洞的数量似乎在2018年达到了顶峰,过去一年略有下降趋势。尽管如此,Sonatype的研究数据仍然显示,1/4的受访组织表示他们在过去12个月内遭遇过一次安全事件。

5. 组件饱受漏洞困扰数据说话:关于软件供应链的真相

研究表明,开源软件的使用本身并不是问题,相反地,还会对软件创新产生重要意义。但是未能积极主动地鉴别和管理任何与开源组件使用有关的安全和许可证风险,可能极具破坏性。根据OSSRA报告显示,在此次审计的代码库中有60%包含至少一个漏洞,虽然这一比例相比2017年的78%已经改善不少,但仍然是一个很大的比例。除此之外,OSSRA报告还指出,对于漏洞严重程度的深入研究显示,超过40%的代码库包含至少一个高风险开源漏洞。

6. 开源下载缺陷率仍然很高数据说话:关于软件供应链的真相

在实践中,组织实际使用的易受攻击的组件要远低于OSSRA报告中提及的40%,但下载缺陷率仍然很高。Sonatype的分析结果表明,企业组织中大约8.8%的组件下载包含已知的安全漏洞。在最受欢迎的Java组件中,这一缺陷率甚至高达10.3%。然而,真正令人不安的是,在这些下载的漏洞中,67%的通用漏洞评分指数(CVSS)为7.0或更高。

7. 仅有一半组织对已知漏洞进行了检测数据说话:关于软件供应链的真相

由于存在众多具有已知漏洞的开源组件,因此组织有责任对这些漏洞进行检查,以确保其软件组件的采购过程安全。不幸的是,WhiteSource于本月早些时候发布的另一项研究显示,在选择开源组件之前,只有一半的北美公司和42%的欧洲公司进行了这些检查。此外,只有1/3的组织使用了能够自动检测现有应用程序中这些漏洞的工具。

8. 管理软件供应链,管理风险

 数据说话:关于软件供应链的真相

Sonatype的研究表明,积极管理其软件供应链、定期更新其开源依赖关系以及采用自动化开源策略的开发团队可以有效地降低其开源缺陷率。与未经管理的供应链相比,经过管理的供应链的易受攻击组件减少了55%。制定了相关策略和最佳实践的组织更倾向于使用包含较少已知漏洞的最新更新的组件。

这篇关于数据说话:关于软件供应链的真相的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/779074

相关文章

SQL Server修改数据库名及物理数据文件名操作步骤

《SQLServer修改数据库名及物理数据文件名操作步骤》在SQLServer中重命名数据库是一个常见的操作,但需要确保用户具有足够的权限来执行此操作,:本文主要介绍SQLServer修改数据... 目录一、背景介绍二、操作步骤2.1 设置为单用户模式(断开连接)2.2 修改数据库名称2.3 查找逻辑文件名

canal实现mysql数据同步的详细过程

《canal实现mysql数据同步的详细过程》:本文主要介绍canal实现mysql数据同步的详细过程,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的... 目录1、canal下载2、mysql同步用户创建和授权3、canal admin安装和启动4、canal

使用SpringBoot整合Sharding Sphere实现数据脱敏的示例

《使用SpringBoot整合ShardingSphere实现数据脱敏的示例》ApacheShardingSphere数据脱敏模块,通过SQL拦截与改写实现敏感信息加密存储,解决手动处理繁琐及系统改... 目录痛点一:痛点二:脱敏配置Quick Start——Spring 显示配置:1.引入依赖2.创建脱敏

详解如何使用Python构建从数据到文档的自动化工作流

《详解如何使用Python构建从数据到文档的自动化工作流》这篇文章将通过真实工作场景拆解,为大家展示如何用Python构建自动化工作流,让工具代替人力完成这些数字苦力活,感兴趣的小伙伴可以跟随小编一起... 目录一、Excel处理:从数据搬运工到智能分析师二、PDF处理:文档工厂的智能生产线三、邮件自动化:

Python数据分析与可视化的全面指南(从数据清洗到图表呈现)

《Python数据分析与可视化的全面指南(从数据清洗到图表呈现)》Python是数据分析与可视化领域中最受欢迎的编程语言之一,凭借其丰富的库和工具,Python能够帮助我们快速处理、分析数据并生成高质... 目录一、数据采集与初步探索二、数据清洗的七种武器1. 缺失值处理策略2. 异常值检测与修正3. 数据

pandas实现数据concat拼接的示例代码

《pandas实现数据concat拼接的示例代码》pandas.concat用于合并DataFrame或Series,本文主要介绍了pandas实现数据concat拼接的示例代码,具有一定的参考价值,... 目录语法示例:使用pandas.concat合并数据默认的concat:参数axis=0,join=

C#代码实现解析WTGPS和BD数据

《C#代码实现解析WTGPS和BD数据》在现代的导航与定位应用中,准确解析GPS和北斗(BD)等卫星定位数据至关重要,本文将使用C#语言实现解析WTGPS和BD数据,需要的可以了解下... 目录一、代码结构概览1. 核心解析方法2. 位置信息解析3. 经纬度转换方法4. 日期和时间戳解析5. 辅助方法二、L

使用Python和Matplotlib实现可视化字体轮廓(从路径数据到矢量图形)

《使用Python和Matplotlib实现可视化字体轮廓(从路径数据到矢量图形)》字体设计和矢量图形处理是编程中一个有趣且实用的领域,通过Python的matplotlib库,我们可以轻松将字体轮廓... 目录背景知识字体轮廓的表示实现步骤1. 安装依赖库2. 准备数据3. 解析路径指令4. 绘制图形关键

解决mysql插入数据锁等待超时报错:Lock wait timeout exceeded;try restarting transaction

《解决mysql插入数据锁等待超时报错:Lockwaittimeoutexceeded;tryrestartingtransaction》:本文主要介绍解决mysql插入数据锁等待超时报... 目录报错信息解决办法1、数据库中执行如下sql2、再到 INNODB_TRX 事务表中查看总结报错信息Lock

使用C#删除Excel表格中的重复行数据的代码详解

《使用C#删除Excel表格中的重复行数据的代码详解》重复行是指在Excel表格中完全相同的多行数据,删除这些重复行至关重要,因为它们不仅会干扰数据分析,还可能导致错误的决策和结论,所以本文给大家介绍... 目录简介使用工具C# 删除Excel工作表中的重复行语法工作原理实现代码C# 删除指定Excel单元