NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

新思科技最新报告,在软件供应链中开源风险管理挑战巨大

  • 2022-05-30
  • 本文字数:3351 字

    阅读完需:约 11 分钟

新思科技最新报告,在软件供应链中开源风险管理挑战巨大

新思科技在 2022 年 5 月中旬发布了《2022 年开源安全和风险分析》报告(OSSRA),从行业的角度讲述了当前在软件供应链中管理开源风险的核心挑战。


该报告由新思科技网络安全研究中心(CyRC)编制,分析了由 Black Duck® 审计服务团队执行的对 2400 多项商业和专有代码库的并购交易审计结果。该报告强调了在商业和专有应用程序中使用开源的趋势,并提供了见解,以帮助开发人员更好地了解他们所处的互联软件生态系统,同时还详细地介绍了非托管开源所带来的安全隐患,包括安全漏洞、过期或废弃的组件以及许可证合规性问题。


2022 年 OSSRA 报告强调,开源组件在每个行业都被广泛使用,并且是当今所有应用程序的构建基础。


使用过时的开源组件仍然是常态。易受攻击的 Log4j 版本也含有过时开源组件。在 Black Duck 审计服务团队今年分析的 2409 个代码库中,87%(即 2,097)实施了安全与风险评估*。从运营风险/维护方面来看,在 2097 个代码库中,85%的代码库中包含至少四年未更新的开源代码;88%的代码库中包含过时版本的组件;5%的代码库含有易受攻击的 Log4j 版本。


经过评估的代码库显示,开源漏洞数量总体减少。2097 个代码库经过安全与运营风险评估,其中包含至少一个高风险开源漏洞的代码库数量大幅减少。今年的被审代码库中只有 49%包含至少一个高风险漏洞,2021 年为 60%。此外,81%包含至少一个已知的开源漏洞,与 2021 年 OSSRA 的调查结果相比减少了 3%。


许可证冲突总体上也在减少。超过一半(53%)的被审代码库存在许可证冲突,与 2020 年的 65% 相比大幅下降。总体而言,特定许可证冲突在 2020 年至 2021 年期间减少了。


30%的被审代码库中都包含无许可证或使用定制许可证的开源代码。如果未经创作者/作者以授权许可证的形式明确允许,其他人则不能合法地使用、复制、分发或修改该软件。没有许可证的软件可能意味着使用开源组件带来的法律风险。定制化的开源代码许可证可能会对被许可方提出非预期的要求,因此经常需要对可能的知识产权 IP 问题或其它影响进行法律评估。


新思科技网络安全研究中心首席安全策略师 Tim Mackey 表示:“使用软件组成分析(SCA)工具的用户已经将重点放在减少开源许可证冲突和解决高风险漏洞上。得益于此,我们今年可以看到许可证冲突问题和高风险漏洞数量已经减少。但是我们不能忽略,经过审计的代码库中有超过一半仍然存在许可证冲突,近一半包含高风险漏洞。更令人不安的是,88%被审代码库中包含过时版本的开源组件。而且往往这些组件有可用的更新版本或补丁,但没有被采用。”


Tim Mackey 指出:“没有将软件升级到最新版本的理由有很多。但是,如果企业没有一份清单,准确列明其在代码使用的开源组件,那过时的组件可能就会被遗忘;直到变成一个易受攻击的高风险漏洞,企业才慌忙查找这个组件用在哪里,然后去进行更新。这正是 Log4j 面临的情况。这也是软件供应链和软件物料清单(Software Bill of Materials, SBOM)成为当下行业热点的原因。”


新思科技开源治理专家王永雷在介绍报告的过程中说,从下图能看到每年的开源代码的比例,虽然 2021 年跟 2020 年相比,2021 年大概是 78%左右,跟 2020 年的比例相比增长没有那么爆发式的,但是从 2016 年开始一直是增长趋势,从 2016 年 30%到现在,通过 5 年的时间已经实现了翻倍的增长。



