O Que É um Build em Sandbox? Executando um Build em uma Caixa Trancada
Um build em sandbox executa dentro de um ambiente confinado onde seu acesso ao filesystem, à rede e ao host é deliberadamente restrito ao que ele legitimamente precisa.
Um build executa muito código não confiável: scripts de instalação de dependências, ferramentas baixadas, artifacts gerados. Um build em sandbox parte do princípio de que esse código pode se comportar mal e o cerca. O sandbox limita o que o build pode ler, escrever e alcançar, então mesmo que uma etapa se torne hostil, ela esbarra em paredes em vez de circular livremente.
O que um sandbox restringe
- Acesso ao filesystem, limitado ao workspace.
- Acesso à rede, restrito ou filtrado.
- Chamadas de sistema e privilégios disponíveis ao processo.
- Acesso ao host e a outros jobs.
Por que builds precisam de sandbox
Cada dependência que você instala e ferramenta que você executa roda com os privilégios do seu build. Um script post-install malicioso, um pacote typosquatted, uma action envenenada, qualquer um pode tentar ler secrets ou telefonar para casa. Um sandbox limita até onde esse código hostil consegue chegar.
Sandbox e builds herméticos
O sandbox combina naturalmente com builds herméticos, que proíbem acesso não declarado à rede e ao filesystem. Um build hermético dentro de um sandbox não consegue buscar silenciosamente uma dependência maliciosa em tempo de build, porque o sandbox bloqueia o acesso que o ataque precisaria.
Camadas de confinamento
O sandbox costuma ser em camadas: um container limita o processo, um usuário restrito limita os privilégios, a filtragem de egress limita a rede e uma VM isolada limita o acesso ao host. Cada camada é mais uma parede que o código hostil precisa escalar.
Sandbox em runners gerenciados
Alcançar um sandbox de verdade na sua própria frota significa configurar containers, namespaces e regras de rede com cuidado. Runners gerenciados que executam cada job em um ambiente isolado, efêmero e confinado (como o Latchkey) fornecem o sandbox como uma propriedade embutida, em vez de algo que você monta.
Principais conclusões
- Um build em sandbox executa em um ambiente confinado com acesso restrito.
- Ele limita até onde dependências ou scripts maliciosos podem chegar.
- O sandbox se combina em camadas com builds herméticos, isolamento e filtragem de egress.