Se uma ferramenta MCP executa código escolhido por um modelo que lê conteúdo não confiável, você tem execução remota de código com passos extras. A pergunta não é se vale isolar — é quanto isolamento comprar.
Três níveis, três custos
Contêiner padrão. Namespaces e cgroups. Barato, rápido, e compartilha o kernel do host. Serve para separar ferramentas entre si e limitar recurso, mas uma falha de kernel atravessa. Com seccomp restritivo, usuário não-root, sistema de arquivos somente leitura e sem capabilities, cobre a maior parte dos casos internos.
gVisor ou sandbox de syscall. Interpõe uma camada entre o processo e o kernel real, reduzindo drasticamente a superfície de syscall exposta. Custa latência de I/O e alguma incompatibilidade. É o meio-termo defensável quando a ferramenta processa arquivo enviado por terceiro.
microVM. Kernel próprio, isolamento de hardware, inicialização em dezenas de milissegundos. É o padrão de quem executa código de cliente arbitrário. Se a sua ferramenta roda código gerado pelo modelo, esse é o nível correto — e sai mais barato que o incidente.
Como escolher sem sobre-engenharia
- Ferramenta só de leitura sobre dado interno → contêiner endurecido basta.
- Ferramenta que processa arquivo externo (converter, extrair, parsear) → gVisor. Parsers são historicamente a origem de metade das RCEs.
- Ferramenta que executa código ou comando → microVM, descartada após cada tarefa.
O nível de isolamento deve seguir a origem da entrada, não a criticidade do dado de saída.
O que sandbox não resolve
Isolamento contém execução, não autorização. Um sandbox perfeito com uma credencial de escrita ampla dentro dele ainda deixa o agente apagar a tabela — legitimamente, pela API, sem tocar no kernel. É por isso que sandbox e menor privilégio de credencial são controles complementares, e o segundo costuma render mais.
E lembre da lição do ferramental de cliente: pesquisadores mostraram RCE em ferramenta de inspeção de MCP, ou seja, examinar um servidor suspeito comprometia a máquina de quem examinava. Sandbox também vale para a estação do desenvolvedor.