从目前来看,明年还是会有一个增长的趋势,也表明开源软件在促进全球软件创新方面发挥着越来越重要的作用,包括商业公司,以开源为商业的这种公司,都在蓬勃的发展。像图片中展示出来的,计算机硬件和半导体,传统意义上来讲,半导体也会跟硬件有很深的关系吗?其实是的。整个半导体跟原来是不太一样,它是基于硬件,然后基于软件的一个一体化的平台,为客户打造一整套的方案,还有网络能源与清洁科技物联网,都 100%地使用到了开源的软件,这是今年的一个最新的趋势,正应了那句话,“软件继续吞噬世界,开源吞噬软件。”


 

2020 年审计代码库大概是 1,700 个,2021 年共审计代码库是 2,400 多个,增长了百分之四十几。同时看到一个现象,安全漏洞对于开源影响越来越大,在 2021 年安全漏洞的数量有所下降,这是一个值得欣慰的地方。第二变化是,安全越来越引起大家的重视,而且很多企业也要求软件服务商能识别出过期的开源软件,这些过期的软件风险其实是非常高的,从图片中可以看出,包括 88%的被审计代码库中包含两年内未更新的组件,85%的被审代码库中包含至少已过时四年的开源代码,这 85%也就是说 4 年里都没有更新过。


此外还有合规问题,许可证之间的冲突,Unknown 许可证等问题的比例不小,都需要引起重视。


接下来是关于开源软件供应链,其实去年到现在发生了很多安全事件、合规的事件、攻击事件。


 

以 Log4J 为例,它在安全圈里面算是一个核爆级的事件,Log4J 是一个基础性的软件,软件开发中只要涉及到 Java 的,可能 90%的概率都会用到这个记录应用程序日志的组件。通过分析发现 15%的代码都会受到 Log4J 漏洞的影响,这个比例已经很高了。


据统计,今年有被超过 7000 个其他的组件所调用,带来一个很大的挑战,如果要去治理,但是不知道从哪边入手,所以在整个软件供应链里面构建安全其实也是非常重要。整个软件其实是一个链,它也是由基础的软件,其他软件,然后组成一个框架,再组成一个应用程序,甚至组成一个服务。通过这样的一个事件引入我们针对开源供应链的思考。



这是一个比较典型的图,就是整个软件的开发过程里面有源代码,再经过构建,然后再给消费者使用,过程中任何一个点都有可能受到潜在的攻击风险。E 环节会引入很多外部的一个依赖包,这个依赖又是逐级的依赖,包含很多开源组件,因此风险也很高。



说到软件供应链这一块,目前还没有引起足够的重视,每个应用程序平均有包含 508 个第三方组件,尤其是这些组件里面还会有相关联的漏洞,希望能够引起大家的重视。



接下来看软件供应链与风险控制之间的关系。向供应商采购设备或购买软件,可以通过一些行业标准,或合同规范进行管理,这些软件它其实是处于一个无序的、或者是目前来讲没有很好地纳入管理。还有一些我们称之为第三方的库,就是第三方的二进制库,还有一些基于开源组件做一些定制开发,或者是补丁(Patch)都可能引入风险。除此之外还有恶意代码,如果软件在更新的时候,软件包会被劫持,然后被黑客恶意利用之后,会导致程序受到攻击,这些都是属于不可控的风险,这些被称之为软件供应链。


针对开发过程中的各节点风险,有没有解决办法呢?



在最近一两年,国际上都非常关注整个开源供应链,有一个国际标准叫 ISO 5230,这个标准它是基于一个 Open Source 的项目 Open Chain 衍生而来的,Open Chain 这个项目也有超过十多年的历史,是在 Linux 基金会孵化出来。它提供了一个规范和指导,包括上下游的操作规范,核心流程,整体的合规性等等。


在这个过程里面,要和上下游进行数据交换,去年出来了一个数据交换格式,叫 SPDX。SPDX 的全称叫 Software Package Data Exchange,这个标准是说大家形成一个统一的规范,你给我的数据里面这个字段表示什么,那个字段表示什么,降低大家的处理成本,构建一个核心的可信的供应链基石。


另外,从新思科技的角度来说,新思提供软件又提供服务,在整个软件开发过程里,去帮助我们的企业更好地去管理开源的风险,甚至是更好地去管理开源供应链的风险。


