SBOM:缓解软件供应链风险的关键
软件包含大量且范围广泛的组件、部分和相互依赖关系。需要有效缓解与使用软件相关的安全风险;需要遵守与组件相关的许可证。通过第三方代码(包括开源软件 (OSS))了解产品中所有项目的出处至关重要,无论这些元素源自企业的团队还是团队之外。确保安全的最佳方法是维护软件中所有组件的当前“成分列表”列表——软件材料清单 (SBOM)。
什么是 SBOM?
就像食品的成分列表一样,SBOM 就是软件中组件和服务的列表。SBOM 类似于制造和产品开发中的供应链文档。在产品开发供应链中,制造商使用特定供应商的零件,安装组件来构建产品,然后跟踪产品从制造商到购买它的零售店的旅行历史。与此类似,网络环境中的服务器机器是使用交付给制造厂的供应商部件构建的。服务器构建完成,然后从一个位置移动到另一个位置,直到它到达安装它的数据中心。这个过程中的每一步都是供应链的一部分。
SBOM 是提高整个软件安全供应链透明度和问责制的重要一步,但这只是在软件市场实现有意义的安全透明度的第一步。除了成分之外,软件消费者还应该清楚地了解为软件设想的威胁模型、现有的安全机制、执行的安全测试以及开发人员是否接受过培训。
在之前的文章 OpenSSF安全计划:SBOM 将驱动软件供应链安全 有提到,目前美国联邦政府采取了积极主动的措施,要求政府机构消费和生产的所有软件都使用 SBOM。《关于改善国家网络安全的行政命令》指出,网络攻击的频率和复杂性的增加催化了公共和私有部门联手保护软件供应链的局面。这也标志着 SBOM 驱动的未来已经到来。
SBOM 的优势
SBOM 是安全团队的理想工具,他们需要深入了解第三方软件风险以了解他们所使用的版本、任何许可影响以及可能增加安全债务的其他依赖项。最后,SBOM 帮助事件响应团队识别漏洞的来源以及是否被利用,以便快速通知客户。随着开源库的激增和 log4j 等广泛使用的库的大规模开发,SBOM 可以帮助组织在其应用程序组合中控制开源。以下是 SBOM 的优势:
SBOM 可以帮助组织优先考虑风险最高的开源使用。第一个目标是杜绝使用具有已知漏洞的库,并随时关注每个开源库的最新版本。
SBOM 在危机情况下也非常有用。当库中的新漏洞被披露时,组织必须能够快速准确地追踪该版本在其企业中的使用位置,这一点至关重要。使用来自企业各团队的 SBOM 数据并持续更新是快速响应的关键。
最后,通过将 SBOM 信息提供给软件消费者,这样有效解决了软件市场中的信息不对称问题。可以访问有关应用程序安全性的完整信息(包括 SBOM 中的库信息)的消费者可以做出明智的决定,同时也鼓励开发者创建安全可信任的出色软件。
SBOM 的作用
SBOM 是一种正式且可查询的记录,其中包含用于构建软件的各种组件的详细信息和关系,包括开源软件和所有引入的第三方软件。SBOM 提供的清单是安全软件开发框架(secure software development framework)的关键要素,有助于在软件开发过程中检测漏洞,然后在软件生命周期中发挥持续作用。
软件部件从各种不受监管的来源引入应用程序:供应商代码、合作伙伴代码、开源项目和内部开发。开发人员经常使用来自各种地方的代码(开源和第三方代码),这些代码不像商业软件那样具有相同的入站控制和审查。开源和第三方代码来自知名生态系统(如 Apache Software Foundation 和 Eclipse Foundation)和权威工件存储库,包括 Maven Central (Java)、NuGet (.NET)、npm (JS)、PyPI (Python) 、RubyGems (Ruby) 等等。有时,代码还可以通过全球各地的个人开发人员进入企业,这些开发人员将他们的代码托管在源代码存储库上,例如 GitHub 或 GitLab。
能够访问此代码中反映的创新和知识通常对用户有益,但也提出了一个需要解决的重要问题:代码中包含什么?这就是 SBOM 的亮点,借助 SBOM,软件公司可以识别:
软件中的组件/成分
这些组件来自哪里
每个组件的许可证信息
软件(及其运行的设备)的安全漏洞状态
哪些部分需要评估和补救(以及您在此过程中的位置)
向客户和合作伙伴交付的合规性工件
美国国家电信和信息管理局 (NTIA) 概述了 SBOM 的最低要素,例如数据字段(名称、许可证和版本)。目前已存在多种 SBOM 的格式,例如 CycloneDX、OpenChain 和 SPDX,行业也正在努力标准化 SBOM 的格式。SBOM 以多种格式创建和维护,有时在比较或编译 SBOM 时会遇到挑战。
优化 SBOM
随着 SBOM 成为主流,有效使用 SBOM 的关键之一是全面了解多个信息源。基于 SaaS 的 SBOM 提供了一种统一的库存管理方法,从不同来源获取和聚合数据,能够清楚地了解安全问题以及与许可证和不合规部件相关的法律风险。
具有基于云的库存管理的优化 SBOM 将成为商业智能的持续来源,提供可操作的视图,支持针对特定关注领域的监控和警报。通过从广泛的来源(内部和/或合作伙伴、供应商和供应商)获取数据以识别和记录所有第三方知识产权 (IP),统一和协调来自多个来源和各种格式的内部和外部 SBOM从整个组织到一个单一的、规范化的视图。由此产生的关于组件或许可证使用以及安全和漏洞暴露的见解意味着,如果许可证在不合规或发现漏洞时存在问题,企业可以采取相应措施来解决问题。
这种 SBOM 方法还提供了强大的合规性工件,企业可以将这些工件提供给其客户和下游供应链合作伙伴。这不仅能够强调企业软件的安全性,而且这种对产品的透明度也有助于加强业务关系。
作为软件成分分析 (SCA) 程序的一部分,基于云的集中式 SBOM 管理使企业能够做的不仅仅是识别软件中使用的成分,还能促进持续的策略管理、风险管理计划和许可证合规计划。有了这些信息,企业就可以更好地进行资源管理,了解在哪里以及如何将员工资源用于开发和/或当新报告的安全漏洞被识别为应用程序的一个组成部分时所需的补救措施。
总结
通过 SBOM,无论是企业自主开发的代码还是组织外部引入的软件组件,企业将拥有统一的数据来识别风险。同时企业将获得必要的信息来帮助及时解决问题,而主动识别软件许可证和安全风险有助于确保一种受损成分不会破坏企业软件,或危及企业在软件供应链中的角色。
SBOM:缓解软件供应链风险的关键的更多相关文章
- OpenSSF安全计划:SBOM将驱动软件供应链安全
在 软件成分分析(SCA)一文中,我们简单提到软件物料清单(SBOM)在安全实践中的价值. 本期文章将带你深入了解 "SBOM 无处不在"计划是什么,以及 SBOM 对未来软件供应 ...
- CSO视角:Sigstore如何保障软件供应链安全?
本文作者 Chris Hughes,Aquia的联合创始人及CISO,拥有近20年的网络安全经验. SolarWinds 和 Log4j 等影响广泛的软件供应链攻击事件引起了业界对软件供应链安全的关注 ...
- SLSA 框架与软件供应链安全防护
随着软件供应链攻击浪潮愈演愈烈,Google 发布了一系列指南来确保软件包的完整性,旨在防止影响软件供应链的未经授权的代码修改.新的 Google SLSA 框架(Supply-chain Level ...
- Kubernetes 时代的安全软件供应链
点击下载<不一样的 双11 技术:阿里巴巴经济体云原生实践> 本文节选自<不一样的 双11 技术:阿里巴巴经济体云原生实践>一书,点击上方图片即可下载! 作者 汤志敏 阿里云 ...
- Seal 0.4 发布:软件供应链安全洞察更上一层楼!
今天,我们很高兴宣布 Seal 0.4 已正式发布!在上一个版本中,Seal 完成了从单一产品到全链路平台的转变,通过全局视图帮助用户掌握软件开发生命周期各个环节的安全状况. 在 Seal 0.4 中 ...
- 基于 Docker 的现代软件供应链
[编者按]本文作者为 Marc Holmes,主要介绍一项关于现代软件供应链的调查结果.本文系国内 ITOM 管理平台 OneAPM 编译呈现,以下为正文. 3 月初,为了了解软件供应链的现状以及 D ...
- CNCF社区首个!KubeEdge达到软件供应链SLSA L3等级
摘要:在v1.13.0版本中,KubeEdge项目已达到 SLSAL3等级(包括二进制和容器镜像构件),成为CNCF社区首个达到SLSA L3等级的项目. 本文分享自华为云社区<CNCF社区首个 ...
- 6个tips缓解第三方访问风险
随着开发和交付的压力越来越大,许多企业选择依赖第三方来帮助运营和发展业务.值得重视的是,第三方软件及服务供应商和合作伙伴也是云环境攻击面的重要组成部分.尽管企业无法完全切断与第三方的关联,但可以在向他 ...
- 选择ERP频频踩雷?国内外ERP有差异,突破ERP软件单一性是关键
信息化日新月异的蓬勃发展,导致企业在选择ERP软件时频频踩雷.企业如何选择出一个适合自己的ERP软件系统呢?是选择国外知名公司的ERP软件产品,还是选择国内性价比高的ERP软件产品呢,小编就带大家了解 ...
- 关于软件物料清单(SBOM),你所需要了解的一切
在此前的多篇文章中,我们已经详细地介绍了软件物料清单(SBOM)对于保障软件供应链安全的重要性以及一些注意事项.在本文中,我们将会更深入地介绍SBOM,包括最低要求元素.格式.使用场景以及如何对其进行 ...
随机推荐
- JUC并发编程学习笔记(三)生产者和消费者问题
生产者和消费者问题 synchronized版-> wait/notify juc版->Lock 面试:单例模式.排序算法.生产者和消费者.死锁 生产者和消费者问题 Synchronize ...
- 🔥🔥TCP协议:超时重传、流量控制、keep-alive和端口号,你真的了解吗?
引言 在之前的讲解中,我们已经介绍了TCP协议的一些面试内容,相信大家对于TCP也有了一些新的了解.今天,我们将继续深入探讨TCP的超时重传.流量控制.TCP的keepalive机制以及端口号等相关信 ...
- Python 机器学习入门:数据集、数据类型和统计学
机器学习是通过研究数据和统计信息使计算机学习的过程.机器学习是迈向人工智能(AI)的一步.机器学习是一个分析数据并学会预测结果的程序. 数据集 在计算机的思维中,数据集是任何数据的集合.它可以是从数组 ...
- 2023浙江省大学生信息安全竞赛决赛 Cry+Misc wp
搞到了一些附件,做做看难度如何. CRYPTO R_r 1.题目信息 查看代码 from Crypto.Util.number import * import random from gmpy2 im ...
- 《流畅的Python》 读书笔记 第8章_对象引用、可变性和垃圾回收
第8章_对象引用.可变性和垃圾回收 本章的主题是对象与对象名称之间的区别.名称不是对象,而是单独的东西 name = 'wuxianfeng' # name是对象名称 'wuxianfeng'是个st ...
- Dash应用浏览器端回调常用方法总结
本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/dash-master 大家好我是费老师,回调函数是我们在Dash应用中实现各种交互功能的核心,在绝大 ...
- AcWing100 IncDec Sequence
求出\(a\)的差分序列\(b\),其中\(b_1 = a_1, b_2 = a_2 - a_1, ... b_n = a_n - a_{n - 1}\) 根据题意以及公式可以发现,如果我们想让序列所 ...
- mysql--基础管理
1.docker环境登录mysql PS C:\WINDOWS\system32> docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS P ...
- 【Javaweb】servlet七 | 解决post请求中文乱码问题
问题描述 在get请求时(可以接收) post请求时(出现了中文乱码问题) 解决方案 在doPost函数中添加如下代码 // 设置请求体字符为UTF-8,从而解决post请求的中文乱码问题// 也要在 ...
- MATLAB时间序列数据重建与平滑:HANTS滤波
本文介绍在MATLAB中,实现基于HANTS算法(时间序列谐波分析法)的长时间序列数据去噪.重建.填补的详细方法. HANTS(Harmonic Analysis of Time Series ...