- microsandbox oferece execução segura de código de usuários não confiáveis e de IA com isolamento no nível de máquina virtual
- Supera limitações de VMs e contêineres tradicionais com inicialização ultrarrápida (menos de 200 ms), compatibilidade com contêineres OCI e self-hosting
- Maximiza a eficiência de integração para desenvolvedores e ferramentas de IA com SDKs para várias linguagens de programação e ferramentas de CLI
- É adequado para uma ampla variedade de casos de uso em IA e desenvolvimento, como execução de código, ambientes de desenvolvimento, análise de dados, automação web e hospedagem de apps
- Todo o trabalho pode ser gerenciado por projeto, com suporte a instalação global no sistema, manutenção de sessão e ambientes de execução isolados
- O microsandbox é uma plataforma open source self-hosted projetada para a execução segura de código de usuário não confiável ou código de IA (por exemplo, agentes de IA, código enviado por usuários e código experimental)
- A execução local tradicional tem desvantagens como vulnerabilidades de segurança; contêineres têm isolamento incompleto por compartilharem o kernel; VMs tradicionais têm boot lento; e a nuvem carece de flexibilidade
- O microsandbox oferece isolamento real de processos baseado em microVMs (máquinas virtuais ultraleves), ao mesmo tempo em que entrega a mesma velocidade de inicialização e experiência amigável para desenvolvedores dos contêineres
- Ele se diferencia por inicializar em menos de 200 ms após a configuração inicial do ambiente, compatibilidade com imagens de contêiner (OCI), integração de IA baseada em MCP e controle sobre o uso da própria infraestrutura
Resumo dos principais recursos
- Bulletproof Security: com base em microVMs, oferece segurança no nível de máquina virtual que bloqueia na origem vulnerabilidades de contêineres, como escape de kernel
- Instant Startup: o tempo de boot inicial é inferior a 200 ms, permitindo início de execução de código extremamente mais rápido do que VMs tradicionais
- Self-Hosting & Full Control: pode ser implantado e operado diretamente em servidores locais ou próprios, sem dependência de nuvem
- Compatibilidade com OCI: pode executar imagens de contêiner padrão diretamente, mantendo compatibilidade com fluxos de trabalho existentes de Docker e contêineres
- AI-Ready (suporte a MCP): pode ser integrado e expandido naturalmente com IAs baseadas em MCP, como Claude e Agno
Fluxo rápido de desenvolvimento e execução
1. Iniciar o servidor
- É possível iniciar o servidor do microsandbox e configurar o ambiente de desenvolvimento com comandos simples
- O servidor também atua como servidor MCP, podendo ser chamado diretamente por ferramentas de IA como Claude
2. Instalar o SDK
- O SDK do microsandbox está disponível para linguagens principais como Python, JavaScript e Rust
- Com suporte adicional a várias outras linguagens (expansibilidade de SDK), amplia as possibilidades de integração entre desenvolvedores e IA
3. Executar código com segurança
- É possível escolher e executar separadamente ambientes sandbox para várias linguagens, como Python, JavaScript e Rust
- Cada sandbox é um ambiente de execução independente, garantindo a segurança do sistema mesmo ao executar código externo
- Exemplos com SDK facilitam a implementação de processos assíncronos e automatizados de execução segura de código
Gerenciamento de ambiente baseado em projeto
- O Sandboxfile (arquivo de configuração) é criado e gerenciado por projeto, em um fluxo semelhante ao de gerenciadores de pacotes amigáveis para desenvolvedores
- É possível adicionar múltiplos ambientes sandbox ao projeto (por exemplo, linguagens ou configurações diferentes) e gerenciá-los por versão e ambiente
- Ao executar sandboxes do projeto, arquivos e alterações de instalação são preservados automaticamente no diretório local (
./menv)
- Há uma opção de ativação de sandbox temporário (com exclusão completa de todo o histórico e estado ao encerrar a sessão, mantendo o isolamento)
Instalação global de sandboxes no sistema
- Ambientes ou apps usados com frequência podem ser instalados e registrados como executáveis separados
- No terminal, é possível entrar diretamente no ambiente sandbox com um único comando, mesmo sem o caminho do projeto
- É possível nomear cada sandbox e operar várias configurações diferentes, com o estado da sessão também sendo mantido
Principais casos de uso
Execução de código de IA e ambiente de desenvolvimento
- Quando a IA automatiza de fato build, execução e depuração de código-fonte, o microsandbox fornece rapidamente um ambiente de desenvolvimento isolado e reproduzível
- É adequado para automação de código, como criação de webapps, correção de bugs e prototipagem
Análise de dados
- Bibliotecas importantes de ciência de dados, como NumPy, Pandas e TensorFlow, podem ser usadas com segurança dentro do sandbox
- É ideal para fluxos de análise que exigem proteção de dados pessoais ou sensíveis
Agentes de navegação web
- A IA pode realizar com segurança tarefas automatizadas como navegação em sites, envio de formulários, login e coleta de dados
- É útil para casos como coleta de conteúdo, comparação de preços e testes automatizados
Hospedagem instantânea de apps
- Ferramentas, demos, calculadoras e visualizações criadas por usuários podem ser compartilhadas imediatamente como serviços
- Cada app roda em um espaço isolado separado, com suporte à criação e encerramento rápidos de ambientes temporários
Estrutura do sistema
- O usuário chama o SDK do microsandbox a partir de sua própria lógica de negócio
- Solicita ao processo de servidor (
microsandbox server) a entrega e execução de código não confiável
- Dentro do servidor, cada solicitação de execução é processada em uma microVM separada, isolada das demais
- Cada microVM pode configurar ambientes independentes de Python/Node
Política open source
- Distribuído como open source sob a Apache License 2.0
1 comentários
Comentários do Hacker News
Desse jeito, contêineres simples baseados só em permission ou jail ficariam perto de 0%, Docker acima de 50% e o Microsandbox talvez perto de 100%
Isso talvez ajudasse a responder aquela curiosidade instintiva do tipo “por que não usar simplesmente jail?”
Também seria divertido “provar” qual contêiner chega a 100% colocando contêineres honeypot na web aberta e pagando recompensa em dinheiro ou cripto para quem conseguir hackeá-los
Com vulnerabilidades recentes como Rowhammer e Spectre, talvez seja preciso redefinir a própria segurança da computação convencional e em nuvem
No fim, a motivação é obter insights sobre como desenvolver contêineres 100% seguros sem emulação perfeita e como tornar seguros os serviços básicos do SO
Se existir uma vulnerabilidade de LPE (Local Privilege Escalation) no kernel, isso leva diretamente a escape de contêiner
Normalmente isso não aparece rotulado como escape de contêiner, mas na indústria, se há LPE no kernel, entende-se naturalmente que a segurança de contêineres foi quebrada
A alternativa mais visível é restringir fortemente o uso de syscalls (API) dentro do sandbox, mas nesse caso o contêiner deixa de ser uma plataforma de uso geral e surge o incômodo de ter que ajustar tudo de novo para cada caso
Por isso há quem considere a virtualização necessária
A menos que apareça um SO seguro em memória e robusto, esse é o único caminho, e mesmo que esse SO apareça, ainda não está claro se ele será mais rápido do que rodar uma MicroVM sobre Linux como host
No Docker ou no systemd, o nível de segurança muda muito dependendo das várias opções de configuração
Acho que precisamos de um grande conjunto de dados experimental mostrando quais configurações levam a quais níveis de risco/segurança
No mundo real, os próprios ambientes de produção já são alvo de ataques de inúmeros hackers
Esse tipo de modelo de incentivo pode ser divertido, mas o valor real como alvo de invasão e o incentivo financeiro provavelmente seriam muito menores do que no ambiente real
Por exemplo, no Windows, ao executar uma VM, é preciso esperar vários segundos até qualquer coisa começar a rodar
Quando digo “não executa nada”, quero dizer antes mesmo de qualquer programa de usuário, antes de a primeira instrução do firmware sequer começar
Há até um intervalo longo de espera antes de limpar o arquivo de disco virtual ou mesmo antes de a janela da VM aparecer
Queria entender o motivo
Mas com um kernel padrão, há muitas operações que consomem tempo, como timeout ou polling
Em sistemas UEFI/CSM, preparar o hardware virtual e inicializar o ambiente do sistema também leva um bom tempo
Suspeita-se que o WSL2 use um kernel especial para remover overhead desnecessário
Inicialização de vários serviços do SO, preparação do sistema de arquivos, preparação de cache e configuração de rede também influenciam
No modo tradicional, bootloader → initramfs → SO principal são todos carregados separadamente
Para reduzir o tempo de boot ao extremo, usa-se uma abordagem como a do Amazon Firecracker, que carrega diretamente na memória uma imagem de VM já pré-inicializada
Introdução ao Firecracker MicroVM
No Windows, a velocidade de boot também varia conforme o hipervisor usado, como o HyperV
O UEFI do HyperV é bem lento, e muitas distribuições Linux não oferecem kernels mínimos otimizados
No caso do VirtualBox, o fenômeno perguntado aparece de forma bem clara, e versões antigas não tinham esse atraso
Talvez não seja uma limitação essencial de “VM tradicional”, mas um problema daquele software específico
Em geral, VMs ficam lentas porque emulam até elementos desnecessários
Se for possível criar um hipervisor focado em velocidade de boot e ignorar compatibilidade legada, dá para inicializar em 125 ms, como o Firecracker
Se a alocação for feita em unidades de 1 GB, isso pode ficar dramaticamente mais rápido
O Windows provavelmente tem algo parecido
A pessoa relata experiência de acesso em 10 segundos via XRDP a um Ubuntu 22 GUI no Hyper-V e em menos de 3 segundos via SSH a um Ubuntu 22 Server
Ainda assim, a ideia básica em si parece extremamente interessante
Em breve deve haver um método oficial de distribuição
O objetivo foi tornar tão fácil criar microVMs quanto contêineres Docker
Se houver dúvidas, perguntas são bem-vindas a qualquer momento
Às vezes recebo erros como “Sandbox is not started. Call start() first”
O padrão da documentação é “async with”, mas no meu caso eu gostaria de instanciar uma vez por classe e continuar reutilizando em vários métodos
Queria saber se existe alguma abordagem recomendada ou best practice para isso
Tenho curiosidade sobre como a rede funciona
Por exemplo, dá para restringir a microVM para que ela só consiga acessar IPs públicos?
Ou seja, dá para impedir que a microVM acesse IPs de rede local?
Fiquei curioso se a funcionalidade embutida de MicroVM expõe uma interface de runtime OCI
Queria saber se também pode ser usado no Docker/Podman em vez de runc/crun
Como ele consegue ser tão rápido?
Quais são os trade-offs em relação a uma VM tradicional?
Existe alguma possibilidade de comprometer o isolamento da VM?
Dá para abrir GUI?
A ideia é ser o novo Vagrant?
Como funcionam entrada e saída de dados?
Se entendi direito, dá para subir até backends em tempo real como se fossem servidores com isso?
A lista de linguagens suportadas impressiona lista de linguagens suportadas pelo microsandbox
Seria bom se o guia de contribuição fosse mais detalhado guia de contribuição
No passado, a experiência era de VMs lentas e pesadas, o que era bem sofrido
Gostaria de comparar com o Orbstack no macOS, especialmente com a função “Linux machines”
Fiquei curioso se o Orb reutiliza apenas uma VM
Inicializar VM em milissegundos é uma melhoria muito importante
Mas também é possível implementar algo parecido com CloudHypervisor e Firecracker
Onde os contêineres ganham das VMs é no desempenho em runtime
O que deixa VMs lentas é a emulação de dispositivos de E/S
Especialmente em workloads de agentes de IA, esse overhead provavelmente será percebido no nível da aplicação
Queria saber como pretendem resolver as questões de desempenho
O Microsandbox usa libkrun, e o libkrun usa virtio-mmio para block, vsock e virtio-fs a fim de reduzir overhead de desempenho
O Firecracker é essencialmente parecido, e o projeto E2B usa Firecracker para lidar com workloads de IA agentic
No momento, além de questões de sistema de arquivos, não há grandes planos de melhoria de desempenho
Basta executar o comando
mountpara entenderTudo aquilo que deveria ficar escondido acaba aparecendo, e isso reduz a utilidade dos comandos simples de antes
Um problema ainda mais sério é que o usuário pode mexer diretamente nas estruturas internas de dados
É como se estivesse dando ao usuário permissões de peek e poke em tudo
A ideia de contêiner em si é boa, mas, sem um redesenho do kernel, o modelo atual é só um remendo
Você pode explicar por que executar
mountdentro do contêiner seria tão grave?Os mounts do host ficam realmente expostos ao contêiner?
Eu achava que isso normalmente só era possível quando algo como um volume é ligado explicitamente ao contêiner
Também me diverti bastante com CodeSandbox SDK, E2B etc., então fiquei curioso sobre as diferenças entre eles e sobre a direção futura do projeto
Também queria saber se usam Firecracker internamente
A proposta é self-hosted
Ele facilita rodar sandboxes baseados em microVM localmente (Linux, macOS, Windows em breve), como o E2B, e depois migrar isso para produção com facilidade
Em vez de Firecracker, usa libkrun
Tenho curiosidade sobre questões de manutenção de soluções microVM e sobre se auditorias de segurança continuarão sendo feitas com regularidade
Como a configuração de Firecracker e de imagens OCI é difícil, já acho ótimo surgir uma alternativa
Kata container também é difícil de lidar
A maior vantagem dos contêineres é poder rodá-los rapidamente sem precisar especificar recursos concretos como tamanho de disco ou número de núcleos de CPU
Também dá para comparar o estado com a image e o diff para ver que mudanças um programa fez no sistema enquanto rodava
Seria ótimo ter sandboxing mais seguro com VMs minúsculas que mantivessem esse nível de praticidade
Às vezes também uso bwrap, mas não é uma ferramenta adequada para linha de comando
Também é possível usar templates ou geração remota/automática
O microsandbox me dá esperança de conseguir isolar esse tipo de código com segurança
Até o atraso de boot de 200 ms pode ser resolvido com um pool de sandboxes ao vivo
Como há compatibilidade com OCI, dá para fornecer até o ambiente completo de sandbox
Gostaria de saber se esse é mesmo um bom caso de uso e se não existe alguma alternativa melhor
O engine runsc pode ser executado até dentro de Docker/Docker Desktop
Porém, no gVisor, o desempenho em paralelismo de rede e afins fica em torno de 1/3 do Docker
Como não encontrei alternativa melhor, acabei criando o microsandbox