我们都听说过很多 物料清单 最近。我们了解了它们的用途、组成以及对安全和监管的要求。这次我想花时间谈谈 CyclonDX SBOM 中一个不太为人所知的部分——依赖图。
与名称所暗示的不同,依赖关系图不是 SBOM 的视觉方面。其目的是帮助描述组件对其他组件的依赖关系。这依赖于组件的 bom 参考 – 每个SBOM组件的唯一标识符。这个想法是为了显示哪些元素是相互依赖或相互关联的。听起来很简单,对吧?
Scribe 在决定什么的过程中大量使用依赖图 SBOM 的要素 哪些是重要的,哪些是我们应该注意的。在这篇文章中,我们将研究一下方法 刻划式打标系统 使用 SBOM 依赖图以及我们可以从中获得的实际好处。我们将查看 SBOM 依赖关系图的一些 JSON 示例,并最后看看我们将来还可以用它做什么。
什么是依赖图?
依赖关系图于 2019 年添加到 CyclonDX 格式中。其声明的目的是使用后来被称为“唯一标识符”的唯一标识符将组件连接在一起。 bom 参考。 在 CycloneDX 用例示例,我们可以看到依赖项如何使用组件引用 ID 来显示依赖项:
即使不举例,我相信您也能看到将一个元素连接到其他元素的能力是很有用的。一方面,作为最常见的用例,它允许您立即在一个位置查看库的所有依赖项。
依赖图可以表示直接关系和传递关系,并且通常是一个节点深。
尽管可以表示完整的依赖树,但不建议这样做,因为它可能会由于循环依赖或其他复杂关系而导致无限循环。建议通过表示单个节点来保持图表简单。
Scribe 如何使用依赖图?
Scribe 广泛使用随 SBOM 一起收集的元数据来提供证据上下文。证据的背景包括收集的地点和时间、其主题是什么等等。由于 Scribe 致力于提供可靠、可重用的信息,因此我们利用依赖图来创建可在不同客户端和项目之间使用的连接。
以下是 Scribe 支持的依赖图链接:
- 包文件:此连接允许我们查看哪些文件属于每个包。显然,如果我们在不属于该包的包中找到一个文件,则清楚地表明存在问题。
- 层指示和封装层:知道哪些包位于哪个映像层中很方便,因为这样我们就可以按层对漏洞进行排序。您从基础映像或父映像继承的问题不会像您自己创建的图层上发现的问题那样紧迫,也不会直接影响它们。
- 层文件:与包文件连接类似,此连接允许我们查看与每个层关联的文件。与其他连接一起,我们可以验证文件是否与正确的包和层关联,并且没有文件位于不应该存在的位置。
- 提交和提交文件:通过识别哪些文件来自哪个提交,我们可以确保提交文件在用于构建最终映像之前没有任何不当更改。
综合使用所有这些信息,我们可以从 SBOM 中绘制出一幅非常全面的图像,说明哪些文件应该在哪里找到。因此,我们有更好的机会捕获可能表明图像中存在问题的异常值或畸变——无论是完整性问题还是潜在的攻击。
依赖图和策略执行
Scribe 利用这个全面的依赖关系图来有效地执行复杂的策略。例如, 提交文件 利用依赖关系来维护代码所有者策略。它使我们能够验证谁提交了哪个文件以及何时提交。这 包文件 采用依赖关系来确保包完整性策略。它允许我们检查哪些文件应该链接到每个包并验证情况确实如此。此外, 封装层 依赖关系用于根据每一层的特定要求定制包策略。由于每个软件映像可能以不同的方式构建其层,因此能够明确地知道哪些包链接到映像的哪一层是非常有价值的。
自定义您的依赖关系图信息
我们知道,并不是每个人都热衷于分享所有这些信息,或者他们不愿意看到或以任何方式使用它。
作为解决这个问题的一种方法,Scribe 允许您创建更具体的 SBOM 版本。以下是您可以与我们的定制选项一起使用的 瓦林特 创建我们当前支持的 SBOM 时使用的工具。未来将提供更多选项:
- 要仅包含特定组件组,请使用 -成分 在组类型之间进行选择。
- 要包含或排除特定的包类型,请使用 -包装类型 or –包排除类型 选择特定的包类型。
- 包含找到的已安装软件包(软件包组 安装)或源引用的包(包组 指数), 用 –包组 在选项之间进行选择。
- 要排除组件,请使用 –过滤器正则表达式, –过滤器范围, 和 –过滤器-purl 排除任何您想要排除的组件。
- 要附加任何文件内容,请使用 –附加正则表达式 包括外部文件的内容。
- 要包含自定义环境和标签,请使用 –env 和 -标签 附加您的自定义字段。这允许您将自定义元数据添加到您正在创建的 SBOM。
展望未来
Scribe 认为我们使用它在 SBOM 的不同组件之间建立的上下文和连接至关重要。凭借我们 Valint 的能力 签字、核实及 管理政策 我们认为完全有可能看到未来可以做的不仅仅是管理安全策略。我们可以想象一个未来,依赖图信息可以用于质量控制、特定的合规需求,甚至金融科技和农业等不相关的领域。
Scribe 的平台有一个免费套餐,您现在就可以开始尝试,所有功能都触手可及。我鼓励你 试试看,查看随着时间的推移积累的此类信息的有用性,并了解您可以使用这些信息做什么。我希望您能加入我们,为我们所有人带来更安全的未来。
此内容由领先的端到端软件供应链安全解决方案提供商 Scribe Security 为您提供 - 为整个软件供应链中的代码工件以及代码开发和交付流程提供最先进的安全性。 了解更多