去年 11 月宣布与 Alpha-Omega 和 OpenSSF 合作,为 Homebrew 添加构建来源。如今,该工作的核心已上线并进入公共测试阶段,homebrew-core 开始对官方 Homebrew CI 中构建的所有瓶子进行加密证明,可通过brew verify
命令验证。这为 Homebrew 构建过程增加了透明度,降低了内部人员攻击威胁,但仍处于早期测试阶段,不建议普通用户开始验证。
Homebrew 概述:Homebrew 是 macOS 和 Linux 的开源包管理器,homebrew-core 是默认仓库,包含 7000 多个开源包,每年被下载数亿次,其核心功能是使用瓶子(预编译的二进制包),新公式更新会触发创建瓶子,瓶子构建后会上传到 GitHub Packages 供用户下载。Homebrew 的瓶子自动化提高了可靠性,减少了供应链风险,但仍存在攻击者可利用的漏洞,如上传恶意构建或替换瓶子及校验和。
构建来源:提供可加密验证的软件包构建证据,确保软件包由预期的“构建身份”构建且未被篡改。对于 Homebrew,“构建身份”是 GitHub Actions 工作流,构建来源包含重要的元数据,能强制攻击者公开其行为,减少攻击隐藏性。
实现方式:基于 GitHub 的新“artifact attestations”功能,为所有当前和未来的瓶子构建提供来源证明,但存在旧瓶子的问题,通过创建一组由不同仓库签名的“backfilled”构建证明来解决,验证时先检查上游仓库的证明,不存在则检查回溯签名,截止日期可增加额外保证。
验证来源:处于早期测试阶段,不建议普通用户尝试,冒险的早期采用者可通过专用的brew verify
命令或早期上游集成到brew install
中进行尝试,但存在一些注意事项,如依赖gh CLI
和 GitHub API 端点等,遇到问题可报告。
展望未来:目前关注 homebrew-core,未来也将为第三方仓库提供构建来源,还计划实现源来源证明,与 GitHub 的“artifact attestations”配合,期待进一步更新,感谢 Homebrew 维护者及相关人员的支持。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。