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

回顾软件供应链状况报告的 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。这种工具和自动化可以降低风险、提高效率,并最终带来更好的安全结果。

未来十年:行动呼吁

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

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

相关推荐
WinterKay18 小时前
【开源】我写了一个轻量级本地数据库浏览工具,支持 MySQL/Redis 只读查询
数据库·mysql·开源
OpenCSG20 小时前
以开源技术、跨境数据与绿色算力为支点,“开放东方社区”上线
开源
code_pgf21 小时前
Octo 算法详解-开源通用机器人策略模型技术报告
算法·机器人·开源
非优秀程序员21 小时前
智能体的构成--深入探讨Anthropic、OpenAI、Perplexity和LangChain究竟在构建什么。
人工智能·架构·开源
Hello__777721 小时前
开源鸿蒙 Flutter 实战|文章分类标签功能全流程实现
flutter·开源·harmonyos
ClkLog-开源埋点用户分析21 小时前
在信创环境下,如何判断一套用户行为分析系统是否“真正可用”?
数据分析·开源·开源软件·用户画像·埋点系统
GitCode官方1 天前
一声唤醒 万物响应|AtomGit 首款开源鸿蒙 AI 硬件「小鸿」发布会圆满落幕 定义智能交互新入口
人工智能·开源·harmonyos
猫头虎1 天前
如何搭建 24 小时 AI 直播平台:魔珐星云数字人打造无人值守 “AI 销冠” 全流程实战教程
人工智能·langchain·开源·prompt·aigc·embedding·agi
王码码20351 天前
NAS 部署 TDuck 开源问卷系统:从一键搭建到公网访问全教程
开源·内网穿透·nas·问卷系统·tduck
熊猫钓鱼>_>1 天前
大型复杂远程AI Agent应用:从架构困局到进化突围
人工智能·ai·架构·开源·大模型·llm·agent