GitHub Actions Attest:CI/CD供应链安全缺失的那一环

GitHub May 2026
⭐ 116
来源:GitHub归档:May 2026
GitHub Actions 推出原生工件证明操作,利用 OIDC 实现无需密钥管理的防篡改溯源。此举填补了 CI/CD 安全栈的关键空白,但也引发了对自托管运行器支持及生态锁定的质疑。

GitHub Actions 正式推出 `actions/attest`,这是一款第一方操作,旨在直接在 CI/CD 流水线中为构建工件生成加密证明。该操作利用 GitHub 的 OpenID Connect(OIDC)身份系统,将每个工件与产生它的特定工作流运行绑定,从而创建一条可验证的保管链,且无需开发者管理或存储签名密钥。这是软件供应链安全领域迈出的重要一步,填补了 GitHub Actions 长期以来缺乏原生、集成化工件签名机制的空白。该证明采用 in-toto 语句格式,与更广泛的 SLSA(软件工件供应链级别)框架兼容,并可通过 `gh attestation verify` 等工具进行验证。

技术深度解析

`actions/attest` 操作基于一个简单但强大的原则:将构建工件的加密摘要与一个签名令牌绑定,该令牌证明该工件是由特定的 GitHub Actions 工作流运行产生的。在底层,该操作使用 GitHub 的 OIDC 提供者来获取一个签名的 JWT(JSON Web Token),其中包含关于工作流运行的声明——例如仓库、分支、提交 SHA 和工作流名称。然后,这个 JWT 被用来创建一个 in-toto 证明,这是一种用于描述软件工件来源的标准化格式。

该证明包括:
- 主体(Subject):被证明工件的摘要(SHA256)。
- 谓词(Predicate):关于工件如何构建的声明,包括工作流运行 ID、触发事件和构建者身份。
- 签名(Signature):对证明的加密签名,使用 OIDC 令牌作为签名身份生成。

验证过程使用 `gh attestation verify`,它会联系 GitHub 的证明 API 来验证签名,并检查证明的声明是否与预期的工作流运行匹配。这消除了对单独的公钥基础设施(PKI)或密钥管理系统的需求。

对于希望检查代码的开发者,该操作在 GitHub 上的 `actions/attest` 仓库是开源的(116 颗星,日增 +0)。该仓库包含操作的 TypeScript 源代码,以及测试和文档。底层的验证逻辑也可以在 GitHub CLI(`gh`)中找到,该 CLI 是用 Go 编写的。

性能基准测试

| 指标 | 值 |
|---|---|
| 平均构建时间增加 | 5-10 秒 |
| 证明大小 | ~2-5 KB |
| 验证延迟(gh CLI) | < 1 秒 |
| 支持的工件类型 | 任何文件(二进制、容器镜像、SBOM 等) |

数据要点: 性能开销极小,使得证明即使对于延迟敏感的流水线也是可行的。证明体积小,确保它可以与工件一起存储而不会产生显著的存储成本。

该操作目前仅支持 GitHub 托管的运行器,因为 OIDC 令牌是由 GitHub Actions 环境自动预配的。对于自托管运行器,管理员必须配置运行器以从 GitHub 的 OIDC 提供者请求 OIDC 令牌,这需要网络访问 `https://token.actions.githubusercontent.com` 和适当的防火墙规则。对于气隙环境或高度受限的环境来说,这是一个不小的障碍。

关键参与者与案例研究

这里的主要参与者是 GitHub(微软),它正在将 `actions/attest` 定位为 Sigstore 和 cosign 等第三方签名工具的原生替代方案。由 Linux 基金会开发并得到 Google、Red Hat 等支持的 Sigstore,一直是开源软件签名的事实标准。Cosign 是 Sigstore 项目的一部分,允许使用由 Fulcio(证书颁发机构)和 Rekor(透明日志)支持的无密钥签名来签名容器镜像和 blob。

比较:actions/attest vs. Sigstore/cosign

| 特性 | actions/attest | Sigstore/cosign |
|---|---|---|
| 密钥管理 | 无(基于 OIDC) | 无(通过 Fulcio 实现无密钥) |
| 透明日志 | GitHub 的证明 API | Rekor(公开、不可变) |
| 支持的格式 | in-toto 证明 | in-toto、DSSE、原始签名 |
| 验证工具 | `gh attestation verify` | `cosign verify` |
| 生态系统锁定 | 与 GitHub 紧密耦合 | 平台无关 |
| 自托管支持 | 有限(需要 OIDC 配置) | 完整(任何 CI/CD 系统) |

