近年来,开源在各行业各领域得到广泛应用,国内的开源生态整体呈现蓬勃发展的态势。据统计,我国企业软件几乎都会使用到开源代码,流行开源软件被近1/4的软件项目使用。然而,由开源软件的依赖关系,自然形成的供应链包含从编码、打包、分发各个环节,其中任何一环出现问题,都可能导致开源软件面临重大风险。开源安全已成为当前亟需重视的问题。
近期随着俄乌冲突的爆发,美国为首的西方国家联合全球盟友对俄罗斯展开了全面围剿,并在政治、经济、文化、体育和科技等领域推出一轮又一轮的制裁措施。尤其是在科技领域,为了限制俄罗斯在高科技领域的竞争力及获取美国先进技术的能力,美国总统拜登2月24日发表讲话,强调美国及其盟友将对俄罗斯展开“毁灭性的制裁行动”。美国商务部通过工业和安全局(BIS)正式公布了针对俄罗斯的一系列全面的严格出口管制措施,包括半导体、芯片、计算机、电信设备、加密安全设备、激光和传感器等。美国商务部长Gina M. Raimondo明确表示:“商务部与我们的国际合作伙伴以及本届(拜登-哈里斯)政府将继续使用我们所拥有的一切工具手段来限制支持俄罗斯军事能力的产品、软件和技术。”
随后,以美国公司为首的科技巨头相继宣布制裁俄罗斯。硬件方面,英特尔、AMD、联想、戴尔、台积电、思科、三星、苹果等科技企业宣布停止对俄罗斯供货;软件方面,微软、SAP、Oracle、亚马逊等软件巨头宣布停止在俄罗斯的产品销售和服务。这意味使用这些巨头产品的企业、机构业务将面临瘫痪。
与此同时,开源界也牵扯进俄乌之间冲突的漩涡中。世界最大的代码托管平台和开源社区GitHub表示,严格限制俄罗斯获取维持其侵略性军事能力所需要的技术;前端三大主流框架之一React声援乌克兰,英文官网首页上线支持乌克兰的横幅;影响力巨大的编程语言PHP社区邮件讨论列表出现了一封“申请援助乌克兰”的邮件,目的在于呼吁PHP社区火速参与俄乌冲突;最大的开源包管理系统Node.js公开表态站队乌克兰,并在官网首页新增了一段带话题的呼吁性文字,表示与乌克兰人民站在一起;全球第二大开源代码托管平台GitLab已暂停在俄罗斯和白俄罗斯的新业务;全球市场排名第二的开源Web服务器Nginx(由一名俄罗斯工程师Igor Sysoev开发并开源)的母公司F5,取消了俄罗斯对 F5 的网络访问,并停止了在俄罗斯对Nginx开源项目的贡献;开源项目vue-cli(vue-cli是一个基于Vue.js进行基础架构快速开发的完整系统,称为脚手架工具。)的依赖项node-ipc包正在以反战为名进行供应链投毒,如果主机的IP地址来自俄罗斯或白俄罗斯,该代码将对其文件进行攻击,将文件全部替换成❤。
根据俄罗斯研究小组维护的一个开源“抗议软件”清单,目前已经有多达30个开源项目加入了对俄罗斯的抵制,其中甚至包括亚马逊(AWS Terraform modules)和Oracle等科技巨头的项目,也不乏MongoDB、pnpm、es5-ext、Drupal、RedisDesktopManager等流行项目。上述开源项目的抗议方式多种多样,包括数据和代码库销毁、加载恶意软件勒索软件、DDoS攻击、植入后门等高危行为到屏蔽俄罗斯开发者或者显示政治标语等中低烈度的抗议行为。这些行为对俄罗斯的经济运行和IT行业造成了严重冲击,以至于俄罗斯总统普京于2022年3月30日签署总统令:为保障技术独立性,要求从3月31日起禁止在国家采购中未经相关部门许可为重要国家基础设施部门购买外国软件,从2025年开始,国家重要基础设施部门将完全禁止使用外国软件。
开源政治化的潘多拉盒子已经打开,虽然开源社区一向推崇“自由、平等、相互尊重”的原则,开源精神被无数开发者奉为圭臬,然而“封锁”事件的上演,令国内开源开发者们开始担心,“开源无国界”是否为伪命题?一旦此类事件发生在我国,我国的开源软件如何保证自身的安全?
二、我国开源软件安全面临的风险
开源带来的正面效应已在数字经济生活中发挥重要作用,如何在安全可控的情况下使用开源,已成为我国高质量发展数字经济的关键任务。然而,目前我国开源生态仍处在发展阶段,开源软件供应链渗透度与参与度不足,对开源软件风险抵抗能力较弱。尤其在俄乌冲突中,不断有开源厂商或组织因政治立场或个人情感的因素宣布断供封锁俄罗斯,粉碎了“开源无国界”的假象,这让开源倡导的“创新、开放、自由、共享、协调”理念,在所谓“政治正确”面前不堪一击。为了应对开源软件尤其是开源软件供应链存在的安全问题,有必要作出深入的分析,找出我们的不足,并提出相应对策。
1. 开源软件面临的供应链“卡脖子”风险
尽管我国已经开始积极推动开源生态的建设,但国内开源软件产业仍面临着根本问题。首先是产业价值不高。以美国红帽(Red Hat)公司和国内主要操作系统厂商对比为例,前者在2019年的收入约为30亿美元,而后者年收入则在亿元人民币规模。其次,创新创业支撑不足。近年来,美国纷纷诞生了一些基于开源的独角兽企业,如著名的开源协作软件Slack和开源云计算软件Snowflake,市值分别已经达到了200亿和700亿美元。在国内,极度缺乏这样基于开源的高价值的创新创业公司。其三,开源生态受制于人。谷歌依托安卓操作系统的GMS(谷歌移动服务)对华为断供,至少影响了华为100亿美元的海外销售收入。
事实上,开源软件供应链“卡脖子”事件频频发生,已经给国内软件产业敲响了警钟。例如,Docker是云计算领域最重要的开源应用容器引擎。2020年8月13日起,它的企业版DockerEE和DockerHub禁止被美国政府列入贸易管制“实体清单”的企业使用,一批中国企业、科研院所和高校受到直接影响。CentOS是国内服务器领域使用最多的开源操作系统,2020年12月,红帽公司宣布将于2021年年底停止维护CentOS 8,给中国企业造成了大量的应对成本。再如Openwall的“隐形断供”。Openwall是开源基础软件安全预警平台。漏洞共享、安全预警是操作系统等基础软件产业的重要环节,可国内在这个领域仍然处于空白状态。由于获取受限,国内基础软件存在2周以上的“安全预警空白区”。
除此之外,国内的开源软件供应链还面临新型OpenChain的“准入”风险。OpenChain是开源软件合规性标准,目标是在交换开源软件解决方案的组织之间建立信任基准,确保程序被设计成为合规工件。Linux基金会采用快速过会的方式将OpenChain转变成国际标准,意味着国内软件企业必须符合OpenChain标准才能进入国际市场。但国内本就缺乏开源软件使用的合规性审核,这一标准的实施平添了壁垒,将限制国内软件产品进入国际“大循环”。
尤其在俄乌冲突中,虽然有悖于开源精神,但是仍有多个开源组织还是表明了政治立场,把政治带入到开源项目中,抛弃了技术中立立场。如著名的开源项目Nginx,作为一个俄罗斯工程师发起并开源的项目,由于被美国公司F5收购,在俄乌冲突中,F5停止了在俄罗斯对Nginx开源项目的贡献,并表示Nginx将在俄罗斯没有任何代码,无论是商业还是开源代码;GitHub和GitLab这两个在世界上排名第一、第二的开源代码托管平台直接管理海量的开源项目,对开源项目有着巨大权力,以至于在俄乌冲突中,两大平台都对俄罗斯采取了“封号”“限流”等措施,成为国际政治角力的重要手段之一。究其原因,在国际开源软件生态中,大量主流的开源软件多由美国的基金会和社区主导,而美国出口管制法律法规(包括ECRA、EAR)对“根据美国法律设立的任何组织形式的实体”都有约束力,无论是否明确说明,美国相关企业都要遵循美国出口管制法律法规。这表明如果未来中美冲突加剧,将会给我国的开源软件供应链带来一定的风险。
我国目前也在构建由我国主导的开源基金会与开源联盟组织,加强开源生态的建设。然而相较于国外,我国的开源生态起步较晚,在整个开源软件供应链中渗透和参与度低,导致对国外开源生态依赖较强,在开源软件供应链层面缺乏自主与主导能力。
2. 开源用户面临的风险层出不穷
在俄乌冲突中,开源项目vue-cli的依赖项node-ipc包以反战为名进行供应链投毒,该包在npm每周有上百万下载量,依赖的下游开源项目面临巨大安全风险。随着越来越多的开源项目成为软件基础设施的核心组成部分,开源项目自身的开发安全也愈发重要。近年来,开源软件断供、投毒、恶意删库、利用开源软件漏洞的网络攻击等事件层出不穷,这次node-ipc库中被植入恶意代码就是一个典型的案例。
除node-ipc事件外,近期还发生多起开源软件供应链安全事件,比如Apache Log4j2漏洞事件、faker.js、colors.js删库事件、Linux“脏管道”事件、周下载量超过700万次的JavaScript流行库ua-parser账户遭接管事件、影响多家大厂的依赖混淆事件、SolarWinds事件、PHP源代码事件等等。当前,从开源软件供应链安全的角度来看,国内监管机构已准备陆续推出相关标准及政策,但针对关键基础设施和重要信息系统相关的企业和单位,并没有制定具体的举措和细则要求。
3. 开源软件供应链风险大但研究投入少。
俄乌冲突涉及开源领域的事件带给我们的警示,一定要重视开源软件供应链安全风险的研究和预防,否则将为我国的开源生态、数字技术与科技产业发展埋下严重隐患。根据中国科学院软件研究所相关研究表明,开源软件供应链主要面临三大风险,即安全性风险、可维护性风险以及合规风险。为应对上述风险,国外包括谷歌、微软、IBM、亚马逊、Linux基金会、Apache基金会等商业机构和基金会共同开展相关研究,并启动了诸如OpenSSF、Sigstore、OpenChain等相关项目,对开源软件供应链风险进行持续研究,并提供防控手段。
l OpenSSF:由Linux 基金会的牵头成立的开源软件安全基金会,旨在将广泛的社区领导者聚集到一起,建立具有针对性的计划和最佳实践,以提升开源软件的安全性。OpenSSF 收到的金融资助来自多家科技巨头如亚马逊、思科、戴尔、Facebook、谷歌、Intel、微软和Oracle。这些资助将帮助OpenSSF 找到并解决开源软件中的安全漏洞,从而确保软件供应链的安全。该基金会还着手开发最佳实践、工具、培训和漏洞披露实践。
l Sigstore:旨在全面覆盖开源代码社区,允许开发者轻松地为软件提供签名。结合出处、完整性和可发现性,此举有助于营造透明且可审核的软件供应链。
l OpenChain:作为 Linux 基金会下的项目,旨在制定开源软件供应链标准,帮助各种组织更高效地解决开源许可证一致性地问题。通过OpenChain认证后,开源许可流程将更为轻松。目前ARM、微软、谷歌、高通等各领域巨头纷纷加入OpenChain,为开源软件供应链的标准制定做出贡献。
相比之下,我国在开源软件供应链安全方面的研究基础比较薄弱,亟需从国家、行业、机构、企业各个层面建立开源软件供应链安全风险的发现能力、分析能力、处置能力、防护能力,整体提升软件供应链安全管理的水平。
三、北京发展开源软件供应链安全的建议
从俄乌冲突中可以看出,只有在核心领域掌握核心技术,才能在关键时刻不被卡脖子。在国家“十四五”规划中提及,补齐产业链、供应链短板,实施产业基础再造工程,加大重要产品和关键核心技术攻关力度,发展先进适用技术,推动产业链供应链多元化。因此,为了贯彻落实发展开源软件的国家战略,实现开源软件的可靠供应,增强我国信息化设施的自主可控,亟需提升我国的开源软件供应链安全管理水平。北京作为我国软件与信息技术服务业收入最高、规模最大、从业人员最多、科研实力最强、开源软件生态最齐全的城市,非常有必要建设一个可靠的开源软件供应链,夯实数字经济发展基础。
1. 加强开源软件供应链风险发现与防控技术研究
建议发挥北京软件的产业、人才与学术资源优势,联合在京的基础软件公司、互联网公司、开源软件公司、网络安全公司以及高校和科研院所、国家信息安全漏洞库平台等核心单位,开展开源软件供应链风险发现与防控技术研究,为在京政府、企业、机构等提供安全、可靠、可持续的开源软件供应链保障。鼓励和支持有条件的企事业单位、社会组织开展开源软件供应链图谱梳理工作,从开源终端产品到原始开发者,绘制详细开源供应链图谱,筛选脆弱环节,强化供应链安全风险预警。
2. 构建开源供应链风险评估体系和预警机制
建议联合相关单位,从开源软件供应链安全性风险、可维护性风险以及合规风险角度出发,制定开源软件供应链风险评估标准,并建立包含评估工具、测评与认证在内的开源软件供应链风险评估体系,鼓励企业对其商业化软件产品进行开源软件供应链风险评估,以提升软件产品安全可靠性。制定开源供应链安全行为准则,实时监测国内开源软件供应链的重点事件。从战略政策层面,持续关注跟进开源国际形势,实时跟踪了解国际开源软件供应链的动态,特别是各国在开源软件供应链方面的政策举措及落地方案。
3. 建设并北京开源软件供应链安全基础设施。
建议在北京联合有关科研院所、企业、社会组织、开源社区等机构共同建立一个基于开源软件安全的创新联合体,汇集北京开源资源,建设北京开源软件供应链安全公共基础设施,为在京的各类涉及开源的机构、企业、高校及研究院所提供包含开源软件供应链漏洞感知、开源软件关键节点识别、威胁监测、风险预警、风险评估等多种基础安全服务,建立全球开源供应链预警机制,实现对供应链各环节中开源软件来源的溯源机制,实现对全球开源应用及其安全缺陷的预测预警。降低各行业对开源软件供应链风险发现和处置成本并提升相关风险的应对能力,通过公共基础设施平台加速开源生态能力建设。
4. 进一步引导和推动相关行业参与并贡献开源。
鼓励和引导各行业在应用开源的同时,增加对开源的参与和贡献程度,尤其对于开源软件供应链中的关键节点,积极探索和掌握开源技术核心,并促进相关开源技术的迭代升级。对于掌握核心技术的开源社区与开源项目,可协助对接京内具有相关开源技术需求的企业,适当给与政策与资金支持,加速开源生态建设与开源技术成熟。
2023-11-17 长风联盟发布了 《2023创投会北京分会场丨为新兴科技企业搭建路演融资平台》的文章
2023-11-15 长风联盟发布了 《十大优质项目登台展示 “蓄势赋能”新一代信息技术产业发展》的文章
2023-11-15 长风联盟发布了 《2023“科创中国”技术路演智能制造(深圳)创投会专场圆满结束》的文章
2023-11-06 长风联盟发布了 《2023第三届“长风杯”创新创业大赛决赛暨颁奖典礼圆满收官》的文章
2023-10-11 长风联盟发布了 《护航小企业 迸发大能量丨2023第三届“长风杯”创新创业大赛复赛圆满收官》的文章