一文带你搞懂 Google 发布的新开源项目 GUAC
随着软件供应链攻击的显著增加,以及 Log4j 漏洞带来的灾难性后果和影响,软件供应链面临的风险已经成为网络安全生态系统共同关注的最重要话题之一。根据业内权威机构 Sonatype 发布的2022软件供应链现状报告,在过去三年中,针对上游开源代码存储库的恶意活动,旨在将恶意软件植入软件组件的攻击数量增加了742%。
幸运的是大家逐渐开始意识到软件供应链攻击的巨大风险,这也促使各企业积极采取一系列避免或缓解软件供应链安全风险的行动。例如美国政府就应对软件供应链安全风险发布了网络安全行政命令。除此以外,许多大公司开始共同推出有助于打击针对软件供应链的恶意行为者日益增长的威胁的措施。
2022 年 10 月,Google 宣布了一个新的开源项目,称为 Graph for Understanding Artifact Composition(简称 GUAC)。该计划尚处于早期阶段,但有望改变行业对软件供应链的理解。GUAC 的目标是解决整个生态系统不断涌现的生成软件构建、安全性和依赖性元数据的需求,旨在通过让每个企业组织(而不仅仅是那些拥有企业级安全和 IT 资金的组织)免费访问和使用这些安全信息,有效提高这些信息的可用性。
GUAC 的目标
作为一个组织,Google 的核心使命是整合全球信息,使人人都可以访问并从中受益。就网络安全世界而言,GUAC 符合该使命。GUAC 的目标是为所有组织提供顶级安全信息,包括那些没有 IT 预算或企业级安全基础设施来为自己获取此信息的组织。GUAC 是一种将有价值的软件安全元数据聚合到高保真图形数据库中的尝试。该数据库不仅包括不同软件实体的标识,还将详细说明它们之间的标准关系。
不同团体之间的社区协作产生了软件物料清单(SBOM) 等政策文档、详细说明软件构建方式的签名证明(例如SLSA)以及可以更轻松地发现和消除漏洞的数据库,例如 Global Security数据库(GSD)。GUAC 将帮助组合和综合所有这些数据库中可用的信息,并将这些信息组织成更全面的格式。这样任何人都可以找到有关他们打算使用的任何软件资产的高级安全问题所需的答案。

图片来源:Google
GUAC 四大功能
GUAC 有四个主要功能:
1. 收集信息
GUAC 可以配置为连接到各种软件安全元数据源。一些数据来源可能是公开的(例如,OSV);有些可能是企业自有的(例如,企业的内部存储库);有些可能是专有的第三方(例如,来自数据供应商)。
2. 导入信息
GUAC 从其上游数据源导入有关工件、项目、资源、漏洞、存储库甚至开发人员的数据。
3. 整理信息
从不同的上游来源获取原始元数据后,GUAC 通过规范化实体标识符、遍历依赖树和具体化隐式实体关系(例如,项目→开发人员)将其组装成一个连贯的图;漏洞→软件版本;artifact → source repo,等等。
4. 查询信息
针对组合图,可以查询附加到图中实体或与实体相关的元数据。查询给定的工件,反馈其 SBOM、出处、构建链、项目记分卡、漏洞和最近的生命周期事件——以及其传递依赖项等。

