软件供应链风险评估体系与实践

(整期优先)网络出版时间:2022-07-01
/ 2

软件供应链风险评估体系与实践

童晶国

新疆圣雄能源股份有限公司 新疆吐鲁番市 838000

摘要:近年来,随着软件技术的发展和行业形势的变化,软件供应链的风险越来越突出,受到人们的高度重视。软件供应链是根据软件生命周期中一系列环节与传统供应链的相似性,由传统供应链的概念扩展而来的。现阶段软件交付过程中涉及商用软件开发者、开源社区、开源开发者、集成交付、系统运维等众多组织和角色。本文就软件供应链风险评估体系与实践展开探讨。

关键词:软件供应链;风险评估;安全

引言

一般来说,软件供应链的业务流程可以抽象成开发、交付以及应用三个环节。软件开发与分发过程环节繁多、流程复杂,而软件供应链的安全风险广泛存在于直接或间接影响最终产品的所有位置。由于软件依赖关系复杂,对软件供应链中任意环节的攻击,都会引起软件供应链的连锁反应。

1软件供应链安全风险分析

从软件生命周期的视角来看,软件供应链主要包括软件开发环节、交付环节和使用环节。因此,典型软件供应链风险可分为两类:一类是软件产品本身的安全风险,例如软件漏洞等;另一类是供应商自身存在的安全风险,例如供应商网络安全缺陷、端口暴露、弱密码、弱口令等。针对上述风险,新型的供应链攻击的手法不断涌现,攻击者不直接攻击最终用户,而是攻击软件供应商进而威胁最终用户。典型的行为包括从供应商处盗取软件源代码、盗取网络访问权限等,最终造成用户信息泄露等严重安全事件。

2软件供应链风险评估体系

为应对我国软件供应链安全保障存在的问题,中国软件评测中心在软硬件产品质量测试的积累上,研究形成了软件供应链风险评估体系。评估旨在发现供应链短板,实现软件供应链的可溯性、可用性及可替代性。评估体系以软件产品在开发、交付和使用过程中的流转为主线,从技术、知识产权、管理三个方面对软件产品的供应链进行评估。技术类指标以软件生命周期为主线,从软件设计、开发、测试、交付、运维等方面进行评估,重点考查核心模块是否可控、软件版本是否可追溯、研发过程是否有保障。技术创新能力仅限于评估(基于)开源的软件产品,主要评估供方对软件核心模块自主研发和演进能力,包括核心模块社区贡献情况、代码维护贡献情况及持续优化能力等。知识产权类指标主要从知识产权成果保护、知识产权风险以及许可证限制风险三个方面评估软件产品在专利、著作权、许可证中存在的风险及限制。管理类指标主要考查企业及人员背景、供方市场情况、安全管理能力。其中,供方市场情况包括对软件持续供应管理、投入持续管理、市场占有率、市场覆盖率等方面的评估;安全管理主要考查是否具备与漏洞相关的管理、防御及响应能力。对于(基于)开源的软件产品,还将评估社区及产业成熟度。社区成熟度主要考查社区贡献者情况、贡献代码水平、社区基础设施等;产业成熟度主要考查开源软件的产业应用情况,包括商用版本规模、产业覆盖率、上下游产业参与度等。

3软件供应链安全工作建议

3.1软件开发人员

软件供应链安全风险日趋增加,但软件开发人员可以采取多种方式防范软件供应链攻击。首先是防御依赖混淆攻击。恶意软件往往通过使用相同名称的恶意公共包来覆盖私有包并部署在目标网络中。作为软件供应链的一部分,开发人员使用包管理器和构建工具自动提取开源包。这些配置不仅可以从私有注册表中提取包,还可以从公共代码存储库中提取具有相同名称的包。这一设计缺陷意味着攻击者只需扫描组织的公共存储库中的私有包名称并上传具有相同名称的恶意包即可实施攻击,接下来只需自动化构建完成剩余的过程就能植入恶意包。为了防止这种情况,软件开发人员应在其工作中使用作用域名称,通过作用域包锁定包的命名空间,并将其映射到特定用户或组织,以防止包替换。另一种策略是使用repo特定的配置来明确上游注册表定义,为pip和npm等包管理器提供明确的指导,这样它们就不会通过查找公共注册表来寻找更新版本的包,从而防止意外地引入恶意软件包。

