Hasty Briefsbeta

双语

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等操作