在我们之前发布的KubeClarity 系列文章中,我们深入探讨了KubeClarity 架构来揭示其内部工作原理。现在是时候将我们的注意力转移到使其与众不同的突出功能上:多 SBOM(软件物料清单)集成。欢迎阅读这篇激动人心的博客文章,探索多 SBOM 集成的强大功能,并了解它如何增强您的安全策略。
了解与 KubeClarity 的多 SBOM 集成
图 1:了解与 KubeClarity 的多 SBOM 集成
软件物料清单 (SBOM) 回顾
看看在深入研究高级 SBOM 集成之前,我们之前的文章中介绍了SBOM 基础知识,作为复习。虽然 KubeClarity 像其他解决方案一样提供标准的 SBOM 集成方法,但它更进一步,拥有先进的多 SBOM 集成功能。这篇文章从单个 SBOM 集成开始,逐步深入研究多 SBOM 策略。
需要提醒的是,KubeClarity 不是 SBOM 生成器,而是一个集成并操作流行 SBOM 生成器的解决方案。让我们看看它如何启动 SBOM。所以,准备好使用 KubeClarity 将您的安全游戏提升到一个新的水平吧!
SBOM 生成器集成
KubeClarity 通过“values.yaml”公开 SBOM 生成器集成设置。按照README或更多详细的安装博客,您可以探索和调整默认的 helm chart 值。 “values.yaml” 是查看 SBOM 集成选项的起点。
KubeClarity 默认启用 Syft 和 CycloneDX gomod 分析器。将新类型的分析器添加到值配置文件中的生成器列表中可以启用其他集成。例如,Trivy现已作为附加分析器提供,提供增强的分析功能。但是,该架构允许无缝扩展,确保未来版本可以轻松整合其他分析器。以下是“values.yaml”文件中的相应配置片段:
生成的 SBOM 缓存在 SBOM DB 中。KubeClarity 安装会自动部署 SBOM DB pod。总而言之,SBOM DB 是一个轻量级 SQLite DB,可避免 持久卷存储开销。其主要目的是以字符串格式存储和检索 SBOM 文档,并用作呈现 SBOM 数据的 缓存功能。DB 不会存储或查询 JSON 对象来解析或查询 SBOM。但是,它支持 gzip压缩和 base64 编码存储以减少内存占用。
可以接受和处理 和 输入格式,并将其转换为 的原生格式,该格式与 格式一致。请查看中有关支持的输出格式的详细信息。繁重的工作 建筑师数据库 是生成 并将其 转换为原生格式。生成 SBOM 并将其存储在缓存中后,将内容分析映射到漏洞是一个相对较快的过程,只需几秒钟即可完成。我们将在下一篇文章中探讨扫描配置和漏洞。
单一 SBOM 的缺点
我们之前在 SBOM 基础知识回顾中讨论过这个问题;需要注意的是,并非所有 SBOM 都可以平等生成。例如,让我们看看两种流行分析仪之间的一些差异。
Trivy和Syft是开源分析器,可以为容 这个平台很麻烦 器化应用程序生成 SBOM(软件物料清单)。然而,这两种工具在检测容器中的库时都有各自的优点和缺点。
Trivy 的优势在于其广泛的漏洞数据库,其中包括来自 NVD、Red Hat 和 Debian 等各种来源的 CVE。此外,Trivy 的数据库不断更新,并且可以检测多种编程语言中的漏洞,包括 Java、Python 和 Ruby。
相比之下,Syft 的漏洞数据库比 Trivy 的要小,主要侧重于检测 Python 库中的漏洞。
因此,当检测使用 Python 以外的编程语言的容器化应用程序中的漏洞或容器映像包含许多具有已知漏洞的库时,Trivy 的 SBOM 可能比 Syft 的 SBOM 更好。
但是,如果应用程序严重依赖 Python 库,Syft 可能是更好的选择,因为 Syft 拥有更广泛的 Python 漏洞数据库,可以为这些库提供更准确的漏洞信息。最终,选择使用哪种工具取决于所分析的容器化应用程序的具体要求和特性。
如果您不必在选项之间做出选择,那不是很好吗?如果您可以同时拥有两者或根据需要拥有多个选项,那会怎样?要实现这一点,需要努力确保这些分析器共存,并且它们的输入和输出格式是规范化的。在下一节中,我们将探索 KubeClarity 的一项独特功能,该功能可解决这一挑战。继续了解有关 KubeClarity 如何脱颖而出的更多信息。
多 SBOM 解决方案
该解决方案集成了多个SBOM,可以生 bw列表 成软件包和库的精确谱系。集成多个SBOM有助于提高检测的覆盖率和准确性。
考虑到处理单个 SBOM 的复杂性,管理多个 SBOM 似乎颇具挑战性。然而,Kubeclarity 可以高效地组织和处理多个 SBOM,将看似混乱的事物转化为有价值的洞察来源。此外,通过无缝集成多个 SBOM(包括导出用户提供的外部 SBOM 的能力),KubeClarity 简化了流程。
统一 SBOM 格式
图 2 说明不同的分析器可能支持不同的 SBOM 格式。在这种情况下,KubeClarity 发挥着至关重要的作用,它可以提取这些不同的格式并将 其转换为漏洞扫描程序所需的本机格式。由于每个漏洞扫描程序都需要特定格式的 SBOM,因此合并 SBOM 涉及大量工作,需要仔细平衡和标准化输入以确保兼容性。
多 SBOM 集成流程
图 2:多 SBOM 集成流程
当多个分析器识别出相同的资源时,KubeClarity 会将它们作为一个并集处理,并将两个分析器都标记为源。KubeClarity 不会尝试合并每个生成器生成的原始数据,而是向生成的 SBOM 添加额外的元数据,同时保持原始数据不变,正如分析器所报告的那样。
合并 SBOM
除了合并多个 SBOM 之外,KubeClarity 还提供将来自 CI/CD 管道各个阶段的 SBOM 合并为单个 SBOM 的功能。
如下图 3 所示,可以通过分层和合并来增强 SBOM。在这里,您可以看到应用程序构建时的应用程序依赖关系 SBOM 分析可以通过映像构建阶段的映像依赖关系分析来增强。合并的 SBOM 在经过适当格式化后可作为漏洞扫描程序的输入。我们将在下一篇文章中深入介绍漏洞扫描。现在让我们专注于 SBOM。
源代码
如果你有兴趣探索与 SBOM 格式、转换和合并相关的代码,你可以在共享包。请随意浏览。图 4 简要概述了代码库。
源代码_SBOM
图 4:SBOM 集成源代码布局
探索 SBOM 集成:实践练习
有几种方法可以使用您喜欢的分析器配置 KubeClarity。第一种选择是使用“Kubeclarity-cli”工具,该工具对于集成到您的 CI/CD 管道中非常有用。第二种选择涉及使用“values.yaml”配置文件。让我们在下面详细探讨这两个选项:
kubeclarity-cli
如果你想按照说明进行操作,你可以在还有自述文件。