当前位置:网站首页>Plus版SBOM:流水线物料清单PBOM
Plus版SBOM:流水线物料清单PBOM
2022-07-27 12:15:00 【51CTO】
相信大家对软件物料清单(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 中。
边栏推荐
- 阿里云云数据库RDS版Exception during pool initialization
- Newticker uses
- V-show failure
- Shell脚本文本三剑客之awk
- 孤独的年轻人,戒不了Jellycat
- Sword finger offer notes: t58 - I. flip word order
- A possibility that ch340 module cannot be recognized / burned
- JS parasitic combinatorial inheritance
- [excerpt] [medical image] common DICOM thumbnail interpretation and viewer converter conversion tool
- torch‘ has no attribute ‘inference_ mode‘
猜你喜欢

Beyond compare 3 next difference segment / down search arrow not found
意外收获史诗级分布式资源,从基础到进阶都干货满满,大佬就是强!

LNMP architecture setup (deploy discuz Forum)

Interaction free shell programming

I do live e-commerce in tiktok, UK

Iptables firewall

我在英国TikTok做直播电商

Tlc549proteus simulation &sallen key filter &ad736vrms to DC conversion &proteus view 51 register value

JS-寄生组合式继承

Multi activity disaster recovery construction after station B 713 accident | takintalks share
随机推荐
Sword finger offer notes: t57 - I. and two numbers of S
银行人脸识别系统被攻破:一储户被偷走 43 万元
The first case of monkeypox in pregnant women in the United States: the newborn was injected with immunoglobulin and was safely born
严控室外作业时间!佛山住建局发文:加强高温期间建筑施工安全管理
Several rounds of SQL queries in a database
[product] about wechat product analysis
Makefile template
Shake quickly to rescue the "frustrated person"
Unity shader - Laser special effect shader[easy to understand]
JS-寄生组合式继承
LNMP架构搭建(部署Discuz论坛)
LNMP architecture setup (deploy discuz Forum)
Sword finger offer notes: t58 - I. flip word order
你尚未连接代理服务器可能有问题或地址不正确(如何查看代理服务器ip)
Finding the finite zero point of transfer function under different sampling periods
阿里云云数据库RDS版Exception during pool initialization
Tlc549proteus simulation &sallen key filter &ad736vrms to DC conversion &proteus view 51 register value
go入门篇 (2)
MATLAB画带延时系统的伯德图
Example of MATLAB dichotomy (example of finding zero point by dichotomy)