软件供应链十年:探索开源的增长、风险和未来

回顾软件供应链状况报告的 10 年既是一个里程碑,也是一次行动号召。在过去十年中,开源消费改变了软件开发的世界。我们看到了前所未有的创新,但也出现了新的挑战,特别是在管理软件供应链的安全性和完整性方面。

在 Sonatype,我们一直走在前沿,分析这些趋势,今天,我们第十份年度报告中得出的见解比以往任何时候都更为重要。

十年演变:有什么变化?

十年前,当我们首次开始跟踪开源软件的使用情况时,情况完全不同。软件开发仍在追赶云原生架构,安全问题也更加本地化。快进到今天,开源软件占现代应用程序代码库的 90%,全球开源软件使用量今年已飙升至估计 6.7 万亿次下载​​。npm 和 PyPI 等生态系统蓬勃发展,这主要受到人工智能、云计算和DevOps等趋势的推动------在某些情况下,还有恶意。

但这种增长也带来了阴暗的一面:针对软件供应链本身的攻击有所增加。最初只是偶尔发生的事件,如Heartbleed或Equifax 漏洞,后来逐渐升级为复杂而广泛的攻击。仅在去年一年,就有超过 500,000 个恶意开源软件包被引入开源存储库 --- 同比增长 156%,令人震惊。这不再是一种新兴威胁。这是新常态。

持续的风险和自满情绪

今年报告的一项重要发现是持续风险的概念。我们引入这一术语是为了捕捉未修复漏洞和安全问题持续存在时产生的腐蚀所构成的综合威胁​​。

想象一下,锈蚀会慢慢侵蚀建筑物的结构完整性------这就是我们的软件供应链中正在发生的事情。我们在Log4Shell等案例中看到了最明显的表现,在漏洞首次曝光近三年后,尽管有修复版本可用,但 13% 的下载仍然容易受到攻击。

更令人担忧的是,80% 的应用程序依赖项一年多来一直未升级,而其中 95% 的易受攻击版本都有更安全的替代方案可用​​。这不仅仅是一个技术问题,而是一个行为问题。它反映了组织在管理其软件依赖项方面普遍存在的自满情绪。开发人员陷入了惰性循环,通常是由于担心重大变化或面临更快发布新功能的压力。

新一波供应链攻击:开源恶意软件

我们还发现并密切关注着一种日益突出的新型攻击:供应链污染,也称为恶意开源或开源恶意软件。仅今年一年,就发现了 512,847 个恶意软件包(其中 65,000 个是高严重性恶意软件包),同比增长 156%,针对从自动构建环境到开发人员工作站的所有内容。

开源恶意软件尤其阴险,因为它可以无缝融入合法的开发流程,绕过传统防御措施。这些攻击并非虚构------它们正在积极瞄准和利用现实世界的软件生态系统,包括XZ Utils 后门攻击等重大事件,该攻击几乎危及了全球服务器​​。

规模带来复杂性,复杂性带来风险

如今,开源的庞大规模既是其最大的优势,也是其最大的挑战。仅在 JavaScript 生态系统 (npm) 中,今年就有 4.5 万亿个软件包请求 --- 同比增长 70%。在人工智能革命的推动下,Python 的生态系统也同样蓬勃发展。

然而,规模越大就越复杂。开发人员面对如此多的选择不知所措,往往会选择不安全或过时的组件,因为筛选起来太困难了。

这种"选择过多"是安全风险的重要因素。在 700 万个开源项目中,只有 10.5% 被积极使用,开发人员经常默认使用熟悉或流行的软件包,而没有对它们进行适当的审查。这些​​选择导致安全漏洞的问题不是"是否"而是"何时" 。

效率与浪费:开发商的困境

安全不仅仅是一个技术问题,也是一个生产力问题。管理开源依赖关系、修补漏洞和遵守许可条款所需的努力正在侵蚀开发周期。

平均而言,应用程序包含 180 个开源组件。手动管理这些依赖关系正在成为一项不可能完成的任务。更糟糕的是,92% 的公开漏洞数据需要经过安全研究人员的深入审查才能得到更正。这就产生了我们所说的"意外风险",开发人员错误地认为他们受到了保护,但当发现情况相反时已经太迟了。

更不用说国家漏洞数据库 (NVD)中积压了 17,656 个已发布但尚未处理的漏洞警告,这意味着那些试图在没有软件组合工具的情况下做到这一点的人往往会给自己挖一个更大的坑,因为他们有一种虚假的安全感。我们还必须考虑其他类型的"风险",比如法律和合规性,这也会影响整体生产力和技术债务。

前进之路:主动管理和持续安全

那么,我们该何去何从?如果过去十年教会了我们什么,那就是主动性总是胜过被动反应。组织必须采用始终在线的安全实践------这意味着将软件组合分析 (SCA)工具直接集成到 CI/CD 管道中,并确保每个组件都经过实时审查、监控和更新。仅执行一次性安全检查甚至多次单点检查是不够的。持续监控至关重要。

依赖管理是另一个关键领域。您必须了解软件中包含哪些内容。我们发现,使用软件物料清单 (SBOM)来跟踪和管理开源依赖项的项目与未使用软件物料清单的项目相比,修复漏洞的时间平均缩短了 264 天。但毫无疑问,唯一能让您知道您正在使用哪些项目的方法就是为您的每个应用程序构建 SBOM。这种工具和自动化可以降低风险、提高效率,并最终带来更好的安全结果。

未来十年:行动呼吁

展望未来,开源显然不会消失------也不应该消失。但正如我们将继续说的那样,能力越大,责任越大。未来十年的软件供应链将取决于我们采用更好的工具、实施更好的实践以及在开发团队中培养安全文化的能力。我们还看到,这将在很大程度上取决于监管的作用------以及对这些监管的反应。随着世界各地新政策和新立法的迅猛增长,我们正处于这一领域巨大变革的边缘。

这个问题不仅仅是安全专业人员面临的问题,也是董事会、执行领导团队、开发人员、法律团队和产品所有者面临的问题。

相关推荐
vvw&4 分钟前
Docker Build 命令详解:在 Ubuntu 上构建 Docker 镜像教程
linux·运维·服务器·ubuntu·docker·容器·开源
m0_748241703 小时前
前端学习:从零开始做一个前端开源项目
前端·学习·开源
华为云开发者联盟4 小时前
Karmada v1.12 版本发布!单集群应用迁移可维护性增强
云原生·kubernetes·开源·容器编排·karmada
奥顺互联V10 小时前
深入理解 ThinkPHP:框架结构与核心概念详解
大数据·mysql·开源·php
soulteary10 小时前
使用 AI 辅助开发一个开源 IP 信息查询工具:一
人工智能·tcp/ip·开源·ip 查询
小华同学ai11 小时前
vue-office:Star 4.2k,款支持多种Office文件预览的Vue组件库,一站式Office文件预览方案,真心不错
前端·javascript·vue.js·开源·github·office
m0_7482489415 小时前
WebChat——一个开源的聊天应用
开源
_oP_i20 小时前
Pinpoint 是一个开源的分布式追踪系统
java·分布式·开源
星就前端叭1 天前
【开源】一款基于Vue3 + WebRTC + Node + SRS + FFmpeg搭建的直播间项目
前端·后端·开源·webrtc
Faith_xzc1 天前
【Apache Doris】周FAQ集锦:第 26 期
大数据·数据仓库·开源·doris