相信大家对软件物料清单(SBOM)并不陌生,它是指用于构建软件解决方案的所有软件组件(开源或商业)的列表。但在软件物料清单中,并不包括用于部署软件的微服务和其他组件。为了更全面了解所用的组件,我们需要创建流水线物料清单 PBOM(Pipeline Bill of Materials),其中包含用于将应用程序从代码到交付的所有软件组件和服务。

为什么 PBOM 很有必要?

软件安全不仅取决于源代码,还取决于整个软件交付流水线的集成。此类集成包括构建工具、镜像仓库和 IaC (Infrastructure as Code) 部署。普通应用程序使用的库和组件数量正在增长,数据显示应用程序平均使用超过500个开源库和组件,与两年前相比增长了77%。

传统的软件物料清单能够通过分析依赖关系有效防止相应安全问题。但由于 SBOM 并未包含整个开发和部署流水线中使用的所有组件,在查看开发所用组件时存在一定盲区。而这类盲区很有可能造成巨大安全隐患,也给恶意攻击者可趁之机。在 SolarWinds 事件中,TeamCity(CI/CD 构建服务)在攻击期间被利用作为攻击媒介,而 SBOM 并没有提供关键信息来阻止此类攻击。

为了防止过程中的构建工具、镜像仓库和其他组件可能产生的威胁和安全风险,我们需要确切地了解正在使用的所有组件,包括软件开发流水线中的组件。创建流水线物料清单时,记得包含 SBOM 的所有内容,并补充有关部署流水线的全面信息。

PBOM 能带来什么好处?

1. 提高可视性

PBOM 帮助实现部署流水线的完整可视性,DevOps、安全和工程团队也因此可以创建更加全面的资产清单。保留对流水线中所有组件的引用,能够帮助各个团队更好地把控流程中的安全性。

2. 通过应急计划防止安全威胁

利用 PBOM 能够帮助了解流水线中的所有部分如何交互,以及根据安全威胁作出相应业务决策并执行相应的应急计划,来保障软件安全性。由此能够有效改进威胁建模(Threat Modeling),允许实施零信任架构,并推动 DevOps “安全左移”计划。

3. 提高问题解决效率

PBOM 能够提供更完整的组件清单,包括代码所有者,提交历史记录以及每个部分的关联人员。使用 PBOM 根据上下文能够提供准确的警报,从而避免在任何问题出现时无差别提醒团队成员。随着误报数量减少,开发及运维团队看到警报更加精准,解决问题的效率也就更高。

PBOM 需要包含什么内容?

通过上述内容,我们明确了可以从 PBOM 中获取的信息,进而来确定 PBOM 需要涵盖的内容。值得注意的是,创建 PBOM 时不要忘记将 SBOM 中已包含的所有组件纳入该清单中。此外,组织在创建 PBOM 时应当保留构建和部署工具信息。DevOps 团队可以利用 PBOM 所提供的信息,有效缓解软件供应链中的安全漏洞和安全风险。

开发人员、代码所有者和具有系统访问权限的管理员是 SBOM 中常被忽视的部分,这些帐户通常具有更高的访问权限。为了最大限度地提高安全性并符合最小特权原则,需要在一定程度上基于角色进行访问控制。企业首先应该充分审查当前已经具备系统访问权限的账户,审核完毕后,可以将这些账户作为参考,为后期保证用户权限的安全性提供指导,而对应的开发人员、代码所有者及具有系统访问权限的管理员可以访问到的信息范围也需要归纳到 PBOM 中。

