看我如何在30分钟内获得homebrew仓库的访问权限
字数 1282 2025-08-29 08:32:30

Homebrew仓库访问权限获取分析报告

漏洞概述

本报告详细分析了2018年披露的一个Homebrew安全漏洞,攻击者能够在30分钟内获取对Homebrew核心仓库的提交权限。该漏洞源于Jenkins实例中暴露的GitHub API令牌,可能导致供应链攻击风险。

漏洞发现过程

初始侦察

  1. 目标选择:攻击者选择Homebrew作为目标,因其是macOS上广泛使用的包管理器
  2. 攻击动机:受近期NPM、RubyGems和Gentoo安全事件启发,关注包管理工具的安全风险

信息收集阶段

  1. 使用gitrob工具:尝试通过gitrob(开源情报工具)查找Homebrew组织成员泄漏的凭证,但未获有效信息
  2. 审查HackerOne报告:通过https://hackerone.com/Homebrew 查看已披露问题
  3. 发现Jenkins实例:识别出公开的Jenkins实例(https://jenkins.brew.sh)

关键发现

  1. 构建配置分析:发现"Homebrew Bottles"项目向BrewTestBot/homebrew-core仓库进行认证推送
  2. 环境变量暴露:在Jenkins界面中发现"环境变量"链接,暴露了GitHub API令牌

漏洞验证

API令牌测试

curl https://api.github.com/user/repos -u $GITHUB_API_TOKEN:x-oauth-basic | jq '.[] | {repo: .full_name, permissions: .permissions}'

返回结果显示了令牌的权限范围:

  • BrewTestBot/homebrew-core: 管理员权限
  • Homebrew/brew: 推送权限
  • Homebrew/formulae.brew.sh: 推送权限
  • Homebrew/homebrew-core: 推送权限

实际利用测试

curl https://api.github.com/repos/Homebrew/homebrew-core/git/blobs -u $GITHUB_API_TOKEN:x-oauth-basic -d '{"content":"test"}' -H "Content-Type: application/json"

成功创建blob,验证了写入权限。

潜在影响分析

  1. 供应链攻击风险

    • Homebrew每月openssl安装量超过50万次
    • 攻击者可修改公式(formula)植入后门
    • 影响范围包括硅谷大型公司的员工
  2. 安全弱点

    • 无保护的master分支
    • 可进行快速更改(refs/heads/master)
    • brew update会立即传播恶意修改
  3. 行业性问题

    • 包管理系统普遍存在类似弱点
    • 凭证泄漏是互联网安全的薄弱环节
    • 供应链攻击是持续性威胁

修复与响应

  1. 公开披露:Homebrew在博客(https://brew.sh/2018/08/05/security-incident-disclosure/)公开事件
  2. GitHub审计:与GitHub合作审计,确认令牌未被恶意使用
  3. 安全改进:加强核心仓库的安全措施

防御建议

  1. 凭证管理

    • 避免在构建系统中存储高权限令牌
    • 使用最小权限原则配置访问令牌
    • 定期轮换API令牌
  2. 基础设施安全

    • 保护Jenkins等CI/CD系统的访问
    • 审查环境变量的暴露风险
    • 实施分支保护策略
  3. 监控与响应

    • 监控异常仓库活动
    • 建立快速响应机制
    • 进行定期的安全审计

总结

此案例展示了供应链攻击的潜在风险,以及凭证管理不善可能导致的严重后果。安全研究人员在30分钟内获取关键仓库的提交权限,突显了开源基础设施安全的重要性。建议所有包管理项目进行类似的安全审查,防止此类漏洞被恶意利用。

Homebrew仓库访问权限获取分析报告 漏洞概述 本报告详细分析了2018年披露的一个Homebrew安全漏洞,攻击者能够在30分钟内获取对Homebrew核心仓库的提交权限。该漏洞源于Jenkins实例中暴露的GitHub API令牌,可能导致供应链攻击风险。 漏洞发现过程 初始侦察 目标选择 :攻击者选择Homebrew作为目标,因其是macOS上广泛使用的包管理器 攻击动机 :受近期NPM、RubyGems和Gentoo安全事件启发,关注包管理工具的安全风险 信息收集阶段 使用gitrob工具 :尝试通过gitrob(开源情报工具)查找Homebrew组织成员泄漏的凭证,但未获有效信息 审查HackerOne报告 :通过https://hackerone.com/Homebrew 查看已披露问题 发现Jenkins实例 :识别出公开的Jenkins实例(https://jenkins.brew.sh) 关键发现 构建配置分析 :发现"Homebrew Bottles"项目向BrewTestBot/homebrew-core仓库进行认证推送 环境变量暴露 :在Jenkins界面中发现"环境变量"链接,暴露了GitHub API令牌 漏洞验证 API令牌测试 返回结果显示了令牌的权限范围: BrewTestBot/homebrew-core: 管理员权限 Homebrew/brew: 推送权限 Homebrew/formulae.brew.sh: 推送权限 Homebrew/homebrew-core: 推送权限 实际利用测试 成功创建blob,验证了写入权限。 潜在影响分析 供应链攻击风险 : Homebrew每月openssl安装量超过50万次 攻击者可修改公式(formula)植入后门 影响范围包括硅谷大型公司的员工 安全弱点 : 无保护的master分支 可进行快速更改(refs/heads/master) brew update会立即传播恶意修改 行业性问题 : 包管理系统普遍存在类似弱点 凭证泄漏是互联网安全的薄弱环节 供应链攻击是持续性威胁 修复与响应 公开披露 :Homebrew在博客(https://brew.sh/2018/08/05/security-incident-disclosure/)公开事件 GitHub审计 :与GitHub合作审计,确认令牌未被恶意使用 安全改进 :加强核心仓库的安全措施 防御建议 凭证管理 : 避免在构建系统中存储高权限令牌 使用最小权限原则配置访问令牌 定期轮换API令牌 基础设施安全 : 保护Jenkins等CI/CD系统的访问 审查环境变量的暴露风险 实施分支保护策略 监控与响应 : 监控异常仓库活动 建立快速响应机制 进行定期的安全审计 总结 此案例展示了供应链攻击的潜在风险,以及凭证管理不善可能导致的严重后果。安全研究人员在30分钟内获取关键仓库的提交权限,突显了开源基础设施安全的重要性。建议所有包管理项目进行类似的安全审查,防止此类漏洞被恶意利用。