OpenSSF安全计划:SBOM将驱动软件供应链安全
在 软件成分分析(SCA)一文中,我们简单提到软件物料清单(SBOM)在安全实践中的价值。 本期文章将带你深入了解 “SBOM 无处不在”计划是什么,以及 SBOM 对未来软件供应链安全和开源生态系统的重要性。
开源软件安全基金会(OpenSSF)发布了一项动员计划,以提高开源软件(OSS)的适应性和安全性。 现代软件供应链之所以广泛使用 OSS,是因为它提供了更快的创新和更高质量的产品,但由于 OSS 组件固有的漏洞,其广泛采用会伴随一定风险。
该计划的一个重要部分是使用软件物料清单(SBOM)作为基础构建块,改善整个开源生态系统的安全状况。 这个计划概述了 OSS 项目应如何向下游用户提供 SBOM,从而将 OSS 组件的可见性提升到一个新的高度。 因此,使用 OSS 的企业和组织将需要一套用于 SBOM 管理的流程,使他们能够生成、获取、分析、存储、监控和共享 SBOM,以提高其自身软件供应链的安全性。
“SBOM 无处不在”究竟是什么?
开源软件安全动员计划包含 10 个行动项目被称为“活动组”。 第9组的目标为 “SBOM 无处不在: 改进 SBOM 工具和培训,以推动其广泛应用”,旨在帮助推动 SBOM 作为基础构建块的应用,以改善整个开源生态系统的安全状况。 该计划的核心思想是让 OSS 生态系统能够为其软件的每个版本提供准确的 SBOM。 对于 OSS 厂商、用户和维护者,SBOM 提供的软件产品中所有组件的最终列表,可用于在软件开发生命周期的每个阶段识别现有漏洞和新漏洞。
“SBOM 无处不在”工作小组将确保现有的 SBOM 格式与记录的用例相匹配,同时开发高质量的开源工具来创建 SBOM 文档。 尽管目前已有相关工具,但还需要搭建更多工具。 该工作小组还负责开展以 SBOM 为主题的教育活动,以推动 SBOM 在开源领域、政府和商业行业生态系统中的应用。
值得注意的是,美国联邦政府采取了积极主动的措施,要求政府机构消费和生产的所有软件都使用 SBOMs。 《关于改善国家网络安全的行政命令》指出,网络攻击的频率和复杂性的增加催化了公共和私有部门联手保护软件供应链的局面。 这也标志着 SBOM 驱动的未来已经到来。
SBOM 驱动的未来会是什么样子?
计算机科学家先驱 Alan Kay 有一句名言: “预测未来的最好方法就是创造它。 ” SBOM 的变革必然是一种创新和发明。 当我们使用 SBOMs 时,我们将找到新的方法来改进和构建目前已有的模式。 关于未来的 SBOM,我们先睹为快:
多种 SBOM 格式
目前存在多种 SBOM 格式标准,而这些标准将不断改进并演变出其他标准。 当下两种最常见的 SBOM 格式是 SPDX 和 CycloneDX。 虽然某一种格式可能会成为行业标准,但是只要有多个标准存在,我们仍有可能需要继续使用多种格式。 因此对于 OSS 用户来说,选择能够支持多种格式的工具则是最优方案。
引入和生成 SBOM
我们运行和构建的许多东西实际上是由许多较小的部件组装起来的。 同样,现代软件应用程序使用数百甚至数千个较小的构建块像拼乐高一样将它们组装起来。 我们需要将每个组件中的 SBOM 组装起来,以便为特定应用程序制作一个全面的 SBOM。
我们使用的组件的 SBOM 可能来自 OSS 项目或商业软件,亦或者可能需要我们自己为某些组件生成 SBOM。 重要的是要能够以不同的格式引入这些组件级 SBOM,然后组装它们来建立一个更全面的 SBOM。
组装和输出 SBOMs
当组装完应用程序级 SBOM,我们将在内部进行使用和共享(出于安全性和合规性目的)。 我们将为现有软件引入 SBOM,为创建的新软件生成新的 SBOM,然后输出包含最终应用程序所有组件的 SBOM。
如果没有工具管理 SBOM,输出 SBOM 的过程将非常复杂且费时。 大多数应用程序将具有用于各个单独组建的,多个版本的 SBOM,所有这些部分都要合并到最终的 SBOM 中。 如果没有 SBOM 工具,跟踪和准确创建应用程序级的 SBOMs 将是一项不可能完成的任务。
SBOM 管理
目前,“SBOM 无处不在”的重点是使用 SBOM 进行漏洞扫描。 通过维护软件应用程序中所有 SBOM 的存储库,您可以持续监控 SPOM 并及时发现新的漏洞,在部署后也是如此。 SBOM 管理还包括维护软件组件的清单,根据项目参与者发布的内容,来验证正在使用的内容,获得对开源许可证的可见性,以及评估 OSS 项目的运行状况和风险。 而在未来,SBOM 数据将有更多其他用途。
开启 SBOMs 的四个步骤
1. 了解 SBOMs
“SBOM Everywhere”倡议的其中一个重点是意识和教育。 SBOM 有很多自学资源,例如来自不同平台的博客文章。 通过开始学习 SBOMs 以及日益累积相关认知,您将为SBOM 驱动的未来做好更充分的准备。
2. 生成 SBOMs
开始为软件或开源组件生成 SBOM。 有许多开源工具可用,比如docker sbom,Syft 和 GoReleaser。 通过为构建和部署的软件创建 SBOM,我们可以了解共享 SBOM 的最佳方式。
3. 获取 SBOMs
向开源项目维护人员以及商业软件供应商获取 SBOMs。 客户和用户请求 SBOM 的频率越高,SBOM 在功能请求列表中就越靠前。
4. 对 SBOM 的合理预期
对于所有人来说,对于全新的 SBOM 采用模式应当有一个合理的预期。 我们将不断地从过往的成功或失败中获取经验。 秉持耐心和理解,努力探索如何创建,管理和输出SBOM,最终将帮助我们更快地迈向 “SBOM 无处不在” 的未来。
通过采用 SBOM 作为最佳实践,来保护在更大的生态系统中创建共享依赖关系的常用 OSS 组件,由此在极大程度上提高整个软件供应链的安全性。
参考链接:
The Open Source Software Security Mobilization Plan
https://openssf.org/oss-security-mobilization-plan/
Executive Order on Improving the Nation’s Cybersecurity
https://www.whitehouse.gov/briefing-room/presidential-actions/2021/05/12/executive-order-on-improving-the-nations-cybersecurity/
OpenSSF安全计划:SBOM将驱动软件供应链安全的更多相关文章
- 基于 Docker 的现代软件供应链
[编者按]本文作者为 Marc Holmes,主要介绍一项关于现代软件供应链的调查结果.本文系国内 ITOM 管理平台 OneAPM 编译呈现,以下为正文. 3 月初,为了了解软件供应链的现状以及 D ...
- CSO视角:Sigstore如何保障软件供应链安全?
本文作者 Chris Hughes,Aquia的联合创始人及CISO,拥有近20年的网络安全经验. SolarWinds 和 Log4j 等影响广泛的软件供应链攻击事件引起了业界对软件供应链安全的关注 ...
- Kubernetes 时代的安全软件供应链
点击下载<不一样的 双11 技术:阿里巴巴经济体云原生实践> 本文节选自<不一样的 双11 技术:阿里巴巴经济体云原生实践>一书,点击上方图片即可下载! 作者 汤志敏 阿里云 ...
- SLSA 框架与软件供应链安全防护
随着软件供应链攻击浪潮愈演愈烈,Google 发布了一系列指南来确保软件包的完整性,旨在防止影响软件供应链的未经授权的代码修改.新的 Google SLSA 框架(Supply-chain Level ...
- win7 摄像头驱动软件找不到,只有sys文件
有的驱动只有sys文件,但是仍然可以在qq视频等用,只是找不到amcap.exe等可执行文件, 因为没有摄像头软件,下载一个安装上即可
- AI如何驱动软件开发?华为云DevCloud 权威专家邀你探讨
近期,国际著名咨询公司Gartner 在一份研究报告中将 "AI-Driven Development" 列为 2019 年的 Top 10 Strategic Technolog ...
- 利用jink的驱动软件j-flash 合并两个hex的方法,bootloader+app
由于前几天要给工厂app和bootloader的hex的文件,网上很多都是bin的合并方法,bin的方法不再赘述,相信大家都能找到,现在将hex合并的方法写下来: 第一步:先打开第一个hex文件, 第 ...
- 利用jink的驱动软件j-flash 合并两个hex的方法,bootloader+app -(转载)
第一步:先打开第一个hex文件, 第二步:选择 "Merge data file",合并文件 第三步:两个工程有可能地址相同,会有如下提示:(如果在编译的时候设置好Flash的地址 ...
- OpenSSF的开源软件风险评估工具:Scorecards
对于IT从业者来说,Marc Andreessen 十年前提出"软件吞噬世界"的观点早已耳熟能详.无论是私人生活还是公共领域,软件为现代社会的方方面面提供动力,对现代经济和国家安全 ...
随机推荐
- 史上最全log4j2远程命令执行漏洞汇总报告
已投稿信安之路公众号,文章链接
- 2021.07.17 题解 CF1385E Directing Edges(拓扑排序)
2021.07.17 题解 CF1385E Directing Edges(拓扑排序) CF1385E Directing Edges - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) ...
- Java高可用集群架构与微服务架构简单分析
序 可能大部分读者都在想,为什么在这以 dubbo.spring cloud 为代表的微服务时代,我要还要整理这种已经"过时"高可用集群架构? 本人工作上大部分团队都是7-15人编 ...
- Revit二次开发之创建风管
在Revit中,风管用于连接管件,风道末端和机械设备,今天简单尝试了下使用RevitAPI创建风管,现分享下我的方法. 风管从类型上可分为三类:一般风管,软风管和风管占位符:从形状上也分为三类 ...
- JavaWeb和WebGIS学习笔记(五)——使用OpenLayers显示地图
系列链接: Java web与web gis学习笔记(一)--Tomcat环境搭建 Java web与web gis学习笔记(二)--百度地图API调用 JavaWeb和WebGIS学习笔记(三)-- ...
- C#/VB.NET 获取Excel中图片所在的行、列坐标位置
本文以C#和vb.net代码示例展示如何来获取Excel工作表中图片的坐标位置.这里的坐标位置是指图片左上角顶点所在的单元格行和列位置,横坐标即顶点所在的第几列.纵坐标即顶点所在的第几行.下面是获取图 ...
- python基础-基本数据类型(二)
一.序列类型 序列类型是用来表示有序的元素集合 1.字符串(str) python中字符串通常用str表示,字符串是使用单引号,双引号,三引号包裹起来的字符的序列,用来表示文本信息. 1.1 字符串的 ...
- XCTF练习题---MISC---Erik-Baleog-and-Olaf
XCTF练习题---MISC---Erik-Baleog-and-Olaf flag:flag{#justdiffit} 解题步骤: 1.观察题目,下载附件 2.拿到手以后发现是一个没有后缀名的文件, ...
- Idea分享项目到全球最大同x交友网站gayhub居然失败了!我居然没有权限!来看看解决方法吧
Idea分享项目到全球最大同x交友网站gayhub居然失败了! 事情是这样的,刚写完一个动态网页就想着部署到github上让大家看看(装逼),然而在我share project时,它告诉我: 大概意思 ...
- 为 ASP.NET Core (6.0)服务应用添加ApiKey验证支持
这个代码段演示了如何为一个ASP.NET Core项目中添加Apikey验证支持. 首先,通过下面的代码创建项目 dotnet new webapi -minimal -o yourwebapi 然后 ...