最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

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

  • 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:00906

评论

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

10.《重学JAVA》--控制语句(二)

杨鹏Geek

Java 25 周年 28天写作 12月日更

Linux之cd命令

入门小站

目录

100+行业大牛,Qcon全球软件开发者大会参会记录

看点代码再上班

技术 互联网 软件开发 Qcon

1-8聚合架构第九讲:我们聊聊4个A?

钰湚—付晓岩

企业架构 业务架构 聚合架构

字典树之旅03.Patricia Trie(一)

极客志

Java 自然语言处理 数据结构 算法 字典树

区块链,开启智慧养老新时代

CECBC

聊聊SpringBoot中的两种占位符:@*@ 和 ${*}

xiaoxi666

maven springboot

成年人除了工作以外,在社会上还要争取什么?

DaemonStone

管理 技术人生 职业发展 人生选择

HHL Algorithm

Si Yuan

量子计算

给弟弟的信第9封|初入职场攻略

大菠萝

28天写作

预付式消费不安全怎么办?区块链技术来了

CECBC

电商系统微服务架构设计

天天向上

架构实战营

创业合伙人的选择和经营

wood

创业 合伙人 28天写作

1-7聚合架构第八讲:ADM被骂的冤吗?

钰湚—付晓岩

企业架构 业务架构 聚合架构

SQL优化和索引

lixiaofeng

SQL优化 索引优化 内容合集 签约计划第二季

Redis 实战:巧用 Bitmap 实现亿级数据统计

码哥字节

redis BitMap 签约计划第二季

MySql优化:MySQL体系结构及存储引擎总结

秋水

MySQL性能优化 内容合集 签约计划第二季

如何决定响应式网站的 CSS 单位?

海拥(haiyong.site)

响应式 大前端 28天写作 签约计划第二季 12月日更

Android C++系列:Linux网络(四)TCP详解

轻口味

c++ android 28天写作 12月日更

Quantum Mechanics Is Different

Si Yuan

量子计算

【分布式技术专题】「分布式ID系列」百度开源的分布式高性能的唯一ID生成器UidGenerator

洛神灬殇

唯一ID 12月日更 UidGenerator 服务ID 百度技术

【Promise 源码学习】第十七篇 - async/await 简介

Brave

源码 Promise 12月日更

Redis 核心原理与实战总结系列

码哥字节

Redis 6.0 技术专题合集

MySql优化:详细解读InnoDB存储引擎

秋水

MySQL性能优化 内容合集 签约计划第二季 MySQL InnoDB

dart系列之:实时通讯,在浏览器中使用WebSockets

程序那些事

flutter dart HTTP 程序那些事 12月日更

Servlet的生命周期

JavaEdge

12月日更

模块二作业

Geek_e6f7f6

架构训练营

🏆视差特效的原理和实现方法

德育处主任

JavaScript 前端 特效 前端特效 css特效

模块六作业

doublechun

「架构实战营」

我们需要一个React框架吗?

RingCentral铃盛

React 框架 分布式应用框架

Deutsch-Jozsa Algorithm

Si Yuan

量子计算

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