当前位置:网站首页>Plus版SBOM:流水线物料清单PBOM
Plus版SBOM:流水线物料清单PBOM
2022-08-04 05:08:00 【SEAL安全】
相信大家对软件物料清单(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 中。
边栏推荐
- Will the 2023 PMP exam use the new version of the textbook?Reply is here!
- C Expert Programming Chapter 4 The Shocking Fact: Arrays and pointers are not the same 4.1 Arrays are not pointers
- 败给“MySQL”的第60天,我重振旗鼓,四面拿下蚂蚁金服offer
- 你以为border-radius只是圆角吗?【各种角度】
- 某母婴小程序加密参数解密
- C Expert Programming Chapter 5 Thinking about Linking 5.2 Advantages of Dynamic Linking
- 21 days learning challenge 】 【 sequential search
- 7-2 LVS+DR概述与部署
- docker安装mysql与宿主机相差8小时的问题。
- C专家编程 第5章 对链接的思考 5.4 警惕Interpositioning
猜你喜欢

Shocked, 99.9% of the students didn't really understand the immutability of strings

Do you think border-radius is just rounded corners?【Various angles】

leetcode 12. 整数转罗马数字

Resolved error: npm WARN config global `--global`, `--local` are deprecated

关于yolo7和gpu
![[Cocos 3.5.2]开启模型合批](/img/d9/9e8f71c9a26c8052b11291fe3ba7ac.png)
[Cocos 3.5.2]开启模型合批

How to keep the source code confidential in the development under the burning scenario

For Qixi Festival, I made a confession envelope with code

结构体指针知识要点总结

Basic characteristics of TL431 and oscillator circuit
随机推荐
How to view sql execution plan offline collection
商城App开发都有哪些功能呢
Shocked, 99.9% of the students didn't really understand the immutability of strings
2023年PMP考试会用新版教材吗?回复来了!
Introduction and application of go module
C专家编程 第4章 令人震惊的事实:数组和指针并不相同 4.4 使声明与定义相匹配
Towards Real-Time Multi-Object Tracking(JDE)
Interesting Kotlin 0x0E: DeepRecursiveFunction
Landing, the IFC, GFC, FFC concept, layout rules, forming method, use is analysed
路网编辑器技术预研
go module的介绍与应用
7. The principle description of LVS load balancing cluster
C Expert Programming Chapter 4 The Shocking Fact: Arrays and Pointers Are Not the Same 4.5 Other Differences Between Arrays and Pointers
7-2 LVS+DR Overview and Deployment
Uni-app 小程序 App 的广告变现之路:全屏视频广告
深度学习21天——准备(环境配置)
中信证券网上开户怎么开的?安全吗?
el-Select selector bottom fixed
[One step in place] Jenkins installation, deployment, startup (complete tutorial)
What are the steps for how to develop a mall system APP?