软件供应链安全治理实践 指南白皮书(2023) 中国联通研究院 中国联通网络安全研究院 1 下一代互联网宽带业务应用国家工程研究中心2023年11月 版权声明 本报告版权属于中国联合网络通信有限公司研究院,并受法律保护。转载、摘编或利用其他方式使用本报告文字或者观点的,应注明“来源:中国联通研究院”。违反上述声明者,本院将追究其相关法律责任。 目录 前言3 一、软件供应链安全概述5 1.1软件供应链安全概念5 1.2软件供应链主要安全事件6 1.3国内外政策法规及标准13 二、软件供应链安全面临严峻挑战20 2.1开源代码风险不断增加20 2.2API风险日益突出22 2.3威胁暴露面持续增多25 2.4软件安全治理困难26 2.5APT攻击更加复杂27 2.6云安全进入下半场28 三、软件供应链安全治理29 3.1软件供应链安全框架29 3.1.1SLSAv1.0框架29 3.1.2SSDF框架31 3.2软件供应链安全治理理念32 3.2.1理念一:可展示软件成分32 3.2.1理念二:可评估软件供应链过程35 3.2.3理念三:可信任软件供应链37 3.2.4理念四:可持续运营与管理38 3.3软件供应链安全治理体系39 3.3.1安全管理40 3.3.2基础安全原子能力42 3.3.3持续监控与运营能力62 四、软件供应链安全治理实践77 4.1DevSecOps实践77 4.2源软件安全治理实践80 五、未来展望84 5.1SBOM能力日渐成熟84 5.2软件供应链安全治理新模式形成84 5.3供应链的安全风险态势重要性凸显85 附录A缩略语86 附录B参考文献88 前言 软件作为新一代信息技术的灵魂,在人类社会的数字化进程中发挥着重要的基础支撑作用,如今已经成为了驱动云计算、大数据、人工智能、5G、区块链、工业互联网等新一代信息技术迭代创新的重要力量,正在全面推动着经济社会数字化、网络化、智能化的转型升级。随着软件产业的快速发展,开放、平等、协作、共享的开源模式成为了全球软件技术和产业创新的主导模式,基础软件、工业软件、新兴平台软件、应用软件等共同构成了企业信息系统中庞大的软件体系,而开源软件或组件已经成为了这些软件的主要基础。因此,开源软件的风险和软件供应链的安全风险已经严重威胁到企业的软件安全。 面对如今庞大复杂的软件体系和频发的软件供应链安全事件,开展面向供应链的软件安全治理,建立完善的软件供应链安全能力体系,已经成为国内外企业所关注的焦点。软件供应链生命周期长、环节复杂、暴露面多,上中下游任何一个薄弱点都有可能被攻击者利用,进而发起对整个软件系统的攻击,而软件供应链相关的工作机制和流程规范的缺乏、软件供应商安全管控的不足、开源组件漏洞修复的困难、软件供应链安全能力建设的不完善以及软件供应链安全态势持续监控的滞后,都导致如今软件供应链的安全形式更加严峻。因此,开展软件供应链的安全治理,需要在遵从国家法律法规政策的基础上,构建从顶层软件供应链安全规范制度到底层基础安全能力全面覆盖,以 及软件供应链安全态势持续监控的综合治理体系,更全面的保障软件安全。 本白皮书立足于国际国内的软件供应链安全发展现状,面向企业软件供应链安全治理存在的需求,提出软件供应链安全治理体系,为企业软件供应链安全能力建设提供指引,助力企业的安全数字化转型。本白皮书的目标读者包括但不限于移动运营商、通信设备提供商、安全产品提供商、安全服务提供商、系统集成商,以及其他关心软件供应链安全的相关机构和个人。 编写单位: 中国联合网络通信有限公司研究院、中国联通福建省分公司、联通在线信息科技有限公司、联通软件研究院、杭州孝道科技有限公司、北京神州绿盟科技有限公司、杭州安恒信息技术股份有限公司 专家顾问: 叶晓煜、徐雷、张曼君、傅瑜、葛然、张小梅、徐积森、滕开清、张文、周映 编写成员: 郭新海、王戈、刘安、侯捷、蓝鑫冲、丁攀、苏俐竹、牛金乐、谢泽铖、陆勰、侯捷、王翠翠、姚戈、程筱彪、王姗姗、王蕴实、贾宝军、陶冶、侯乐、刘伟、徐锋、冯烨璐、朱雅汶、王玮琪、杨廷锋 一、软件供应链安全概述 目前,世界各国的数字化进程都在不断加速推进,以大数据、云计算、人工智能、工业互联网、5G通信网络、区块链和量子计算等为代表的新信息技术迅速发展,使数字经济成为了推动我国经济高质量发展的重要引擎,数据成为数字经济的基础性资源和生产要素,而软件应用系统作为承载业务数据的重要载体,在数字经济高质量发展的过程中发挥着重要的基础支撑作用。当前,软件产业快速发展,软件体系复杂多元,软件安全问题日益突出,软件供应链安全问题因其复杂性、隐蔽性和不可预见性等特点,已经严重威胁着企业的网络安全、信息安全和数据安全,并成为了世界各国数字化发展进程中关注的焦点。 1.1软件供应链安全概念 在数字化时代,数字化软件应用成为了人们生产和生活的基本要素,作为信息技术关键载体和产业融合的关键纽带驱动着数字化产业的快速发展。因此,在加快推进软件发展的同时,有效保证软件供应链的安全,才能使软件更好的赋能生产和生活,为数字经济的发展打下更夯实的基础。 如今,软件应用的开发模式已经从原来的迭代开发转变为敏捷开发,特别是开源时代的到来,重塑了软件发展生态,改变了软件的开发模式,平等、开放、协作、共享的开源模式,正在加速着软件的迭代升级,并且成为了全球软件技术和产业创新的主导模式。据Gartner的调查显示,99%的组织在其信息系统中使用了开源组件, 开源软件和组件成为了现在软件的主要组成部分。开源的使用和软件来源的多样化都使得软件供应链安全问题日益突出,要有效的解决软件供应链所面临的安全问题,需要首先明确软件供应链安全的概念和定义。 《GB/T36637-2018信息安全技术ICT供应链安全风险管理指南》中指出ICT供应链是指为满足供应关系通过资源和过程将需方、供方相互连接的网链结构,可用于将ICT的产品和服务提供给需方;在编的国家标准《信息安全技术软件供应链安全要求》中指出软件供应链是指基于供应关系,通过资源和过程将软件产品或服务从供方传递给需方的网链系统。因此,从软件供应链的角度出发,软件供应链安全和软件供应链攻击的概念可以概括如下: 软件供应链安全:指软件供应链上软件设计与开发的各个阶段中 来自本身的编码过程、工具、设备或供应链上游的代码、模块和服务的安全,以及软件交付渠道及使用过程中安全的总和。 软件供应链攻击:指以开发人员和供应商为直接目标的一种特定 威胁,攻击者通过感染合法应用、分发恶意软件、访问源代码、构建过程和更新机制,从而达到对软件进行攻击的目的。 1.2软件供应链主要安全事件 近年来,攻击者利用软件供应链进行攻击的事件频发,据Sonatype今年发布的《8thAnnualStateoftheSoftwareSupplyChain》显示,从2019年到2022年,软件供应链攻击事件呈现出 可靠,对于整个软件生态系统的安全至关重要。 图1软件供应链攻击事件,2019-2022(来源于Sonatype) 2021年12月,被称为“核弹级”的ApacheLog4j漏洞爆发后迅速受到安全界的广泛关注,该漏洞引起了攻防双方的激烈博弈,也使得软件供应链安全更加备受重视。通过分析此事件,我们积累了 高发态势,三年间安全事件的年平均增长率达到了742%,并且依赖混淆、域名仿冒和恶意代码注入等攻击手段,仍然是软件供应链面临的严重威胁。由此可见,软件供应链出现安全问题极有可能对国家重要基础设施和信息系统造成极大的威胁。因此,保障软件供应链安全 丰富的软件供应链安全事件处理经验,例如,软件代码安全不仅仅需要关注软件的直接依赖也需要关注间接依赖,依赖项的安全对于软件整体的安全至关重要,明晰所有使用脆弱性组件的软件是必要的等。 因此,为了从已经发生的安全事件中吸取教训和积累经验,本白皮书介绍了近年来发生的典型软件供应链安全事件,见表1。 表1近年来典型软件供应链安全事件 序号 时间 关键词 事件描述 影响 1. 2023年3 月 OpenAI数据泄露 由于Redis开源库中的一个错误导致ChatGPT服务中暴露了其他用户的个人信息和聊天标题。 至少导致1.2%的ChatGPTPlus用户的个人信息和其他用户的聊天查询被泄露。 2. 2023年2 月 PyPI仓库被持续投毒 Python软件包索引(PyPI)中存在多个流氓软件包,通过这些软件包攻击者能够投放恶意软件、删除netstat工具以及操作SSHauthorized_keys文件等。 软件包被删除之前被下载超过450余次。 3. 2022年6 月 PyPI仓库遭遇投毒 PyPI官方仓库被攻击者上传了agoric-sdk、datashare、datadog-agent等150+个恶意钓鱼包。 上传后仅6个小时就有225次的下载。 4. 2022年4 月 政治制裁 俄乌战争期间,GitHub官方根据美国政府提出的出口管制和贸易法规要求,针对俄罗斯GitHub用户开始无差别封禁账号,包括俄罗斯银行Sberbank、俄罗斯最大的私人银行Alfa-Bank和其他公司账户。 受制裁企业将无法再使用GitHub作为代码管理平台,同时企业与个人账号内容将被清除,所有repo立即无法访问,issue和pullrequest也将受限;俄罗斯可能将无法获得正式使用部分开源软件应有的支持和更新。 5. 2022年4 月 Spring4Shell SpringFramework是一个开源应用框架,自SpringFramework远程代码执行漏洞(CVE-2022-22965)在互联网小范围内公开后,其影响面迅速扩大,此漏洞成为了2022年上半年热度最大的漏洞,也是近几年来 Spring是一个非常流行的框架,60%的Java开发人员依赖它来开发应用程序,由于此框架在Java生态系统中处于主导地位,大量应用程序会受“Spring4shell”零 最严重的网络安全威胁之一。 日漏洞的影响。 6. 2022年3 月 Node-ipc投毒 node-ipc是使用广泛的npm开源组件,其作者出于其个人政治立场在该项目的代码仓库中进行投毒,在代码中加入了针对俄罗斯和白俄罗斯IP用户删除、覆盖磁盘文件的恶意代码,通过peacenotwar组件在用户桌面添加防止反战标语。 UnityHub、vue-cli等应用广泛的第三方软件受到该事件影响。 7. 2022年1 月 NodeJS依赖包faker和color投毒 faker.js是用于生成伪造数据的JavaScript库,colors.js是为前端开发者提供的一个简单的颜色管理API。本次事件两个包的作者向两个包中提交了恶意代码,进行了供应链投毒后将其发布到了Github和npm包管理器中。 使用了colors.js和faker.js的包的项目,直接引用和间接引用都会受到影响。 8. 2021年 12月 Log4j2漏洞 ApacheLog4j2是一个开源基础日志库,是对Log4j组件的升级,被广泛用于开发、测试和生产。该开源项目支持属性查找,并能够将各种属性替换到日志中。用户可以通过JNDI检索变量,但是由于未对查询地址做好过滤,存在JNDI注入漏洞。 Log4j2应用极其广泛,影响范围极大,同时随着供应链环节增多、软件结构愈加复杂,上述漏洞也更加难以发现、修复(尤其是间接使用到该组件的项目)。 9. 2021年 10月 ua-parser-js投毒攻击 ua-parser-js作为一个周下载量超过700万的npm包,被攻击者投毒,攻击者发布了三个新版本,每个版本都包含了安装时会触发下载远程恶意脚本的代码。 在Node.js生态中这个包被近1000个其他第三方包依赖,造成的影响极其广泛。 10. 2020年 12月 软件供应商被攻击 SolarWinds遭遇国家级APT团伙的供应链攻击,对美国各个行业的大量客户产生了严重影响。 造成大量数据泄露,包括机密资料、源代码以及电