GitHub Actions 正式支持工作流锁定文件功能,Python 核心开发者 Hugo van Kemenade 撰文介绍了这一供应链安全防护新方案。此前,由于 GitHub Actions 依赖从 Git 仓库获取,标签可被篡改,攻击者可将原本安全的标签指向恶意代码,形成供应链攻击,因此社区普遍建议在 workflow 中固定完整的 commit SHA,但这种方式牺牲了可读性和维护体验。新的 gh-actions-lock 是 gh CLI 的官方扩展工具,在仓库中运行后可自动将 workflow 中的动作改回 vX.Y.Z 版本标签,同时在 .github/workflows/actions.lock 生成锁定文件,记录每个依赖对应的 commit 哈希、仓库所有者 ID 和仓库 ID 等验证信息,兼顾可读性与可校验性。依赖管理工具 Renovate 和 Dependabot 均已支持锁定文件,周期性依赖更新时会同步更新锁定内容。GitHub 还建议在 CI 中独立运行验证任务,确保锁定文件与 workflow 保持同步且未被篡改,作者演示了在轻量级 ubuntu-slow 运行器上执行 gh actions-lock –verify 的做法。安全检查工具 zizmor 从 v1.32.0 起支持锁定文件,替代了此前建议的哈希固定检查方式。目前 CPython、Pillow、python/release-tools 等知名 Python 基础设施项目已通过 PR 率先采用该方案,生态落地速度较快。
事件分析
核心观点:锁定文件将供应链安全从开发者的个人纪律升级为机器可校验的工程规范,可读性与安全性首次兼得。
原文链接:Hacker News

评论前必须登录!
立即登录 注册