莫被软件物料清单(SBOM)一叶障目

VSole2023-02-17 09:37:16

很多安全从业人员都在权衡软件物料清单(SBOM)可能给软件质量和安全带来何种好处。了解和评估软件风险需要SBOM,因为安全人员应能通过SBOM了解给定软件系统的软件构建过程。在某种程度上,某些产品和软件系统已经包含了SBOM;然而,按照美国第14028号行政令《改善国家网络安全》的明确要求,以及美国管理与预算办公室、国家标准与技术研究所(NIST)和网络安全与基础设施安全局 (CISA)最近的联邦指导意见,将SBOM应用到软件质量与安全的评估上,却还是相当新鲜的操作,并未经过广泛验证。

从未通过的罗伊斯法案

大约在2013年,SBOM立法H.R.5793——《网络供应链管理与透明度法案》(通称“罗伊斯法案”)被提出,但从未得到足够的推动力作为强制命令、法案或要求而获得通过。当时业界没兴趣通过要求透明度来管理软件供应链风险。

《国会记录——评论扩展》中概述了这项立法要解决的问题。有鉴于现代软件开发的极端复杂性和不断增长的规模,以及开源软件攻击日趋严重的形势,这些问题如今已然加剧。随着现代软件开发中开源软件消费率的不断提升,若想更好地管控软件风险,消费者就必须警惕开源软件项目中日渐积累的技术债务。软件复杂性提高、软件系统规模增大,以及技术债务不断累积,对政府想要通过软件供应链追求软件完整性和可靠性的愿望来说可不是什么好兆头。

“罗伊斯法案”未获通过的事实可以看做是错失了解决当时不断增长的软件安全威胁与风险的机会。十年后的今天,安全界仍在苦苦追寻恰到好处的SBOM实现方式,希望SBOM既有用,又不会沦为遭对手利用的目标。考虑到当下对联邦指南中概述的要求的疑虑,业界难免担忧SBOM是否已准备就绪。

SBOM必须提示未知风险

SBOM面临的挑战之一是了解如何确定风险软件并加以推进。用“风险”这个词是因为所有软件都有漏洞,而SBOM必须能够区分软件组件的风险级别或提供与之相关的上下文,无论组件是独立的还是已经集成到了软件系统中。简单粗暴地认为软件组件存在相关通用漏洞与暴露(CVE)就不能用是毫无意义的,因为所有软件都可能存在漏洞。考虑到软件实现和使用的上下文——组件功能(登录、加密、访问控制、授权)、运行环境,以及是否能够加以强化来减少特定攻击面,SBOM必须能够简洁明了地确定哪些CVE是最危险和可利用的。软件组件集成到系统的方式很重要,因为软件组件可能实现得很糟糕或者压根儿就不正确,导致暴露出软件系统中的漏洞。

用CVE建立起开源软件消费的安全基准很合理;然而,统计一堆CVE来确定哪些软件风险较小或较高,却只会将视线绑定到“已知的已知”(我们知道并能理解的事物,如下图所示)上,几乎无法帮助企业了解潜在哪些弱点可能会暴露漏洞并(在一段时间里)影响该软件组件的整体安全。此外,SBOM相关实践的当前状态也不会激励软件供应链商去了解软件的缺陷倾向或攻击倾向率。这一点很重要,因为一些软件组件由于固有的技术债务、低代码质量和可能暴露漏洞的安全问题而经常遭到攻击,需要大量修复。修复量大就意味着开发人员和工程团队没多少时间用在为客户创建和交付新功能上。

缺陷倾向是指软件产品发布后其中组件出现缺陷的可能性。各种各样的社会技术因素都会导致诸如低代码质量和设计缺陷等缺陷倾向。攻击倾向指的是软件组件遭到成功漏洞利用的比率,或者软件组件含有可利用弱点(错误、缺陷或瑕疵)或漏洞的概率。

SBOM解决方案必须能够让企业了解给定软件组件的潜在风险(如上图所示),帮助企业在选用和规避哪些软件组件方面做出明智的决定。举个例子,美国国家安全局(NSA)网络安全信息表中就有建议劝告开发人员规避用C和C++开发的软件,因为这两种编程语言不会执行良好的内存管理检查。这条建议将会如何影响软件供应链,尤其是嵌入式安全关键系统,以及供应商会不会转向Rust和Go等内存安全的编程语言,我们拭目以待。

