开源软件供应链
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.2.4 开源软件供应链的法律政策

1.国家层面的法律政策

目前,多个国家已经制定了针对开源软件供应链的法律政策。在2015年,美国国家标准技术研究院(National Institute of Standards and Technology,NIST)专门制定SP800-161《联邦信息系统和组织供应链风险管理/方法实践清单》,用于指导美国联邦政府机构管理ICT供应链的安全风险,旨在指导联邦部门和机构识别、评估和减轻ICT供应链风险。2018年,NIST发布报告“Security Considerations for Code Signing”,该报告指出:①各种各样的软件产品(也称为代码),包括固件,操作系统,移动应用程序和应用程序容器映像,必须以安全和自动化的方式分发和更新,以防止伪造和篡改;②数字签名代码既可以提供数据完整性以证明未修改代码,也可以提供源身份验证来标识谁对代码进行签名;③代码签名解决方案应用于代码签名用例(固件签名、驱动签名、应用软件签名)时存在安全问题。

2021年4月,美国网络安全与基础设施安全局(Cybersecurity&Infrastructure Security Agency,CISA)和NIST联合发布了《防御软件供应链攻击》报告。该报告提供了软件供应链风险的概况描述,并为厂商和用户提供使用C-SCRM和SSDF两个框架来识别、评估和缓解此类风险的建议。英国国家网络安全中心(UK National Cyber Security Center,NCSC)于2018年11月发布《供应链安全指南》,提出归属于4个方面的12条安全细则。同年12月发布《安全开发与部署指南》,列举8项安全原则。2021年2月,再次发布针对自动化构建管道恶意攻击的警告[32]。中国12部门于2020年4月27日联合发布《网络安全审查办法》,并于同年6月1日正式实施。中国还制定了ICT供应链安全的相关标准,如GB/T 24420—2009《供应链风险管理指南》、GB/T 31168—2014《云计算服务安全能力要求》、GB/T 32921—2016《信息技术产品供应方行为安全准则》、GB/T 22080—2016《信息技术 安全技术 信息安全管理体系要求》、GB/T 22239—2019《信息系统安全等级保护基本要求》、GB/T 29245—2012《政府部门信息安全管理基本要求》、GB/T 36637—2018《信息安全技术ICT供应链安全风险管理指南》等。目前,国际供应链安全标准已渐成体系,而国内供应链安全要求大多分散在多个标准中,GB/T 36637—2018作为我国第一个ICT供应链安全国家标准,弥补了ICT供应链安全风险管理的空白,标志着我国供应链安全标准正在起步[33]

2.社会层面的行业规范

针对开源软件供应链层出不穷的安全问题,相关社会组织也提出了相应的措施来减少开源软件供应链的潜在风险。OpenChain是由Linux基金会联合知名企业共同建立的项目,旨在提供开源软件供应链规范。目前,OpenChain 2.1,即由Linux基金会、Joint Development基金会和OpenChain项目共同制定的ISO/IEC 5230:2020标准已经被核准成为国际标准。该标准能够进一步解决开源软件供应链中的信任问题,在提升开源合规方面作出了重要的贡献。众多国际知名企业都加入了由OpenChain领导的开源软件供应链社区,如丰田、谷歌及思科等企业[34]。除此之外,MITRE组织在2021年1月发布技术报告“Deliver Uncompromised:Securing Critical Software Supply Chains”,提出加强软件供应链完整性的框架。该框架提出了三项规范软件供应链的措施,首先,软件行业必须采用基于软件物料清单(Software Bill of Materials,SBOM)的供应链元数据方法,该方法可以跟踪软件产品中每个组件的组成和出处,为每个组件及其谱系提供元数据完整性,使用该元数据可以系统地描述和管理风险。其次,密码学相关的代码签名及其验证基础设施需要足够成熟,以反映出现今软件供应链的复杂性和多样性,并为未来量子电子签名预期新标准的快速部署做准备。最后,涉及构建和分发软件及软件更新的系统方面,必须满足更高级别的标准。

3.企业层面的具体实践

除了来自国家和社会组织层面的开源软件供应链规范,部分企业也出台了各自相应的管制措施。早在2011年,微软公司率先发布了《网络供应链风险管理:实现透明和信任的全球共享》报告,该报告提出了一个旨在有效管理供应链风险的框架。该框架具有以下4个特点:协作、透明、灵活和互惠。该报告认为政府应重新审视开源软件供应链的潜在风险,并和企业一同合作来解决这些问题。2016年,华为公司发布了《全球网络安全挑战——解决供应链风险,正当其时》白皮书。该白皮书点明了当前供应链的风险,并呼吁政府、企业界和学术界联合起来应对。华为公司将供应链安全管理纳入其端到端全球网络安全保障体系,并将实践经验总结到了该白皮书中。除此之外,该白皮书还总结了多个可以减少供应链风险的措施,如可以利用NIST等框架有效管理供应链风险。2020年10月,红帽公司(Red Hat)提出了可信软件供应链规范,旨在提供软件安全性、合规性、隐私性和透明性四个方面的保障[35]。该规范要求开发人员在使用静态代码分析和安全扫描工具验证代码之前,代码不允许投入生产环境。同时,该规范还要求开发人员从受信任的代码仓库中提取可用组件。2021年6月,谷歌公司提出了软件构件的供应链级别(Supply chain Levels for Software Artifacts,SLSA),一个用于确保整个软件供应链完整性的端到端框架。SLSA旨在防御常见的供应链攻击,如向源代码库提交恶意代码以及诱导开发者使用恶意组件。