2021年11月,一个广泛使用的开源代码中的零日漏洞震惊了科技行业,并引发了一场紧急行动,旨在帮助保护这个主要由志愿者维护的开源生态系统。近四年过去,这一努力取得了重要进展,但也遭遇了多重挫折。

Log4Shell漏洞出现在一款流行的Java日志工具中,促使拜登政府聚焦开源安全,并推动亚马逊、谷歌和微软等大型科技公司承诺投入数千万美元用于安全改进。这些工作大部分通过Linux基金会旗下的开源安全基金会(OpenSSF)开展,该基金会创建了多种工具,帮助开发者分析和应对代码风险。

然而,始于白宫峰会和一项雄心勃勃的行业“动员计划”的行动很快遭遇挑战。一种诱人的新技术——生成式AI——分散了资助这项工作的科技巨头的注意力,而美国政治过渡则熄灭了政府推动行业前进的努力

专家告诉Cybersecurity Dive,克服这些障碍并加倍投入开源安全至关重要,因为开源代码已渗透到从关键基础设施到日常家庭计算的方方面面。

“我们需要确保我们建立的势头不会丢失,”曾在美国网络安全和基础设施安全局(CISA)担任高级技术顾问、负责开源安全工作的杰克·凯布尔(Jack Cable)表示。

开源安全进展

自2022年初以来,资金和关注度的注入带来了重要的开源安全改进。

最显著的进展之一是改善开源软件包仓库安全的活动。亚马逊网络服务开发者体验总监大卫·纳利(David Nalley)表示,仓库“是现代大多数软件消费的分发点”,亚马逊已帮助资助这些关键平台的改进。OpenSSF首席安全架构师克里斯托弗·罗宾逊(Christopher Robinson)表示,这项工作的目标是确保“这些生态系统中的所有项目都将继承”强大的安全实践。

亚马逊还帮助内存安全编程语言Rust的TLS加密库开发者采用了符合联邦标准的加密算法,使需要满足这些标准的组织(包括受监管行业的公司)更容易使用内存安全代码。

罗宾逊强调了OpenSSF的Sigstore项目,它允许开发者对代码进行数字签名以防止篡改。他还称赞科技公司将安全专家嵌入围绕特定编程语言建立的社区,充当这些群体在更广泛生态系统中的“大使”。

CISA利用其权威和专家的声誉,在使用开源代码的机构与生产这些代码的开发者之间架起了桥梁。

“我们确实做了很多工作,确保……当事件发生时,人们能够相互联系,”凯布尔说,他现在是AI编码安全公司Corridor的首席执行官兼联合创始人。他表示,这些努力在2024年的XZ Utils危机中得到了回报,当时一名恶意行为者利用社会工程学欺骗了一位不堪重负的开发者,在其广泛使用的软件包中植入了后门。

也许最重要的是,依赖开源软件包的公司正越来越多地承担确保其安全的责任,而不是将开源开发者视为无偿劳动力。IBM开放技术高级技术人员阿诺·勒霍斯(Arnaud Le Hors)表示,开源开发者多年来一直抱怨他们感到被使用其代码盈利的公司剥削。现在,更多企业“意识到你不能仅仅依赖整个社区来修复你决定在产品中使用的开源软件包中的漏洞。”

“过去几年确实做了很多好工作,”凯布尔说,“而且很多工作仍在进行中。”

投资减少

Log4Shell暴露了开源生态系统的不稳定状态后,领先科技公司与拜登政府官员会面,并承诺提供超过3000万美元的服务、基础设施和人员支持。但专家表示,尽管这些公司的努力取得了一些成果,却未达到预期。

曾领导CISA开源安全项目两年的阿瓦·布莱克(Aeva Black)表示,科技公司的承诺“没有按承诺的金额兑现”,导致“大量失望”。此外,凯布尔表示,许多其他公司甚至没有做出任何承诺,因为它们“仍然没有认识到……它们从开源软件中获得的价值”,并且“没有考虑如何与维护者互动,更不用说开始回馈了”。

作为OpenSSF工作最大的早期资助者之一,亚马逊“今天的投资比Log4Shell之后更多”,纳利说,但其“投资随着我们了解什么有效、什么无效而演变……有些投资回报良好,其他可能不如我们预期。”

随着公司缩减雄心,美国政府从推动它们前进转向在唐纳德·特朗普总统领导下放弃这一领域。勒霍斯表示,开源工作“在新政府下放缓了”。

拜登政府去年8月承诺为开源安全提供1100万美元,但布莱克表示“这些承诺没有得到兑现”。