在软件开发的过程里面有源码、有构建,还有到发布,那么在这个过程里面我们再细分一下,比如说需求阶段、编码阶段、构建阶段、测试、发布,都有提供服务,提供专业的检测工具去帮助客户提供全方位和端到端的解决方案。



国内包括有信通院牵头的,除了开源合规这一块,也越来越关注开源安全领域。今年新思科技也深度参与了信通院《开源安全深度观察报告》《开源合规指南(企业篇)》白皮书的编写,也希望携手信通院一起来提高整个中国开源产业的安全和合规的水平。



今年,新思科技的 Black Duck 再次通过信通院的可信开源治理工具评估,它的评估其实要求的还是比较细的,新思科技也是高分通过了。在这个过程里面,新思展现了全面的语言支持能力,适应客户不同场景的扫描能力,还有企业级客户尤其关注高并发,分布式弹性部署,容器可扩展性等能力。


下载 2022 年OSSRA报告


*在 2022 年的 OSSRA 报告中,“开源漏洞与安全”以及“开源维护”部分的数据基于包含风险评估的 2097 个代码库,而“许可证”部分的数据则基于全部的 2409 个代码库。

2022-05-30 08:00916

评论

发布
暂无评论
发现更多内容

Python 核心技术与实践 input&output

Bonaparte

中国大陆芯片行业发展概况

老壳有点爽

芯片 集成电路 IC

芯片行业的主要生意模式

老壳有点爽

芯片 集成电路 IC

PySpark RDD 基础运算和操作总结

是老郭啊

spark pyspark RDD

强势入局,区块链专利将成为银行下一个战场?

CECBC

区块链 金融 银行

Linux指令简述&vim引入(1)

老壳有点爽

vim Linux 脚本

MySQL DDL详情揭露

Simon

MySQL

芯片行业基本生态:设计生产封装的行业分工

老壳有点爽

芯片 集成电路 IC

数字后端工程师发展六阶段

老壳有点爽

芯片 集成电路 IC 数字电路工程师

模拟电路设计工程师发展九段

老壳有点爽

集成电路 IC 芯片设计 模拟电路

2020深圳站-GIAC全球互联网架构大会PPT分享

九叔(高翔龙)

架构 分布式系统 服务治理 大型网站演变 全链路压测

看门狗 | 分布式锁架构设计方案-01

九叔(高翔龙)

redis 分布式锁 RedLock WatchDog

世界集成电路发展概况

老壳有点爽

芯片 集成电路 IC 芯片营销

半导体行业个人理解

老壳有点爽

芯片 半导体 集成电路 IC

IC设计流程及工具

老壳有点爽

芯片 集成电路 IC IC设计流程及工具

MySQL备份与恢复场景示例

Simon

MySQL

成都信息工程大学的区块链工程成全国首个区块链工程本科专业

CECBC

区块链技术 区块链工程

最初芯片国产化是怎么来的?

老壳有点爽

芯片 集成电路 国产化 替代

国产数据库的经济民族

郭华

数据库 商业

Golang领域模型-六边形架构

奔奔奔跑

微服务 领域驱动设计 架构设计 Go 语言

区块链之物流产业上链解决痛点

CECBC

区块链 供应链

魅力非凡的半导体电路行业

老壳有点爽

芯片 集成电路 IC 芯片营销

sed 语言学习技巧(2)

老壳有点爽

vim sed 脚本语言

Verilog 的debug技巧(1)

老壳有点爽

芯片 集成电路 IC Verilog 电路

再谈引入YAPI接口平台的好处

Man

DevOps YAPI API接口管理

集成电路设计概括

老壳有点爽

芯片 集成电路 IC

集成电路工艺基础介绍

老壳有点爽

芯片 集成电路 IC 工艺 制程

物理实现(Physical Implementation)

老壳有点爽

芯片 集成电路 IC 物理设计 PI

数字电路后端设计流程

老壳有点爽

设计 flow 集成电路 IC

sed语言学习技巧(1)

老壳有点爽

vim 编程语言 sed 脚本语言

看门狗 | 分布式锁架构设计方案-02

九叔(高翔龙)

redis 分布式锁 Jedis RedLock

新思科技最新报告,在软件供应链中开源风险管理挑战巨大_开源_Lucien_InfoQ精选文章