图片来源:Google
GUAC 涵盖的三个阶段
GUAC 是一个免费的开源平台,它将软件安全元数据的不同来源聚合到一个来源中。作为一种安全工具,GUAC 将在保护其软件基础架构免受供应链攻击的三个阶段中对组织有用。以下是它对每个阶段的用处:
第一阶段:主动阶段
主动阶段是企业采取措施以防止发生大规模软件危害的阶段。在此阶段,用户往往想知道他们最常使用的软件供应链生态系统的关键组件,而 GUAC 将使用户更容易识别它们。使用 GUAC,用户可以识别整体安全基础架构中的弱点,包括暴露于风险依赖项的区域。这样,就可以更好地在攻击发生之前阻止它们。
第二阶段:运营阶段
运营阶段是预防阶段,用户可以在其中确定要使用或部署的软件是否符合供应链风险防范措施的所有正确要求。使用 GUAC,用户可以验证软件是否符合要求的政策标准,或者生产中的所有二进制文件是否都能够追溯到安全存储库。
第三阶段:反应阶段
尽管采取了所有措施,软件供应链漏洞仍可能发生。反应阶段是用户决定在发现违规时要采取什么措施的阶段。借助 GUAC,受影响的企业可以查明其库存的哪一部分受到漏洞的影响、受影响的严重程度以及风险是什么。此信息将有助于减轻攻击并防止将来再次发生。
GUAC 对企业来说意味什么?
那么, GUAC 对企业来说意味着什么?由于该项目仍处于开发阶段,用户可以通过多种方式以个人或组织的身份参与。
- 根据一项针对约 1,000 名 CIO 的调查统计数据显示,高达 82% 的受访者认为他们所在的企业容易受到网络攻击。这意味着,如果没有采取任何措施来保护软件基础设施,那么现在需要立刻行动起来了。谷歌的这一举措再次敲响了警钟,提醒人们需要采取更多行动更加重视软件供应链安全。
- 其次,呼吁大家积极贡献。GUAC 目前是 Github 上的一个开源项目。现在它只是一个概念证明,它聚合了 SLSA、SBOM 和记分卡文档以支持对软件元数据的简单搜索。该项目欢迎贡献者将元数据添加到 GUAC 以及代表最终用户需求的顾问。
- GUAC 是SLSA 框架的新配对。安全框架——各种网络安全利益相关者之间的协作——是一组商定的行业标准,企业和个人开发人员可以采用这些标准来在构建软件时做出明智的安全决策。结合起来,这两个政策文件将有助于在软件安全方面取得更好的成果。
- GUAC 还证明了软件物料清单(SBOM) 日益增长的重要性。这个软件中使用的所有工件的正式列表降低了用户安全漏洞的风险,还帮助他们知道如何采取行动以及在发生漏洞时在哪里寻找漏洞。
- 最后需要明确的是,保证软件的所有第三方组件完整性的唯一方法是确保所有不是企业开发人员自己编写的代码都得到充分说明、未被篡改并且没有任何恶意代码。
参考链接:
https://www.nist.gov/itl/executive-order-14028-improving-nations-cybersecurity
https://security.googleblog.com/2022/10/announcing-guac-great-pairing-with-slsa.html
一文带你搞懂 Google 发布的新开源项目 GUAC的更多相关文章
- 【springcloud】一文带你搞懂API网关
作者:aCoder2013 https://github.com/aCoder2013/blog/issues/35 前言 假设你正在开发一个电商网站,那么这里会涉及到很多后端的微服务,比如会员.商品 ...
- 一文带你搞懂 Kafka 的系统架构(深度好文,值得收藏)
Kafka 简介 Kafka 是一种高吞吐.分布式.基于发布和订阅模型的消息系统,最初是由 LinkedIn 公司采用 Scala 和 java 开发的开源流处理软件平台,目前是 Apache 的开源 ...
- 一文带你搞懂 RPC 到底是个啥
RPC(Remote Procedure Call),是一个大家既熟悉又陌生的词,只要涉及到通信,必然需要某种网络协议.我们很可能用过HTTP,那么RPC又和HTTP有什么区别呢?RPC还有什么特点, ...
- 一文带你搞懂 JWT 常见概念 & 优缺点
在 JWT 基本概念详解这篇文章中,我介绍了: 什么是 JWT? JWT 由哪些部分组成? 如何基于 JWT 进行身份验证? JWT 如何防止 Token 被篡改? 如何加强 JWT 的安全性? 这篇 ...
- 从定义到AST及其遍历方式,一文带你搞懂Antlr4
摘要:本文将首先介绍Antlr4 grammer的定义方式,如何通过Antlr4 grammer生成对应的AST,以及Antlr4 的两种AST遍历方式:Visitor方式和Listener方式. 1 ...
- 一文带你搞懂 SSR
欲语还休,欲语还休,却道天凉好个秋 ---- <丑奴儿·书博山道中壁>辛弃疾 什么是 SSR ShadowsocksR?阴阳师?FGO? Server-side rendering (SS ...
- 一文搞懂Google Navigation Component
一文搞懂Google Navigation Component 应用中的页面跳转是一个常规任务, Google官方提供的解决方案是Android Jetpack的Navigation componen ...
- 一文带你读懂zookeeper在大数据生态的应用
一个执着于技术的公众号 一.简述 在一群动物掌管的世界中,动物没有人类聪明的思想,为了保持动物世界的生态平衡,这时,动物管理员-zookeeper诞生了. 打开Apache zookeeper的官网, ...
- 一文带你读懂什么是vxlan网络
一个执着于技术的公众号 一.背景 随着云计算.虚拟化相关技术的发展,传统网络无法满足大规模.灵活性要求高的云数据中心的要求,于是便有了overlay网络的概念.overlay网络中被广泛应用的就是vx ...
- 【项目实践】一文带你搞定Spring Security + JWT
以项目驱动学习,以实践检验真知 前言 关于认证和授权,R之前已经写了两篇文章: [项目实践]在用安全框架前,我想先让你手撸一个登陆认证 [项目实践]一文带你搞定页面权限.按钮权限以及数据权限 在这两篇 ...
随机推荐
- 还不会Traefik?看这篇文章就够了!
文章转载自:https://mp.weixin.qq.com/s/ImZG0XANFOYsk9InOjQPVA 提到Traefik,有些人可能并不熟悉,但是提到Nginx,应该都耳熟能详. 暂且我们把 ...
- 第一个Django应用 - 第七部分:自定义admin
Django的admin站点是自动生成的.高度可定制的,它是Django相较其它Web框架独有的内容,广受欢迎.如果你觉得它不够美观,还有第三方美化版xadmin.请一定不要忽略它,相信我,它值得拥有 ...
- 谣言检测(GACL)《Rumor Detection on Social Media with Graph Adversarial Contrastive Learning》
论文信息 论文标题:Rumor Detection on Social Media with Graph AdversarialContrastive Learning论文作者:Tiening Sun ...
- WPF开发经验-实现自带触控键盘的TextBox
一 引入 项目有个新需求,当点击或触碰TextBox时,基于TextBox的相对位置,弹出一个自定义的Keyboard,如下图所示: 二 KeyboardControl 先实现一个自定义的Keyboa ...
- C#-7 结构和枚举
一 什么是结构 结构是程序员定义的数据类型,有数据成员和函数成员,和类非常类似. 类是引用类型,而结构是值类型: 结构和类一样可以实现接口: 结构是隐式密封的,不能被派生: 结构类型的变量不能为nul ...
- acwing346 走廊泼水节 (最小生成树)
完全图就是每两个点都有直接相连的边. 模拟Kruskal算法的过程,每选择一条边加入时,他两端端点在同一个集合中就跳过,否则考虑合并两个集合,合并时需要增加的每条边的权值至少是edge[i]+1,这才 ...
- 『现学现忘』Git后悔药 — 32、revert撤销(一)
目录 1.Git的三种后悔药 2.revert命令原理 3.revert命令的使用 (1)移除某次提交的修改 (2)revert命令说明 1.Git的三种后悔药 在Git中后悔药有三种:amend.r ...
- Azure Kubernetes(AKS)部署及查看应用资源
简介 上一篇文章讲解了如何使用Azure DevOps持续部署应用到Azure Kubernetes上.但是部署是否成功?会不会遇到什么问题?项目运行中是否会出现问题?我们该怎么样查看这些问题,并且对 ...
- 虚拟机安装Linux系统的网络配置
1. 进入配置文件配置.如果不知道ifcfg 后的内容.使用ifconfig vi /etc/sysconfig/network-scripts/ifcfg-ens33 如果不知道网关怎样配置就找到这 ...
- C#实现生成Markdown文档目录树
前言 之前我写了一篇关于C#处理Markdown文档的文章:C#解析Markdown文档,实现替换图片链接操作 算是第一次尝试使用C#处理Markdown文档,然后最近又把博客网站的前台改了一下,目前 ...