特朗普政府对CISA的削减以及布莱克、凯布尔等广受尊敬的专家离职,基本上消除了该机构在开源安全方面的工作

布莱克表示,CISA的倡导帮助科技公司的开源专家说服雇主“兑现承诺”,并成为社区更积极的参与者。凯布尔表示,展望未来,“尚不清楚CISA以及整个联邦政府将在多大程度上参与”开源事务。

CISA公共事务总监马西·麦卡锡(Marci McCarthy)在一份声明中表示,该机构“仍然高度关注”开源安全。“开源软件是我们软件供应链中联邦政府和美国关键基础设施的关键组成部分,”麦卡锡说。“我们很荣幸拥有一个才华横溢的团队,致力于理解和减轻开源软件的风险。”

OpenAI意外颠覆一切

2022年11月30日,OpenSSF安全计划启动仅几个月后,OpenAI发布了ChatGPT。随着生成式AI聊天机器人吸引公众注意力,科技公司竞相拥抱这项技术。大约在那个时候,布莱克说,“几家做出开源安全承诺的大公司开始将开发者从开源安全项目重新分配到AI工具上。”

布莱克表示,在随后的几年里,随着公司“大规模转向加倍投入AI”,开源安全被搁置一旁。

布莱克说,他们在微软和CISA时合作过的大多数微软专家“现在都被调到了AI团队”。他们回忆说,当CISA从微软招募他们时,他们在公司的团队“正在被拆散并重新分配到AI工作上”。

布莱克表示,微软曾支持开源工作的法律和政策人员也被重新分配到AI领域,微软子公司GitHub“进行了大规模转变”。布莱克说,微软和谷歌“似乎都在将人力资源从这项工作中重新分配”。

微软没有反驳布莱克的说法,但其开源生态系统和开源孵化总监瑞安·韦特(Ryan Waite)表示,公司仍然深度参与生态系统。谷歌发言人表示,它“继续投入大量资源和专业知识”用于开源安全。

一些专家认为,AI将通过大幅加快发现和修复漏洞的速度来改善开源安全。美国国防高级研究计划局(DARPA)最近与OpenSSF合作结束了一场奖金竞赛,旨在开发AI驱动的漏洞检测软件。

但其他人并不那么乐观。布莱克指出了广泛使用的curl软件包开发者在一次会议上发表的沮丧演讲。“他快被淹没了,”布莱克说,“被基于AI的开发者垃圾淹没——人们提出的补丁显然是由生成式AI工具编写的,质量低劣,他不得不不断筛选并拒绝它们。”

未解决的问题

专家表示,一系列紧迫的开源安全问题仍未解决,他们对这些问题的承诺程度各不相同。

最严重的问题之一是,软件开发者——包括那些为美国军方供货的开发者——往往不知道他们使用的代码来自哪里。“人们对他们消费的东西没有很好的了解,”纳利说。这个问题尤其严重,因为一个软件中包含的软件包数量众多——根据Sonatype的数据,平均180个——而且其中许多软件包的安全性很差。在Log4j漏洞被广泛公开近四年后,有缺陷的版本仍占该软件包所有下载量的13%,罗宾逊说。

纳利表示,OpenSSF的Scorecard项目将帮助开发者应对这些“依赖”风险。软件物料清单(SBOM)也可能有助于揭示软件包的依赖关系,尽管布莱克表示开源的复杂性使其效果不太理想。

识别并帮助那些维护最少但至关重要的项目仍然是另一个重大挑战。一些支撑整个互联网的项目可能只是一两个志愿者的工作。“我们需要在那里进行投资,”纳利说。哈佛商学院一直在通过定期普查来解决这个问题。

XZ Utils危机凸显了减少项目信任差距和了解每一行代码来源的重要性,勒霍斯表示,OpenSSF的软件工件供应链级别(SLSA)项目将有助于解决这个问题。

用内存安全编程语言重写软件包的科技公司面临采用挑战。“我们尝试重写的许多软件包并未获得显著采用,”纳利说。他的团队帮助重写了至关重要的sudo软件包,并鼓励Linux发行版采用它,但他们表示它依赖项太多,因此团队不得不重做。

确保软件包仓库安全方面还有更多工作要做。“投资于基础设施非常重要,”纳利说。

即使在美国的工作放缓之际,其他政府也没有停滞不前。欧盟新立法将要求企业对其列出的开源代码的安全负责,这可能会产生全球性影响。

“自Log4Shell问题以来,我们取得了很大进展,”勒霍斯说。“我们仍在取得一些进展,幸运的是,因为美国并不是整个世界。”