共计 1357 个字符,预计需要花费 4 分钟才能阅读完成。
置信大家对软件物料清单(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 中。