软件成分分析(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将驱动软件供应链安全的更多相关文章

  1. 基于 Docker 的现代软件供应链

    [编者按]本文作者为 Marc Holmes,主要介绍一项关于现代软件供应链的调查结果.本文系国内 ITOM 管理平台 OneAPM 编译呈现,以下为正文. 3 月初,为了了解软件供应链的现状以及 D ...

  2. CSO视角:Sigstore如何保障软件供应链安全?

    本文作者 Chris Hughes,Aquia的联合创始人及CISO,拥有近20年的网络安全经验. SolarWinds 和 Log4j 等影响广泛的软件供应链攻击事件引起了业界对软件供应链安全的关注 ...

  3. Kubernetes 时代的安全软件供应链

    点击下载<不一样的 双11 技术:阿里巴巴经济体云原生实践> 本文节选自<不一样的 双11 技术:阿里巴巴经济体云原生实践>一书,点击上方图片即可下载! 作者 汤志敏  阿里云 ...

  4. SLSA 框架与软件供应链安全防护

    随着软件供应链攻击浪潮愈演愈烈,Google 发布了一系列指南来确保软件包的完整性,旨在防止影响软件供应链的未经授权的代码修改.新的 Google SLSA 框架(Supply-chain Level ...

  5. win7 摄像头驱动软件找不到,只有sys文件

    有的驱动只有sys文件,但是仍然可以在qq视频等用,只是找不到amcap.exe等可执行文件, 因为没有摄像头软件,下载一个安装上即可

  6. AI如何驱动软件开发?华为云DevCloud 权威专家邀你探讨

    近期,国际著名咨询公司Gartner 在一份研究报告中将 "AI-Driven Development" 列为 2019 年的 Top 10 Strategic Technolog ...

  7. 利用jink的驱动软件j-flash 合并两个hex的方法,bootloader+app

    由于前几天要给工厂app和bootloader的hex的文件,网上很多都是bin的合并方法,bin的方法不再赘述,相信大家都能找到,现在将hex合并的方法写下来: 第一步:先打开第一个hex文件, 第 ...

  8. 利用jink的驱动软件j-flash 合并两个hex的方法,bootloader+app -(转载)

    第一步:先打开第一个hex文件, 第二步:选择 "Merge data file",合并文件 第三步:两个工程有可能地址相同,会有如下提示:(如果在编译的时候设置好Flash的地址 ...

  9. OpenSSF的开源软件风险评估工具:Scorecards

    对于IT从业者来说,Marc Andreessen 十年前提出"软件吞噬世界"的观点早已耳熟能详.无论是私人生活还是公共领域,软件为现代社会的方方面面提供动力,对现代经济和国家安全 ...

随机推荐

  1. OpenHarmony 3.1 Beta 版本关键特性解析——ArkUI canvas组件

    (以下内容来自开发者分享,不代表 OpenHarmony 项目群工作委员会观点) 江英杰 华为技术有限公司 canvas 是 ArkUI 开发框架里的画布组件,常用于自定义绘制图形.因为其轻量.灵活. ...

  2. ElasticSearch 设置某个字段不分词

    先说结论:字段类型更改为 'keyword' elasticSearch官方文档中创建index代码如下 PUT /my_store { "mappings" : { " ...

  3. Divan and bitwise operations

    这是一道比较综合的数学题目,光是吧题目看懂就花了我好一会儿时间,先看看题目吧: 题目分析:对于m段给定连续段的或值,要求出n个数的序列子序列的异或值之和: 题解: 这道题,我们先不要把它当作一个数一个 ...

  4. 2021.11.30 eleveni的水省选题的记录

    2021.11.30 eleveni的水省选题的记录 因为eleveni比较菜,eleveni决定先刷图论,再刷数据结构,同时每天都要刷dp.当然,对于擅长的图论,eleveni决定从蓝题开始刷.当然 ...

  5. python基础练习题(题目 画圈,学用circle画圆形。)

    day37 --------------------------------------------------------------- 实例056:画圈 题目 画图,学用circle画圆形. 分析 ...

  6. .NET Core 中的 Logging 简单实用 - 记录日志消息显示到控制台

    .NET Core 支持适用于各种内置和第三方日志记录提供程序的日志记录 API. 本文介绍了如何将日志记录 API 与内置提供程序一起使用. 本文中所述的大多数代码示例都来自 .Net 5 应用. ...

  7. 龙智被评估为CMMI [3] 级

    2022年3月,龙智宣布已被评估为CMMI研究所的能力成熟度模型集成(CMMI)的 [3] 级. CMMI 是一个能力改进框架,它为组织提供有效流程的基本要素,最终提高其绩效. 成熟度级别 3 的评估 ...

  8. ChCore Lab2 内存管理 实验笔记

    本文为上海交大 ipads 研究所陈海波老师等人所著的<现代操作系统:原理与实现>的课程实验(LAB)的学习笔记的第二篇.所有章节的笔记可在此处查看:chcore | 康宇PL's Blo ...

  9. 不使用比较和条件判断实现min函数的一种方法

    不使用比较和条件判断实现min函数,参数为两个32位无符号int. 面试的时候遇到的题目,感觉很有意思. 搜了一下多数现有的解法都是仅有两种限制之一,即要么仅要求不能使用比较,要么仅要求不能使用条件判 ...

  10. Django学习——图书管理系统图书修改、orm常用和非常用字段(了解)、 orm字段参数(了解)、字段关系(了解)、手动创建第三张表、Meta元信息、原生SQL、Django与ajax(入门)

    1 图书管理系统图书修改 1.1 views 修改图书获取id的两种方案 1 <input type="hidden" name="id" value=& ...