一、什么是GUAC
Graph for Understanding Artifact Composition (GUAC) 将软件安全元数据聚合到一个高保真图数据库中——规范化实体身份并映射它们之间的标准关系。查询此图表可以推动更高级别的组织成果,例如审计、政策、风险管理,甚至开发人员协助。
从概念上讲,GUAC占据了软件供应链透明逻辑模型的“聚合与综合”层:
二、GUAC有四个主要功能领域:
收集
GUAC 可以配置为连接到各种软件安全元数据源。一些来源可能是公开的(例如,OSV);有些可能是第一方(例如,组织的内部存储库);有些可能是专有的第三方(例如,来自数据供应商)。
摄取
从其上游数据源 GUAC 导入有关工件、项目、资源、漏洞、存储库甚至开发人员的数据。
整理
从不同的上游来源获取原始元数据后,GUAC 通过规范化实体标识符、遍历依赖树和具体化隐式实体关系(例如,项目→开发人员)将其组装成一个连贯的图;漏洞→软件版本;artifact → source repo,等等。
查询
组合图可以查询附加到图内实体或与图内实体相关的元数据。查询给定的工件可能会返回它的 SBOM、出处、构建链、项目记分卡、漏洞和最近的生命周期事件——以及它的传递依赖项。
GUAC 大规模聚合和综合软件安全元数据,使其有意义和可操作。有了GUAC,我们将能够回答软件供应链安全三个重要阶段的问题:
主动,例如,
我的软件供应链生态系统中最常用的关键组件是什么?
我的整体安全态势中的弱点在哪里?
我如何防止供应链受损?
我在哪里暴露于有风险的依赖关系?
可操作的,例如,
是否有证据表明我将要部署的应用程序符合组织政策?
生产中的所有二进制文件是否都可以追溯到安全管理的存储库?
反应性的,例如,
我的组织清单的哪些部分受到新漏洞 X 的影响?
发生了可疑的项目生命周期事件。我的组织在哪里引入了风险?
一个开源项目正在被弃用。我受到怎样的影响?
GUAC github:
https://github.com/guacsec/guac
Demo: