摘要
- 通过密码学验证的 GitHub 制品证明,会把制品摘要与一条有记录的构建来源绑定起来;它并不认证制品本身安全。
- 真正决定放行与否的是使用方策略:仓库、不可变工作流身份、提交或发布条件、环境、运行器信任边界中任何一项不符,都应拒绝部署。
- 私有仓库使用的 GitHub Sigstore 实例没有公共仓库所用的公开透明日志;这意味着可观察性不同,并不能单独证明其机制较弱。
签名有效,部署仍应被拒绝
设想一扇部署闸门收到一幅容器镜像。签名有效,摘要相符,来源声明也没有被篡改。然而闸门依然拒绝镜像:证明中记录的仓库不是获批仓库;外部复用工作流引用的是可移动标签,而非不可变身份;对应提交不在批准的发布线上;构建环境不对;或者执行任务的运行器不在可接受的信任边界内。
这种拒绝并非证明失效,恰恰说明证明被正确用于决策。
GitHub 把制品证明描述为用于确立构建来源的密码学签名声明。声明能够记录与制品关联的工作流、仓库、组织、环境、提交 SHA 以及触发事件,也可包含建立来源时所用 OpenID Connect 身份提供的其他信息。
构建流程通常先生成二进制文件或容器镜像,再执行证明步骤,并授予身份令牌与证明写入权限。对于二进制文件,证明绑定具体产物;对于容器镜像,完整名称与内容摘要把声明指向确定的镜像内容,而不是一个日后可能变化的标签。因此,使用方可以确认眼前的制品是否确实沿着声明所示的路径产生。
但“路径可验证”与“结果安全”并非一回事。证明不会判断源代码是否恶意或存在漏洞,不会判断依赖是否可靠,也不会评价构建指令是否合理。它同样不能证明执行机器从未遭到入侵。来源证明缩小了需要回答的问题,却没有替代代码审查、依赖治理、环境隔离或风险判断。
GitHub 对这一边界说得很明确:只生成证明、不验证证明,不会带来安全收益;证明也不保证制品安全。使用方必须自行制定标准、检查声明内容并作出风险决定。若验证器只检查签名是否真实,而不检查签名所描述的路线是否获准,最关键的控制就仍然缺席。
策略赋予来源证明实际意义
预期仓库与组织通常是第一层条件,但不能成为最后一层。同一个组织内,可以同时存在经过集中审查的发布工作流和控制强度完全不同的普通自动化。两者都可能具备生成有效证明的权限,却不应因此获得同等部署资格。
工作流身份必须不可变。GitHub 指出,调用外部复用工作流时,完整提交 SHA 是最安全的引用,因为它不会变化。分支会前进,标签可以移动。某份证明可能准确记录了工作流名称和引用,但该引用今天指向的内容已经不是当初审查过的版本。仅核对名称而不核对不可变身份,会把一部分构建定义留在准入控制之外。
提交、发布状态、触发事件与环境能够进一步收紧范围。生产策略可以要求制品必须来自已批准的发布提交,而不是正确仓库里的任意提交;也可以只接受受治理发布环境产生的制品,而不接受普通测试环境的结果。这些条件并不会因为签名存在而自动成立,它们必须由使用方明确规定。
运行器信任则是独立维度。GitHub 警告,自托管运行器并不保证每次任务都运行在短暂、洁净的机器上,不受信任的工作流代码可能造成持续性入侵。因此,有效证明不能证明某台运行器未被攻陷。声明能够提供构建身份的证据,策略还需另外判断哪些运行器组、机器条件或隔离方式可以被信任。
从记录走向强制执行
GitHub 文档给出了一种 Kubernetes 执行模式:部署 Sigstore Policy Controller,配置 GitHub 信任根和集群镜像策略,再在指定命名空间启用执行。控制器可在镜像获准进入集群之前验证证明,并拒绝不符合信任策略的制品。
这里的配置细节揭示了安全控制真正所在。只安装控制器而不配置策略,系统不会执行任何证明要求;即使策略存在,未启用的命名空间也不受约束。镜像匹配范围与豁免项同样会改变控制边界。组织“使用了证明”,不等于其所有部署都接受同样的来源标准,更不等于所有使用方都执行了策略。
公共与私有仓库之间还有可观察性差异。公共仓库的证明使用 Sigstore 公共实例,并写入任何人都可读取的不可变透明日志。私有仓库使用 GitHub 自有的 Sigstore 实例;该实例采用相同代码库,但没有公开透明日志,且只与 GitHub Actions 联合。这会影响外部主体独立查看记录的能力,但不能据此断言私有机制不安全。
现有一手资料没有披露全行业采用率、有效证明的拒绝频率或误放行率,也不能证明某次构建的运行器一定未被入侵。分析必须保留这些未知项,而不能用推测填补。
因此,正确做法是把证明验证当作准入控制:部署前必须确认预期仓库、不可变的工作流身份、获批提交或发布条件、指定环境,以及可接受的运行器信任边界。任何条件不同,都应拒绝制品,并保存一份说明具体不符项的拒绝回执。这样,拒绝不只是一次中断,而会成为可审计的控制证据。
来源
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance
