Skip to content
Latchkey

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.

Guias relacionados