主要观点:近期 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) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。