深入探索

SBOM不会消失,我们有必要携手共同改善软件安全。这就可能需要开发出一系列工具和标准来丰富SBOM,提供对软件特性更深入的分析和洞察,帮助了解软件风险。企业可藉此有效评估和验证软件完整性及其他软件保障属性。最后,考虑到及时修复软件漏洞的行业挑战,软件供应链商不仅要了解给定软件组件的相关风险,还需要知晓在一段时间内使用该软件组件的相关维护措施。使用缺陷倾向和攻击倾向率能够提供可行情报,帮助降低风险软件的使用,指导软件供应链商构建更能抵御网络攻击的软件系统。 

理论上,应规避具有高缺陷倾向和攻击倾向率的软件组件,从而刺激和鼓励使用安全性更好的替代品。SBOM并不能直接提升代码质量和安全性,但可以使软件供应链商更加了解软件构建过程中的风险。鉴于众人纠错并不能让所有漏洞都浮出水面,提高开源软件的代码质量和安全性尚需文化转变。

软件物料清单
本作品采用《CC 协议》,转载必须注明作者和本文链接
协作改善软件安全势在必行,而这可能需要开发出工具和标准来丰富SBOM和提供更深入的分析。
如果过了18个月还没发挥出SBOM的功效,那就得问问还需要做些什么才能实现美国那套网络安全行政令了。
新推出的开放框架寻求为公司和安全团队提供全面且可行的方式深入了解软件供应链攻击行为及技术。这项名为开放软件供应链攻击参考(OSC&R)的计划由以色列软件物料安全管理公司OX Security主导,评估软件供应链安全威胁,覆盖一系列攻击途径,比如第三方库和组件漏洞、构建及开发系统供应链攻击,以及被黑或恶意软件更新包。
软件开发商表示,计划投资安全代码审核及SBOM设计与实现。Cornell表示,如果他们能够充分应对这一风险,而且比竞争对手更迅速,那就意味着他们可以更快进入市场,更快开始为利益相关者创造价值。Cornell称,有了高管的参与,他们就会开始在预算分配中反映这一重点。Cornell表示,他们也拥有可以帮助生成SBOM的工具,可以将之提供给软件消费者,使其能够管理自身供应链风险。
软件组成分析(SCA)应用程序安全测试(AST)工具市场的一个细分市场,负责管理开源组件的使用。SCA工具自动扫描应用程序的代码库,包括容器和注册表等相关构件,以识别所有开源组件、它们的许可证遵从性数据和任何安全漏洞。除了提供对开源使用的可见性之外,一些SCA工具还通过区分优先级和自动补救来帮助修复开源漏洞。SCA工具通常从扫描开始,生成产品中所有开源组件的清单报告,包括所有直接和传递依赖项。拥有
依赖CPE名称难以精确检索高风险安全漏洞。
软件成分分析工具可以洞察开源软件组件及其存在的漏洞,对应用程序进行安全检测,实现安全管理,是最行之有效的方法之一。
为进一步推动产业发展,更好地汇聚产学研用各方力量,聚焦关键软件领域密码应用核心问题,不断夯实软件产业发展基础,共同推动软件产业和密码技术融合发展,12月18日,“2021年商用密码应用创新高端研讨会”在经开区国家信创园成功召开。在会上,中关村网络安全与信息化产业联盟EMCG工作组组长王克带来题为《密码在软件供应链安全中的应用》的演讲。
随着 5G、云计算、人工智能、大数据、区块链等技术的日新月异,数字化转型进程逐步推进,软件已经成为日常生产生活必备要素之一,渗透到各个行业和领域。
软件供应链安全白皮书(2021)》着重分析了软件供应链安全,梳理了软件供应链的安全现状,透过现状全面剖析软件供应链的安全风险及面临的安全挑战,有针对性的提出如何对软件供应链的安全风险进行防范与治理……
VSole
网络安全专家