2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

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

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

评论

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

AR人体姿态识别,实现无边界的人机交互

HarmonyOS SDK

AR

36氪|元年科技发布新版数字化PaaS平台,更新多个组件

元年技术洞察

方舟 PaaS 中台战略 企业数字化

数字化时代,企业如何创新自己的客户服务

Baklib

推广TrustAI可信分析:通过提升数据质量来增强在ERNIE模型下性能

汀丶人工智能

nlp

华为数通HCIA小型拓扑综合实验,运用OSPF动态路由协议、ACL访问控制列表,交换机生成树协议,修改交换机根桥、交换机划分vlan、链路聚合等相关数通技术、NAT地址转换以及NAT网络地址转换的配置

Python-派大星

10月月更

对话创始人:团队研发效能应该如何管理和度量?

LigaAI

团队管理 敏捷开发 研发管理 研发效能 企业号十月PK榜

如何提升研发效能?我们先从指标谈起

Kyligence

数据分析 指标管理

String源码分析(二)

知识浅谈

String类 10月月更

从“汽车制造”生活案例到软件的建造者模式

宇宙之一粟

设计模式 建造者模式 Go 语言 10月月更

如何在C#或VB.NET程序中为幻灯片添加或删除批注

Geek_249eec

C# PPT VB.NET

vue3 name 属性的使用技巧

new_cheng

Vue 前端 Vue3 VUE 3.0 源码

JUC 浅析(二)

Andy

立即可用的实战源码(springboot+redis+mybatis+restTemplate)

程序员欣宸

Java springboot 10月月更

鸿蒙开发实例 | 鸿蒙操作系统的前世今生

TiAmo

华为 鸿蒙 10月月更

专访韩向东|元年科技:专业与技术并重,赋能财务数字化转型

元年技术洞察

数字化转型 财务数字化

“程”风破浪的开发者|学习中的境界

林冲

学习方法 “程”风破浪的开发者

报名倒计时1天!平头哥、中科院软件所PLCT实验室等技术专家解读最新RISC-V技术

OpenAnolis小助手

报名 risc-v 云栖大会 Workshop 龙蜥峰会

极客时间运维进阶训练营第二周作业

忙着长大#

极客时间

Spark on k8s在阿里云EMR的优化实践

阿里云大数据AI技术

大数据 spark 企业号十月PK榜

京东云开发者|京东云RDS数据迁移常见场景攻略

京东科技开发者

MySQL 数据同步 数据迁移 云迁移 数据订阅

订单中心架构设计与实践

小小怪下士

Java 程序员 系统架构 架构设计

Spark On Kubernetes 的 Web UI 访问实践

移动云大数据

要努力,但也别焦虑

源字节1号

程序人生

NAT基础:NAT技术原理,静态NAT、动态NAT、NAPT、Easy IP、NAT Server的原理,以及各NAT的配置方法和转换示例。

Python-派大星

10月月更

27位技术实战派负责人齐聚 深聊降本增效 你一定不想错过!

阿里技术

云计算 云原生 云栖大会 降本增效

阿里云云边一体容器架构创新论文被云计算顶会 ACM SoCC 录用

阿里巴巴云原生

阿里云 云原生 容器服务

ACL访问控制列表 基础、创建ACL访问控制列表的两种方式、配置ACL访问控制列表规则、修改ACL规则的默认步长。子网掩码、反掩码、通配符掩码的区别和作用。

Python-派大星

10月月更

教你处理数仓慢SQL常见定位问题

华为云开发者联盟

数据库 后端 华为云 企业号十月 PK 榜

极客时间运维进阶训练营第二周作业

9527

2022最新CSS高频面试题指南

CoderBin

CSS 前端 面试题 秋招 10月月更

FlyFish一周年,社区大咖邀你共话开源!

云智慧AIOps社区

低代码 可视化 数据可视化 大屏可视化 无代码

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