主要观点:近期 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安装typos,cargo 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提供反馈和建议。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。