数据要点: actions/attest 为仅限 GitHub 的工作流提供了卓越的集成,但对于多平台或混合环境,Sigstore/cosign 仍然是更可移植的选择。

一个值得注意的早期采用者是 OpenSSF(开源安全基金会),它一直在倡导 SLSA 合规性。`actions/attest` 操作通过提供签名的来源证明,直接支持 SLSA 构建级别 2。Google 和 Chainguard 等公司也一直在推动在其自身的 CI/CD 系统中采用类似的证明机制。

行业影响与市场动态

`actions/attest` 的推出是对日益增长的监管和行业对软件供应链安全压力的直接回应。美国关于网络安全的行政命令(EO 14028)和欧盟《网络弹性法案》都要求关键软件提供软件来源证明和 SBOM。GitHub 此举使开发者无需额外工具即可更轻松地合规。

市场采用预测

| 年份 | 估计使用证明的 GitHub Actions 工作流百分比 |
|---|---|
| 2025 | 5-10%(早期采用者) |
| 2026 | 20-30%(主流,由合规性驱动) |
| 2027 | 50%+(公共仓库的默认设置) |

数据要点: 采用率可能会遵循合规性驱动的曲线,一旦主要云提供商或政府机构强制要求采购时提供证明,采用率将显著上升。

该操作还威胁到了第三方签名工具的商业模式。

更多来自 GitHub

MinerU:开源神器,将混乱PDF炼成LLM的黄金数据AI行业长期隐藏着一个尴尬的秘密:再强大的模型,其能力上限也取决于输入数据的质量。尽管GPT-4o、Claude 3.5等前沿LLM展现出惊人的推理能力,但在企业实际应用中,它们常常因为无法可靠地提取和结构化PDF、PPT和扫描文档中海量信一统天下:AI-Setup如何终结AI编程工具配置碎片化开源项目caliber-ai-org/ai-setup迅速走红,上线一天内GitHub星标数突破1000,暴露出AI辅助开发领域一个深层次的需求缺口。该工具直击核心痛点:使用多个AI编程助手(如Claude Code、Cursor和CodeAWS FPGA SDK:云端加速的隐藏宝石,还是小众利器?aws/aws-fpga 仓库是 AWS 官方开源的 FPGA 加速应用开发与部署工具包,专为 EC2 F1 实例设计。它提供了硬件开发套件(HDK)和软件开发套件(SDK),封装了 Xilinx FPGA 工具链,使开发者能够为金融风险建查看来源专题页GitHub 已收录 2070 篇文章

时间归档

May 20262275 篇已发布文章

延伸阅读

Zizmor:专治GitHub Actions安全顽疾的静态分析利器一款名为Zizmor的开源静态分析工具正迅速走红,它能自动检测GitHub Actions工作流中的安全漏洞与配置错误。上线数日即斩获近5000颗GitHub星标,这款工具将代码级安全审查带入了长期被忽视的CI/CD管道YAML文件领域。Harden-Runner:为GitHub Actions量身打造的EDR,彻底改写CI/CD安全规则Step Security推出的Harden-Runner,将端点检测与响应(EDR)能力直接注入GitHub Actions运行器,实时监控网络出口、文件完整性与进程活动。这款开源工具已在GitHub上收获超过1100颗星,正迅速成为开发Rust重写供应链安全:In-Toto-rs为CI/CD带来内存安全长期作为Python标准用于验证软件供应链完整性的in-toto框架,如今迎来了基于Rust的原生版本。In-toto-rs承诺为CI/CD流水线、容器签名和审计追踪提供内存安全与更高性能,但该项目仍处于早期阶段,社区成熟度有限。In-Toto: The Open Source Framework That Could Save Software Supply ChainsIn-toto, a CNCF-incubated open source framework for verifying software supply chain integrity, is gaining traction as a

常见问题

GitHub 热点“GitHub Actions Attest: The Missing Link in Supply Chain Security for CI/CD”主要讲了什么?

GitHub Actions has introduced actions/attest, a first-party action designed to generate cryptographic attestations for build artifacts directly within CI/CD pipelines. The action l…

这个 GitHub 项目在“How to use actions/attest with self-hosted runners”上为什么会引发关注?

The actions/attest action operates on a simple but powerful principle: bind a cryptographic digest of the build artifact to a signed token that proves the artifact was produced by a specific GitHub Actions workflow run.…

从“actions/attest vs cosign vs Sigstore comparison”看,这个 GitHub 项目的热度表现如何?

当前相关 GitHub 项目总星标约为 116,近一日增长约为 0,这说明它在开源社区具有较强讨论度和扩散能力。