首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Homebrew构建来源探秘 - 实现可验证的软件供应链安全

Homebrew构建来源探秘 - 实现可验证的软件供应链安全

原创
作者头像
qife122
发布2025-08-13 12:21:34
发布2025-08-13 12:21:34
800
举报

Homebrew快速回顾

Homebrew是macOS和Linux的开源包管理器,其核心是homebrew-core仓库,包含7000多个精选开源软件包。Homebrew使用预编译的二进制分发文件(称为"bottle")来加速安装过程并确保一致性。

当新公式(描述软件包构建方式的机器可读文件)被更新或添加到homebrew-core时,Homebrew的CI系统(通过BrewTestBot编排)会自动触发构建这些bottle的过程。构建成功后,bottle会被上传到GitHub Packages,然后更新相关公式引用。

构建来源验证

构建来源提供了密码学可验证的证据,证明软件包确实是由预期的"构建身份"构建的,而不是被特权攻击者篡改或秘密插入的。对于Homebrew来说,这个"构建身份"是GitHub Actions工作流。

每个bottle的构建来源都包含有价值的元数据,如GitHub所有者、仓库、触发工作流的分支、触发事件以及工作流运行的git提交等。这些数据被封装在机器可读的in-toto声明中。

我们的实现方案

我们基于GitHub的新工件验证功能实现了Homebrew的构建来源验证。这为我们提供了当前和未来所有bottle构建的来源证明,但遗留问题是如何处理大量已有的旧bottle。

我们采用了"回填验证"的方案:

  1. 首先检查是否有来自上游仓库的构建来源
  2. 如果没有,则检查是否有在指定截止日期前的回填验证
  3. 如果两者都不存在,则产生硬性失败

当前验证方法

目前该功能处于早期测试阶段,但冒险的早期采用者可以通过两种方式尝试:

  1. 使用第三方tap提供的专用brew verify命令:brew update brew tap trailofbits/homebrew-brew-verify brew verify --help brew verify bash
  2. 通过设置环境变量在brew install时验证:brew update export HOMEBREW_VERIFY_ATTESTATIONS=1 brew install cowsay

展望未来

我们计划将验证功能直接集成到brew中作为开发者命令。此外,我们也在探索为第三方仓库(taps)添加构建来源验证,并计划进一步实现源代码来源验证。

最后,我们要感谢Homebrew维护者在此过程中的开发和审查,以及GitHub Package安全团队和Alpha-Omega的支持,共同推动更安全、更可靠的软件供应链建设。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Homebrew快速回顾
  • 构建来源验证
  • 我们的实现方案
  • 当前验证方法
  • 展望未来
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档