文│国家工业信息安全发展研究中心 蒋艳 赵冉 张格

开源软件是指软件源代码可以被共享和公共使用的软件。在人们享受开源软件的便捷性和广泛性同时,一旦发生开源软件安全漏洞,其危害程度大、波及范围广,将造成较大安全隐患,从而使对开源软件的治理成为一项重要内容。本文在分析开源软件安全风险的基础上,对国外开源软件安全治理模式进行研究,对我国开源软件安全治理工作存在的不足展开反思,基于以上研究,就如何更好地保障我国开源软件安全应用提出相关工作建议。

一、引 言

长期以来,美国是全球开源生态的主导者和规则制定者,汇聚了全球开发者智慧,引领数字化新兴技术产业发展。相较而言,我国开源生态建设起步晚、根基浅、生态弱,开源生态治理经验与国际先进水平差距较大。近段时间以来,由于开源软件在全球各行各业应用广、影响大,如 Strusts2、Log4j2 等开源软件漏洞的爆发引起各国高度关注。我国网络运营者在享受开源软件带来便利的同时,也承担着巨大的安全风险,针对开源软件安全管理的问题应得到更多的重视。

二、开源软件的安全风险分析

(一)开源软件漏洞危害大,波及范围广,修复进度滞后

由于部分底层或通用型开源软件的代码被大量集成在业务系统和商业软件产品中,一旦爆发漏洞,波及面及其广泛。近年来,心脏滴血Open SSL 漏洞(2014 年)、支柱框架 Strusts2 漏洞(2017 年)、Linux SUDO 安全漏洞(2019 年)、Strusts2 S2 漏洞(2020 年)、Log4j2 漏洞(2021年)等重量级威胁逐年发生。以 Log4j2 为例,目前全球暴露在外网的,使用了 Log4j2 组件的资产高达 546 万个,而我国拥有其中的 206 万个,占比近四成。此外,由于大部分开源软件免费使用的性质,开发者和维护方通常不承担任何安全责任,当开源软件存在安全漏洞时,通常会面临“谁来修复漏洞”问题。根据国家计算机网络应急技术处理协调中心发布的《2021 年开源软件供应链安全风险研究报告》显示,2020 年公布的开源漏洞中,编号为 CVE-2009-4067 的 Linux 内核的Auerswald Linux USB 驱动程序的缓冲区溢出漏洞由 POC 披露到 NVD 首次公开时间长达 11 年。开源软件的使用者仅关注官方漏洞库可能无法及时获取漏洞信息,需综合考虑更多渠道的漏洞数据。

(二)开源软件“投毒”危害加剧

开源软件生态“投毒”攻击是指攻击者利用软件供应商之间的信任关系,在合法软件的开发、传播和升级过程中进行劫持或篡改,从而达到非法目的的攻击类型。2022 年 3 月 8 日 GitHub 平台发布公告,Node-ipc 开源软件维护者为表达对俄罗斯在俄乌冲突中的行为的不满,通过 NPM 软件包进行“投毒”,嵌入在开源代码中的恶意程序能够定向擦除俄罗斯、白俄罗斯等国用户的数据。中科院软件所智能软件研究中心团队在开源软件存储库进行恶意扩展包检测中发现,Python官方扩展包被恶意上传了 8 个恶意包及 707 个被“投毒”成功的开源项目。由于开源项目维护者在设计存储库时强调方便快捷,而开源社区的松散式开发维护模式并不对代码的安全机制进行全面审核,使得开源软件能够较为容易地被人为置入后门或恶意程序,进而使得开源项目“投毒”成为一种新型的网络攻击模式。

(三)源代码托管平台“闭源断供”安全隐患凸显

美国出口管制条例规定(EAR,Export Administration Regulations)第 734.7b 和第 742.15b 中要求,所有“公开获得”的源代码(不含加密软件以及带加密功能的其他开源软件),都不受出口管制,而“公开可获得”的带加密功能的源代码,虽不会被限制出口,但需登记备案。目前,国际代码托管平台 GitHub、SourceForge 和 GoogleCode 在其公开的管理办法中均明确声明平台的管理遵守美国出口管制条例,并且司法管辖权均在加州。相关产品不得出售、出口或在出口到 EAR第 740 部分补充文件的国家组 E 中列出的国家和地区,且随时可能会发生变化。随着美国出口管制实体清单中我国企业数量的增加,国内被禁止使用国外开源相关服务的安全隐患凸显。

三、国外开源软件安全治理模式研究

为提升开源软件的安全性,国外推进以开源基金会主导、政府协调、商业公司协作的开源生态安全治理模式。

(一)开源基金会主导建立开源软件安全机制

2020 年 8 月,Linux 基金会牵头成立开源软件安全基金会(OpenSSF)。OpenSSF 作为跨行业的全球开源安全合作组织,汇聚了全球开源安全精英,通过建立开源开发者最佳实践、保护关键项目、开源项目安全风险识别、供应链完整性、安全工具和漏洞披露等专项工作组进行协作和集中努力,以提高开源软件安全性。受微软和谷歌等科技公司支持,OpenSSF 于 2022 年 2 月进一步推出 Alpha-Omega 计划,联合安全团队和开发人员系统性挖掘并处置开源软件项目中尚未发现的漏洞,进而提高开源生态整体安全。OpenSSF 各工作组情况如表 1 所示。

(二)政府协调建立开源安全治理规则

