一、引言
随着互联网的快速发展,各类开源组件被广泛引入,据统计目前的应用程序中70%-90%存在开源组件,带来软件开发的高效完成率的同时,也带来了极大的威胁和引发各种安全风险问题,导致业务系统受到恶意攻击、篡改和系统瘫痪。因此在软件开发和运营过程中需清晰记录软件使用的开源组件,以及可实时防护软件在开发和运营过程中的各个安全漏洞和不合规的安全风险。软件物料清单SBOM是确保上述问题的防护基础,提高软件供应链的透明度,可快速响应安全漏洞、开源许可不合规和已知的安全风险问题。因此本文提出基于软件物料清单SBOM的软件供应链安全防护的研究,进一步推动软件物料清单在软件供应链安全防护的广泛引用,加强软件供应链底层安全防护的信任,提升软件供应链的透明度,改善软件的安全性、合规性和可追溯性。
二、软件供应链安全风险分析
2.1软件供应链的定义
软件供应链类似传统制造业对供应链的定义,是开发应用程序代码,其中代码分别为商业代码和开源代码。软件供应链是包括软件需求设计、研发、测试、运维维护更新等所有环节的整体流程,也是从上游开发商到下游用户的一系列的复杂过程。软件供应链是指直接参与或涉及开发应用程序的整体流程的开源组件,由于开源组件间存在着诸多包含、隐含等依赖关系,因此开源组件间存在着复杂依赖关系。在一般开发生命周期中开发人员无法获知软件中的开源组件以及开源组件相互之间的复杂依赖关系,导致软件应用上线后出现软件供应链攻击无法短时间内完成漏洞溯源和修复,尤其上游的安全漏洞风险问题快速传递到下游用户,导致整个软件供应链受到攻击。因此需要实时关注软件供应链安全风险和对软件供应链安全风险进行分析,实时有效治理软件供应链安全风险。
2.2软件供应链安全风险
近年来,随着国内外软件供应链的迅速发展和开源化,使得软件供应链攻击呈指数级增长,尤其在2021年软件供应链攻击增加了650%。由于软件供应链安全问题影响着软件供应链的各个关键环节,攻击者通过实施软件供应链攻击,导致软件供应链的安全隐患逐渐增加,安全形势更加严峻。
2021年爆出的log4j漏洞[1],带来已知和未知的安全风险,几乎影响了所有使用Java开发的业务系统。2022年AccessPress攻击,恶意攻击者可以访问使用恶意插件的网站。2021年REvil勒索软件团伙攻击了软件供应商Kaseya,导致约60家Kaseya客户和1500家企业受到勒索软件攻击的影响。2020年SolarWindsSUNBURST攻击,软件更新包被黑客植入后门,导致多个美国联邦机构及财富500强企业网络被攻陷。上述都是典型的软件供应链攻击事件,对于软件供应链攻击而言,主要可分为恶意代码注入、依赖混淆攻击、升级劫持、源代码污染等类型。攻击者对开发者常用的系统或者代码开发编辑器进行攻击,对开发工具进行篡改并将恶意代码注入,通过污染过的开发工具对软件程序植入恶意代码。依赖混淆攻击是恶意软件通过自动向下游分发。由于软件产品在整个生命周期中需要进行更新,攻击者利用软件升级功能工具在升级过程中给用户植入恶意代码。另外在源代码阶段被攻击者植入恶意代码,并在合法渠道下躲避安全检测,可长时间潜伏于用户设备中不被察觉。除了上述软件供应链攻击外,在开发过程中软件产品使用的商业软件超过服务期、供应商保障范围,将导致出现安全风险问题。因此,提前做好预防措施,加强软件供应链管理,是保障企业网络安全的必要条件。
三、软件物料清单SBOM的研究现状
随着各种网络攻击的不断产生,软件供应链安全形势变得越发严峻。因此美国、欧盟等提出了创建软件物料清单SBOM的要求[1]。目前我国大多数上下游厂商未集成相应的生成软件物料清单SBOM的功能和工具,无法明确分析软件成分,不能准确提供SBOM。然而软件供应链安全需要软件供应链的关键环节具有可见性,因此每一个应用软件需要持续构建详细的软件物料清单SBOM,来全面洞察每个应用软件中组件的安全风险情况。目前SBOM有三种标准数据格式,分别是CycloneDX、SPDX和SWID[1]。软件物料清单SBOM是一种结构化的、可跨组织扩展的、可编辑的、机器可读的元数据,是构成软件产品所有组件和元素的综合列表。SBOM需具有自动化生成的特点,可自动生成完整的软件物料清单SBOM。
SBOM明确对应软件的组成成分[2],确保使用的软件应用程序的安全性和完整性,可跟踪开源组件间的复杂的依赖关系,用于构建软件的各种组件关系的标准化记录的基线属性,可提高软件供应链中的透明度和可追溯性。可有效识别整个应用软件的安全漏洞、不合规和未知风险,将安全风险前置,减轻攻击威胁,节约安全风险治理的时间。
四、基于软件物料清单SBOM的软件供应链安全防护的研究
SBOM是网络安全战略的基石和解决软件供应链安全的关键催化剂,可有效提升软件供应链透明度,与系统的安全性息息相关。随着软件供应链安全风险形势越发严峻和复杂,本文提出了基于软件物料清单SBOM 的软件供应链安全防护的研究,将软件物料清单SBOM集成于软件供应链的关键环节中。通过软件物料清单SBOM可全面了解软件的漏洞、许可证合规性,是解决应用软件的各种安全风险问题的有效途径,是软件供应链安全防护的有力支撑。
通过将软件物料清单SBOM集成在软件供应链的各个关键环节,实现软件供应链从上游开发商到下游用户的整体安全防护。在软件开发过程中开发人员通过开源和商业组件的组装来构建应用软件,存在着未知和已知的安全漏洞和许可证不合规问题,因此开发人员通过SBOM跟踪已知和新出现的漏洞和风险,以确保所用组件的安全风险,可对安全漏洞作出快速反应。同样用户也可通过软件物料清单SBOM了解使用的应用软件的组成成分,可对安全漏洞和许可证进行分析,实现软件供应链从上游开发商到下游用户的整体安全防护管控。软件物料清单SBOM确保了软件供应链安全,提供可信的软件供应链名单、组件依赖关系分析与溯源、许可证风险监控与管理。
五、结论
随着软件供应链大量引入开源组件,导致软件供应链的上下游受到各种攻击和未知安全风险。如何应对软件供应链面临的安全风险问题,本文提出了基于软件物料清单SBOM的软件供应链安全防护的研究,通过将软件物料清单集成于软件供应链的各个关键环节,全方位把控软件的安全风险,有助于建设可靠的开源软件供应链,保障开源软件供应安全、高质量创新发展。。
参考文献
[1] 覃辉志.基于SBOM增强软件供应链安全的防护实践[J].网络空间安全,2023,14(02):68-72.
[2] 齐越,刘金芳,李宁.开源软件供应链安全风险分析[J].信息安全研究,2021,7(09):790-794.