3.2提升软件供应链安全技术检测能力

软件产品服务提供商应提高安全责任意识,将安全作为产品的基础属性来对待,严控产品的安全质量。加强自身的网络安全建设,从物理安全、网络安全、数据安全等不同角度增强自身信息系统的安全性和应对攻击的能力。严控自主开发的代码质量,建议采用可融入软件开发流程的软件源代码安全分析工具,持续检测和修复软件源代码中的安全缺陷和漏洞。建立完善的产品漏洞响应机制,包括产品漏洞信息的收集、漏洞报告渠道的建立和维护、漏洞补丁的开发和发布、客户侧漏洞应急响应和修复支持等。提供商也要严格管控软件上游服务商,尤其重点管控开源软件的使用,建议采用可融入软件开发流程的开源安全治理工具,持续监测和消减所使用的开源软件的安全风险。加强软件供应链安全生态协同管理机制。提升包含软件供应链各阶层的软件供应商和各类渠道在内的管理软件供应链风险的统一管理能力及技术手段。推动构建安全可靠的软件供应链可信组件资源平台,实现软件供应链资源的可控。采用专业工具和服务实现对软件产品的代码审查和缺陷检测,加强对新代码防护手段和技术的应用探索。提升对软件源代码的审计工具能力,加强软件安全性深度测试;针对开源最难进行的漏洞评估和验证,提升开源组件安全检测能力。加强人工智能技术在软件代码漏洞挖掘和缺陷检测中的应用。

3.3加强软软件供应链评估实践

为了验证所提评估体系的可行性,对某开源操作系统进行了评估实践,采用的评估方式包括一致性测试、源代码溯源分析、证据审查评估、现场取证、技术能力考核等。由于篇幅限制,以下仅对适用于开源软件产品的评估项结果进行说明。(1)技术创新:在关键核心模块(编译器、虚拟化、容器、芯片使能、安全等)均有孵化原生项目,具有自主演进能力;在内核贡献度上,社区最新发布的多个版本补丁贡献均排名靠前;在主流编译器及虚拟化开源软件社区具有维护者;在内核方面具有持续优化能力。(2)社区成熟度:该操作系统社区拥有数千个贡献者,具备较为完善的基础设施,可执行的功能包括软件包选型、软件包引入、软件质量加固、自动化补丁跟踪及同步、兼容性管控、版本发布、系统构建等。(3)产业成熟度:已有多家操作系统供应商(OSV)基于该操作系统发行商业版本,并在电力、金融、运营商、政务等行业投入使用,装机量有数十万套;芯片厂商、操作系统供应商、独立硬件供应商(IHV)、独立软件开发商(ISV)均已加入该操作系统开源社区,社区生态链基本形成。评估过程中,也发现了一些问题。例如:在技术创新方面,该操作系统社区对内核贡献排名的持续性和稳定性有待提高,在主流编译器、虚拟化开源社区的活跃度有待提高,部分架构芯片仍未兼容;在社区成熟度方面,该社区情报感知和收集机制有待提升,需要与更多安全厂商建立广泛的感知网络。下一步,将继续完善软件供应链评估体系,制定评估细则并开展评估工作,推动软件供应链相关国家标准的制定。

结语

行业主管部门应制定行业内的软件供应链安全规范与制度,开展针对行业内重点单位和软件产品服务提供商的供应链安全检查工作。重要行业应建立软件供应商安全能力评估和认证体系,要求软件供应商建立自身的软件供应链安全管理体系,并由第三方测评机构进行评估和认证,针对软件的源代码、制成品、运行中的软件系统等进行软件供应链安全的测试和评估。

参考文献

[1]刘娟.软件供应链安全形势分析与几点建议[J].技术解析,2021(04).

[2]孙康健.软件供应链攻击策略探讨与应对建议[J].中国软件评测中心,2020(11)14-16.

[3]项宝余.软件供应链现状与问题[J].工业和信息化,2019(09):7-12.