2020 年 10 月,欧盟发布《开源软件战略(2020-2023)》指导开发者遵循 IT 安全最佳实践,并设立开源项目办公室(EC OSPO)鼓励和促进开源生态安全治理。2021 年 1 月 13 日,EC OSPO 设立 20 万欧元的开源项目漏洞奖励计划,着重提升在欧盟内广泛使用的 LibreOffice、LEOS 等开源项目的安全性。《开源软件战略(2020-2023)》主要内容如表 2 所示。

2022 年 1 月,美国国家安全顾问杰克沙利文和副顾问安妮纽伯格就 Apache Log4j2 开放源代码漏洞所带来的巨大影响,组织白宫开源安全峰会,商讨开源软件安全问题处理机制。峰会强调了建立政府和开源相关方的协作,对开源软件实施持续的安全监测,并推进供应商落实《关于加强国家网络安全的行政命令》。

(三)商业公司积极推进开源项目安全应用

以谷歌、微软等为代表的商业科技公司,目前已初步建立了开源项目威胁建模、源代码审核、自动化安全测试在内的主动防御机制,通过对采用的开源代码进行安全验证和组件标识,以提升商业软件产品的安全性和安全漏洞处置的及时性。此外,各公司之间还设立了协作规则,以开源社区为主联合上下游供应商协同解决开源软件的供应链安全问题,进而保证对突发重大安全事件做出及时响应,协同修复高危安全漏洞。

四、我国开源软件安全治理工作存在的不足

与国外相较而言,我国开源生态建设起步晚、根基浅、生态弱,开源生态治理经验与国际先进水平差距较大。

(一)国际开源生态参与程度高、规则制定话语权弱

2021 年度 GitHub 开源情况报告显示,我国开源软件开发者共计 755 万人,华为、阿里等参与开源项目的开发者人数均列居全球前 10 位。预计到 2030 年,我国将成为世界最大的开源项目应用市场。同时,国内开源软件应用排名前 20 的项目则均由国外代码平台进行维护,平台的运营规则、约束条件、代码管理等均由甲骨文、惠普、思科等国外商业公司主导,我国严重缺失开源规则制定的话语权。

表1 OpenSSF 各工作组情况

表2 《开源软件战略(2020-2023)》主要内容

(二)国内开源安全生态建设起步晚、根基浅、生态弱

目前,国内已建起各类开源代码托管平台、开源社区和开源软件基金会,多数龙头企业内部已设立完整的部门建制以专门负责生态构建,但较完备的开源安全生态建设仍存在较大不足。在开源操作系统方面,国内 deepin(深度)社区和 openKyLin(开放麒麟)社区等操作系统均基于 Linux 内核开发,版本迭代和技术路径依赖国外主导的开源社区。2022 年 5 月和 6 月期间,deepin 和 openKyLin 分别宣布主导建设自主根社区,构建基于底层核心技术支撑、自研开源项目组件应用和安全漏洞维护管理的全链条供应链安全机制仍处于初级探索阶段。

(三)网络运营者开源软件安全自主维护能力不足

目前,商业软件供应商通常在未做安全验证的情况下直接引用开源软件,并将其集成和开发至商业软件产品中,导致企业用户信息系统中被动地引入了相关组件。据统计,2021 年开源代码在电信和互联网、党政办公、网络安全等领域应用比例已超 80%,教育培训、医疗健康、金融服务等领域应用比例近 70%,开源软件已成为我国软件生态不可或缺的组成部分。开源软件如果在商业软件产品中无序使用,将会造成用户安全风险不可知、不可控。软件来源合法性和安全测试验证机制缺失。对网络运营者而言,由于缺少漏洞信息跟踪能力,针对开源软件安全漏洞修复存在明显的滞后性,已公开的漏洞可被长期用于对供应链上游软件的攻击,进而演化形成简单易用的武器化漏洞利用工具,严重威胁关键信息基础设施的安全运行。

五、相关对策建议

随着开源技术的广泛应用,开源软件项目实际上已经成为我国软件开发的核心基础设施之一,推动建立国家引领安全需求、行业自律约束规范和企业自主可控应用的开源生态安全治理工作机制,对保障我国数字产业化安全发展具有重要意义。

(一)强化开源软件供应链安全保障

以国内开放原子开源基金会、开源社区、代码托管平台和国内商业公司为依托,吸引软件企业、科研院所、高校、开发者、投融资机构等各类主体广泛参与的运营模式,打造形成国际知名的头部开源运营社区,提升国内开源软件的安全治理水平,逐步构建开源软件供应链安全生态的良性循环。

(二)推动开展开源软件安全检测和开源软件溯源分析

借鉴国际做法,制定并推广软件物料清单(SBOM)统一标准,提升开源软件的可追溯性。汇聚国内第三方安全检测队伍和开源社区相关方,组织开展面向重点行业软硬件产品的供应链安全检测分析工作,形成各类基于开源生态软件产品的关系依赖全景视图,实现开源软件安全风险可知、可控和可防的安全保障机制。

(三)推进开源安全治理规则建立,用开源的方式保护开源软件安全

以《网络安全法》《数据安全法》《网络产品安全漏洞管理规定》等法规落实为契机,加大我国开源安全理念宣传推广,通过国际交流活动和开源社区协作模式,构建产学研用安全协同保障机制。构建和营造重视开源生态开放、透明、安全理念的氛围,引导和推动国内外开源生态各方恪守法律底线,敦促依法使用开源项目。

(本文刊登于《中国信息安全》杂志2023年第3期)

声明:本文来自中国信息安全,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。