将 Dependabot 武器化:其最精妙的入侵请求

主要观点:GitHub 的 Dependabot 可能成为不知情的帮凶,通过“Confused Deputy”攻击可被诱骗合并恶意代码,甚至可通过精心设计的分支名实现命令注入并绕过分支保护规则,还披露了两种新的攻击技术(TTP),同时介绍了如何利用这些漏洞进行攻击以及如何保护自己。
关键信息

  • “Confused Deputy”问题:攻击者可利用 Dependabot 触发的工作流,通过一系列操作让其合并恶意代码,如 fork 仓库、添加恶意负载等。
  • 依赖注入攻击:通过恶意构造 Git 分支名可实现注入攻击,介绍了两种独特的技巧(合并冲突探戈和@dependabot merge 洗牌)。
  • 绕过分支保护:攻击者可利用内容写入权限绕过分支保护规则,通过 Personal Access Token 或 GITHUB_TOKEN 发送@dependabot merge 命令。
  • 保护措施:可使用 BoostSecurity 的 Build Pipeline 静态分析扫描器检测漏洞,谨慎使用 GitHub 上下文变量,确保 Dependabot 的分支也受保护,可使用一些社区 Actions 更安全地处理 Dependabot 合并。
    重要细节
  • Dependabot 工作原理:通过.github/dependabot.yml 文件配置,定期扫描仓库,发现过时依赖后创建分支并打开 Pull Request。
  • 攻击步骤详解:包括各种操作的具体流程和细节,如制造合并冲突、切换默认分支等。
  • 限制和注意事项:某些字符在分支名中受限,如#会导致 Dependabot 崩溃,一些工具可用于特定场景,如 ActionsTOCTOU 工具。
  • 相关示例仓库:MessyPoutine 仓库中包含可利用的 deputy confusion 示例工作流。

总结:介绍了 GitHub Dependabot 相关的安全漏洞及攻击方式和保护措施,强调了软件供应链安全的重要性。

阅读 32
0 条评论