最近,在开源软件的圈子里,欧盟的《网络弹性法》(Cyber Resilience Act,简称 CRA)成为大家热议的焦点。这项法规于 2024 年正式生效,虽然要到 2027 年 12 月才全面实施,但它带来的影响已经开始显现,开源软件的发展道路也因此面临着重大转变。Linux基金会发表了最新的报告,针对CRA对开源软件的影响进行了分析。包括现存挑战、实践案例以及应对建议等。(https://www.linuxfoundation.org/hubfs/LF%20Research/lfr_cra_031725a.pdf?hsLang=en)
CRA 的出台,旨在全方位提升欧盟市场乃至全球数字产品的网络安全水平。它设定了三个主要目标:降低数字产品漏洞的数量和严重程度;确保产品在整个生命周期内都能维持良好的网络安全状态;让用户在挑选和使用数字产品时,能依据清晰的网络安全标准做出明智决策。CRA 的覆盖范围相当广泛,只要是在欧盟市场商业化销售、带有数字元素的产品,无论是软件、硬件,还是两者的结合体,都得遵循其规定。像我们日常使用的手机、电脑软件,还有工业控制系统等都包含在内。而且,它对制造商和开源软件管理者(stewards)的角色进行了明确区分。制造商要对产品的合规性负主要责任,而开源软件管理者虽然不用直接对产品商业化负责,但也有自己的一套义务,比如制定网络安全政策、及时处理和报告漏洞、与市场监管机构合作,以及参与自愿安全认证等。
CRA 的出现,让开源软件项目面临着一系列棘手且影响深远的问题。首当其冲的就是项目合规成本的大幅增加。为了满足 CRA 的严格要求,开源项目需要投入大量额外的人力和资金。从人力方面来看,要组建专业且具备高度技术能力的产品安全事件响应团队(PSIRT)。这个团队不仅要具备快速发现和处理漏洞的技术能力,还得有应对各种复杂安全事件的经验。成员需要时刻关注软件安全动态,及时响应并处理各类安全问题,这意味着需要投入大量的时间和精力。而且,培养这样一支专业团队并非易事,需要提供专业的培训和持续的学习机会,这又进一步增加了成本。在资金投入上,制定完善的安全政策和流程需要耗费大量资源。这包括对现有代码库进行全面的安全审计,以查找潜在的漏洞;引入先进的安全检测工具和技术,确保软件在开发和维护过程中的安全性;对开发流程进行优化,融入更多安全环节和审查机制。这些工作都需要购买专业的软件工具、支付安全专家的咨询费用等,对于一些小型开源项目来说,这些成本无疑是沉重的负担。小型项目通常资源有限,可能原本就依赖于志愿者的贡献,没有足够的资金储备来应对这些额外支出,这极有可能影响到项目的持续发展,甚至导致项目停滞不前。在安全标准方面,CRA 提出了极高的要求。开源项目不仅要保证软件在当前环境下的安全性,还要对软件的整个生命周期进行安全管理,并且详细记录和公开安全相关的信息。然而,目前开源软件的安全标准并不统一,不同项目的安全水平参差不齐。一些大型开源项目可能已经建立了相对完善的安全体系,但众多小型项目可能由于缺乏资源和专业知识,安全措施较为薄弱。这就需要开源社区加强协作,尽快建立起一套统一的安全标准。但在实际操作中,这面临着诸多困难。开源社区成员来自不同的背景和组织,有着不同的技术理念和开发习惯,要达成一致的安全标准并非易事。而且,即使建立了标准,如何确保各个项目有效执行也是一个难题。如果无法建立统一标准并有效执行,在 CRA 的严格监管下,很多开源项目可能会面临合规风险,影响其在欧盟市场的应用和推广。CRA 还对开源软件的供应链管理提出了前所未有的挑战。开源软件的供应链极为复杂,涉及众多的开发者、贡献者和组件。一个开源项目可能依赖于成百上千个不同来源的组件,这些组件的安全性和合规性参差不齐。在 CRA 的要求下,制造商需要对开源组件进行严格的尽职调查,确保其安全性和合规性。这就要求开源项目提供更详细、更准确的软件物料清单(SBOM)。SBOM 需要明确每个组件的来源、版本、许可证信息以及安全状况等。但目前,开源项目在 SBOM 的管理上存在很大差异。有些项目可能只是简单记录了依赖组件的名称和版本,缺乏详细的许可证信息和安全评估;有些项目甚至没有完整的 SBOM。这使得制造商在进行风险评估时面临很大困难,难以准确判断开源组件是否符合 CRA 的要求,从而增加了整个供应链的安全风险。
面对 CRA 带来的挑战,不少开源项目已经开始积极应对。以 Linux 基金会旗下的 Civil Infrastructure Platform(CIP)、Yocto Project 和 Zephyr Project 这三个项目为例,它们在安全实践方面不仅展现出了各自的特色,还在持续探索和创新,力求更好地满足 CRA 的要求。CIP 项目专注于为工业和民用基础设施提供核心开源软件组件。在开发过程中,它积极采用 IEC 62443-4-1 工业网络安全标准,这一标准为其软件的安全性和可靠性提供了坚实的保障。通过遵循该标准,CIP 在软件设计、开发、测试等各个环节都融入了严格的安全规范,从源头上降低了安全风险。CIP 通过标签和分支系统,有条不紊地清晰区分开发版本和发布版本,并且将所有软件源代码发布在kernel.org和 GitLab 上,这种开放的做法方便了全球开发者查阅和贡献代码,极大地促进了社区的协作和创新。在漏洞管理方面,CIP 构建了多元化的报告渠道。除了通过公共渠道接收漏洞报告外,还设立了专门的私人邮箱,用于接收负责任的漏洞披露。这一举措既鼓励了安全研究人员积极报告漏洞,又保护了报告者的隐私,为及时发现和修复漏洞提供了有力支持。为了进一步提高漏洞处理效率,CIP 还建立了一套完善的漏洞处理流程,确保每个漏洞都能得到及时、有效的处理。然而,CIP 在与市场监管机构合作时也遇到了一些困难。由于其社区结构较为分散,成员分布在不同地区和组织,协调各方响应监管机构的请求时效率不高。为了解决这一问题,CIP 正在探索建立更高效的沟通协调机制,例如设立专门的协调岗位,负责与监管机构对接,整合社区资源,确保能够及时、有效地回应监管要求。Yocto Project 作为构建定制嵌入式 Linux 操作系统的行业标准 “工具包”,其开发实践与 CRA 的要求高度契合。它采用了结构化的发布节奏,每六个月发布一次标准版本,每两年发布一次长期支持(LTS)版本,这种稳定的发布周期让用户能够清晰地了解软件的更新计划,便于进行项目规划和维护。Yocto Project 通过 Git 进行版本管理,这使得代码的变更历史一目了然,开发者可以轻松追踪每一次修改,便于进行代码审查和问题排查。在安全治理方面,Yocto Project 利用 Bugzilla 作为漏洞追踪系统,并引入了 CVE 扫描工具,对软件进行全面、深入的安全检测。这些工具能够及时发现软件中存在的漏洞,并提供详细的报告,帮助开发者快速定位和解决问题。Yocto Project 还特别注重可重现构建,即给定相同的源代码、构建环境和构建指令,任何人都能生成完全相同的二进制代码。这一特性不仅提高了软件的安全性,还增强了软件的可验证性和可重复性,让用户能够更加放心地使用 Yocto Project 构建的系统。为了更好地满足 CRA 对软件物料清单(SBOM)的要求,Yocto Project 生成了符合 SPDX 3.0 标准的 SBOM。通过这一标准化的 SBOM,Yocto Project 能够详细记录软件中各个组件的信息,包括来源、版本、许可证等,为制造商提供了准确的风险评估数据,有效提升了供应链的透明度和安全性。但目前 Yocto Project 的长期支持期为四年,略短于 CRA 要求的五年。为了满足法规要求,项目团队已经开始着手规划延长支持期的工作。他们一方面积极与社区成员沟通,争取更多的资源和支持;另一方面,对现有的维护流程进行优化,提高维护效率,确保在延长支持期的同时,不会降低软件的质量和安全性。Zephyr Project 是针对资源受限设备的实时操作系统。它围绕 GitHub 进行开发管理,每四个月发布一个新版本,每 2.5 年推出一个长期稳定版本,这种频繁的更新节奏能够及时引入新功能和修复漏洞,满足资源受限设备不断变化的需求。Zephyr Project 作为 CVE 编号机构,拥有成熟的产品安全事件响应团队(PSIRT),这个团队具备专业的安全技术和丰富的经验,能够及时处理和响应各类安全事件。它还积极参与自愿安全认证计划,在 OpenSSF 最佳实践徽章计划中获得了金牌,这充分证明了其在安全方面的卓越表现。Zephyr Project 的禁运政策和对安全标准的持续评估机制,使其在安全方面表现出色。禁运政策能够在发现重大安全漏洞时,及时阻止相关版本的使用和传播,降低安全风险;持续评估机制则确保项目能够紧跟安全标准的发展趋势,不断优化自身的安全措施。针对 CRA 在软件物料清单(SBOM)标准化方面的不足,Zephyr Project 正在与其他开源项目和行业组织合作,共同推动 SBOM 的标准化工作。他们积极参与相关的讨论和制定过程,希望能够建立一套统一、规范的 SBOM 标准,减少因标准不一致带来的合规风险。
为了更好地应对 CRA 带来的挑战,开源社区也在积极行动。2024 年 12 月,Linux Foundation Europe 和 OpenSSF 联合举办了一场研讨会,邀请了开源项目的负责人、制造商和政府官员等共同探讨应对策略。研讨会主要围绕三个关键方向展开:标准制定、提高认知度和开发工具。在标准制定方面,开源社区希望基于现有的最佳实践,建立一套与 CRA 相匹配的网络安全标准。这需要与欧洲监管组织密切合作,确保标准在 CRA 全面实施前能够生效。提高认知度工作则侧重于通过全球调查、开发决策树和制作教育材料等方式,让开源项目、制造商等各方更好地理解 CRA 的要求和影响。在工具开发上,OpenSSF 等组织计划开发标准化的网络安全政策和漏洞报告模板,建立与市场监管机构的沟通渠道,并探索自愿网络安全认证计划,帮助开源项目更好地满足 CRA 的要求。
尽管 CRA 给开源软件带来了诸多挑战,但它也为开源生态系统的发展提供了机遇。通过 CRA 的推动,开源项目可以进一步完善自身的安全机制,提高软件质量。在满足法规要求的过程中,开源项目将更加注重安全开发流程、漏洞管理和供应链安全,这将有助于提升开源软件在市场上的竞争力。CRA 的实施也促使开源社区加强与制造商、政府等各方的合作。这种跨领域的合作将促进知识共享和技术交流,为开源软件的发展创造更有利的环境。开源项目可以借助制造商的资源和市场经验,更好地推广和应用自己的软件;同时,政府的参与也将为开源社区提供更多的政策支持和资源保障。
CRA 的出台标志着开源行业进入了一个新的发展阶段。在法规的监管下,开源软件项目需要不断调整和完善自身的发展策略,以满足日益严格的网络安全要求。开源软件目前面临着诸多挑战,需要开源社区团结协作,积极应对,推动开源软件生态系统朝着更加安全、可持续的方向发展。欢迎将我们设为“星标”,这样才能第一时间收到推送消息。关注EEWorld旗下订阅号:“机器人开发圈”
回复“DS”领取《DeepSeek:从入门到精通》完整版
