Show HN: Run a GitHub Actions step in a gVisor sandbox
4 months ago
- #gVisor
- #GitHub Actions
- #Security
- 具有只读权限的GitHub Actions仍会收到缓存写入令牌,可能导致缓存污染问题
- 工作流中的步骤之间缺乏隔离性,因为它们都在同一台拥有root权限的虚拟机中运行
- 在仅配置只读权限的工作流中运行不可信代码,可能导致虚假的安全感
- 该GitHub Action通过在gVisor沙箱隔离环境中运行命令来降低风险
- 沙箱特性包括:类似ubuntu-24.04的根文件系统、对GITHUB_WORKSPACE的覆盖访问、以及对setup-*操作安装工具的只读访问
- 若设置'persist-workspace-changes'为'true',沙箱内对工作区的修改可能持久化到宿主机(但此操作不安全)
- 当检测到actions/checkout在工作区持久化认证令牌时,该操作会主动失败
- 使用此Action时,需在checkout步骤禁用凭证持久化,或设置'allow-checkout-credentials'为'true'(不推荐)
- 所有标签均采用GitHub不可变发布机制保障安全性
- 示例工作流展示如何在沙箱环境中运行:多版本Go测试、依赖项测试、staticcheck和govulncheck等操作