Plus版SBOM:流水线物料清单PBOM的更多相关文章

  1. 关于软件物料清单(SBOM),你所需要了解的一切

    在此前的多篇文章中,我们已经详细地介绍了软件物料清单(SBOM)对于保障软件供应链安全的重要性以及一些注意事项.在本文中,我们将会更深入地介绍SBOM,包括最低要求元素.格式.使用场景以及如何对其进行 ...

  2. BOM(Bill of Material)物料清单基础知识(一)

                                                                                            一.BOM的基础概念 概 ...

  3. 精通Perl(第2版)

    精通Perl(第2版)(通往Perl大师之路必读经典书籍,体现了一种编程思维,能够帮你解决很多实际的问题) [美]brian d foy(布瑞恩·D·福瓦)著   王兴宇 刘宸宇 译 ISBN 978 ...

  4. 【原】Learning Spark (Python版) 学习笔记(三)----工作原理、调优与Spark SQL

    周末的任务是更新Learning Spark系列第三篇,以为自己写不完了,但为了改正拖延症,还是得完成给自己定的任务啊 = =.这三章主要讲Spark的运行过程(本地+集群),性能调优以及Spark ...

  5. zw版·Halcon与delphi(兼谈opencv)

    zw版·Halcon与delphi(兼谈opencv) QQ群 247994767(delphi与halcon) <Halcon与delphi>系列,早两年就想写,不过一方面,因为Halc ...

  6. 【《zw版·Halcon与delphi系列原创教程》 zw_halcon人脸识别

    [<zw版·Halcon与delphi系列原创教程>zw_halcon人脸识别 经常有用户问,halcon人脸识别方面的问题. 可能是cv在人脸识别.车牌识别方面的投入太多了. 其实,人脸 ...

  7. 《zw版·Halcon-delphi系列原创教程》 酸奶自动分类脚本(机器学习、人工智能)

    <zw版·Halcon-delphi系列原创教程>酸奶自动分类脚本(机器学习.人工智能) Halcon强大的图像处理能力,令人往往会忽视其内核,是更加彪悍的机器学习.人工智能.       ...

  8. 《zw版·Halcon-delphi系列原创教程》 水果自动分类脚本(机器学习、人工智能)

    <zw版·Halcon-delphi系列原创教程> 水果自动分类脚本(机器学习.人工智能) 前面介绍了超市,流水线,酸奶的自动分类算法,下面再介绍一个水果的自动分类算法. Halcon强大 ...

  9. 《zw版Halcon与delphi系列原创教程》发布说明

    <zw版Halcon与delphi系列原创教程>发布说明 zw转载的<台湾nvp系列halcon-delphi教程>,虽然很多,不过基本上都是从cnc.数控角度的demo..  ...

  10. 《程序设计语言——实践之路(英文第三版)》【PDF】下载

    <程序设计语言--实践之路(英文第三版)>[PDF]下载链接: https://u253469.pipipan.com/fs/253469-230382234 内容简介 <程序设计语 ...

随机推荐

  1. 夯实JAVA基本之一 —— 泛型详解(1):基本使用(转)

    一.引入1.泛型是什么首先告诉大家ArrayList就是泛型.那ArrayList能完成哪些想不到的功能呢?先看看下面这段代码:ArrayList<String> strList = ne ...

  2. [Python急救站课程]天天向上的力量

    我们要"好好学习,天天向上."那么天天向上的力量到底有多强呢? 1.一年365天,以第1天的能力值为基数,记为1.0,当好好学习时能力值相比前一天提高1‰,当没有学习时由于遗忘等原 ...

  3. Java实现两字符串相似度算法

    1.编辑距离 编辑距离:是衡量两个字符串之间差异的度量,它表示将一个字符串转换为另一个字符串所需的最少编辑操作次数(插入.删除.替换). 2.相似度 计算方法可以有多种,其中一种常见的方法是将编辑距离 ...

  4. 脚踏esbuild祥云,胸怀tsx利刃,身披scss羽衣,追寻前端的本质

    本文所有内容,纯属个人观点,无意与任何人争论 前端技术的现状 我觉得前端技术发展到现在有两个最主要的特征 前端工具链为前端工程化提供了强有力的支持 这方面主要是webpack.rollup.esbui ...

  5. Codeforces Round #703 (Div. 2) A、B、D、E题解

    写在前边 链接:Codeforces Round #703 (Div. 2) 这次的交互题是真不会做. A. Shifting Stacks 链接:A题链接 题目大意: 有\(n\)摞高度分别为\(h ...

  6. MongoDB 中的事务

    MongoDB 事务 前言 如何使用 事务的原理 事务和复复制集以及存储引擎之间的关系 WiredTiger 中的事务隔离级别 WiredTiger 事务过程 事务开启 事务执行 事务提交 事务回滚 ...

  7. python之史上最详细if教程

    目录 简单的if语句 关系运算符 if-else语句 if-elif-else语句 使用多个elif代码块 省略else代码块 测试多个if 简单的if语句 if语句,顾名思义就是如果...那么就.. ...

  8. 请查收,本周刷屏的两大热点「GitHub 热点速览」

    如果你逛 HackerNews 或者是推特,你一定会被 multipleWindow3dScene 这个跨窗口渲染项目的成果刷屏,毕竟国内的技术平台上也出现了不少的模仿项目.另外一个热点,便是你在白板 ...

  9. Vue-cli脚手架下载安装

    注意:在下载安装该脚手架之前先安装配置好NodeJS以及镜像源,NodeJS详情可查询文章:NodeJS下载安装 1.cmd中输入以下指令: npm install -g @vue/cli 整个过程中 ...

  10. ClickHouse(17)ClickHouse集成JDBC表引擎详细解析

    目录 JDBC 建表 用法示例 JDBC表函数 资料分享 参考文章 JDBC 允许CH通过JDBC连接到外部数据库. 要实现JDBC连接,CH需要使用以后台进程运行的程序 clickhouse-jdb ...