10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

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

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

评论

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

java开发之Java ORM 框架推荐

@零度

Java Java ORM ​ObjectiveSQL

权威认可!腾讯云TDSQL通过信通院数据库服务商运维运营服务能力评估

腾讯云数据库

tdsql 国产数据库

MySQL性能优化:EXPLAIN 执行计划与join

秋水

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

智慧园区综合管理平台解决方案,智慧平安社区搭建

电微13828808271

基于SSM+Shiro+Bootstrap实现用户权限管理系统

Bug终结者

Java bootstrap ssm shiro

Android C++系列:Linux Socket编程(一)预备知识

轻口味

android 28天写作 12月日更

Linux之pwd命令

入门小站

Linux

讨论:低代码集成OA/ERP/MES系统,或将是企业应用生态的重要一环?

优秀

低代码

我还是很怀念谷歌

张老蔫

28天写作

区块链电子合同应用平台开发,区块链电子合同解决方案

电微13828808271

京东白条数据架构进化之路:要在数据的不确定性中探索架构的稳定性

SphereEx

数据库 开源 架构 ShardingSphere 京东白条

详细解读MySQL高性能优化

秋水

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

运营商行业软件开发| 内容合集

鲸品堂

通信 运营商 技术专题合集

在线JSON转GraphQL工具

入门小站

工具

【SpringCloud技术专题】「Gateway网关系列」(2)微服务网关服务的Gateway功能配置指南分析

码界西柚

api 网关 SpringCloud Gateway netty 12月日更 服务网关

云原生应用管理,像管理手机APP一样管理企业应用

北京好雨科技有限公司

PaaS #Kubernetes# 应用管理

Redis(二):内存模型及回收算法

IT巅峰技术

Java redis 架构师 分布式缓存 redis分布式

大数据开发之Spark和Flink的对比(转载)

@零度

大数据 flink spark

Dubbo 框架学习笔记二

风翱

dubbo 12月日更

TDSQL | 云原生时代的数据库技术革命

腾讯云数据库

tdsql 国产数据库

前端开发MySQL 数据库之数据引擎

@零度

MySQL 前端

如何利用测试自动化,实现 DevOps?

飞算JavaAI开发助手

什么是 Java Marker Interface(标记接口)

汪子熙

Java jdk volatile 28天写作 12月日更

架构实战营-毕业总结

李焕之

再获信通院权威认证,优等生华为云GaussDB数据库凭什么?

华为云开发者联盟

数据库 opengauss 华为云 GaussDB 信通院

TDSQL | ‘‘微盟式’’SaaS,让商业变得更智慧

腾讯云数据库

tdsql 国产数据库

TDengine入驻Rainbond开源应用商店

北京好雨科技有限公司

时序数据库 #Kubernetes# rainbond

TDSQL在核心交易系统领域的联合解决方案

腾讯云数据库

tdsql 国产数据库

架构训练营毕业设计-电商秒杀系统

李焕之

使用Git将本地项目添加至Git仓库

Bug终结者

Java 实用工具 gitee git version

Linux之mkdir命令

入门小站

Linux

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