完成 GitHub 操作供应链攻击

主要观点:近期 GitHub Actions 再次发生安全事件,攻击者修改了tj-actions/changed-files动作,导致打印秘密到日志中,不仅最新版本,多数版本都受影响,即使用户明确固定版本也可能被攻击。
关键信息

  • 攻击者修改动作并打印秘密到日志。
  • 多数版本的tj-actions/changed-files受影响,如uses: tj-actions/changed-files@46等。
  • 缓解措施是将版本固定到明确的提交哈希,如uses: tj-actions/changed-files@6cb76d07bee4c9772c6882c06c37837bf82a04d3 # v46
  • 固定版本虽更安全但不指定具体版本,评论可能与实际版本不同。
  • 哈希也不能保证动作执行的代码相同,攻击者可能从其他位置拉取代码。
  • 作者开发了“just an installer”工具(jas),受构建系统启发,通过 SHA-256 哈希验证文件完整性。
  • 示例中使用jas安装typoscargo install命令可添加--debug减少编译时间,通过--gh-token避免速率限制,也可手动指定 URL 和哈希。
  • 正常 GitHub Actions 默认接收GITHUB_TOKEN避免速率限制,如JamesIves/github-pages-deploy-action@v4
  • 工具安装二进制文件速度快,如安装 ffmpeg,jas约 10 秒,sudo apt-get install -y ffmpeg约 25 秒。
    重要细节
  • 2023 年已讨论该事件,2024 年从 Sascha Mann 处得知缓解措施。
  • crates.io 不支持发布后修改文件,jas 每晚运行审计检查依赖的安全漏洞。
  • jas 依赖的clap等是知名 crate,希望早期发现问题。
  • 可在jas仓库的repository提供反馈和建议。
阅读 8
0 条评论