Visão Geral
Claude Code apresenta isolamento nativo em sandbox para fornecer um ambiente mais seguro para execução de agentes, reduzindo a necessidade de solicitações constantes de permissão. Em vez de pedir permissão para cada comando bash, o sandbox cria limites definidos antecipadamente onde Claude Code pode trabalhar com mais liberdade e risco reduzido. A ferramenta bash em sandbox usa primitivos de nível do SO para impor isolamento tanto de sistema de arquivos quanto de rede.Por que o isolamento em sandbox é importante
A segurança tradicional baseada em permissões requer aprovação constante do usuário para comandos bash. Embora isso forneça controle, pode levar a:- Fadiga de aprovação: Clicar repetidamente em “aprovar” pode fazer com que os usuários prestem menos atenção ao que estão aprovando
- Produtividade reduzida: Interrupções constantes desaceleram os fluxos de trabalho de desenvolvimento
- Autonomia limitada: Claude Code não pode trabalhar com eficiência quando aguarda aprovações
- Definir limites claros: Especifique exatamente quais diretórios e hosts de rede Claude Code pode acessar
- Reduzir solicitações de permissão: Comandos seguros dentro do sandbox não requerem aprovação
- Manter a segurança: Tentativas de acessar recursos fora do sandbox acionam notificações imediatas
- Permitir autonomia: Claude Code pode ser executado de forma mais independente dentro de limites definidos
Como funciona
Isolamento de sistema de arquivos
A ferramenta bash em sandbox restringe o acesso ao sistema de arquivos a diretórios específicos:- Comportamento padrão de escrita: Acesso de leitura e escrita ao diretório de trabalho atual e seus subdiretórios
- Comportamento padrão de leitura: Acesso de leitura a todo o computador, exceto certos diretórios negados
- Acesso bloqueado: Não é possível modificar arquivos fora do diretório de trabalho atual sem permissão explícita
- Configurável: Defina caminhos permitidos e negados personalizados através de configurações
Isolamento de rede
O acesso à rede é controlado através de um servidor proxy executado fora do sandbox:- Restrições de domínio: Apenas domínios aprovados podem ser acessados
- Confirmação do usuário: Novas solicitações de domínio acionam solicitações de permissão
- Suporte a proxy personalizado: Usuários avançados podem implementar regras personalizadas no tráfego de saída
- Cobertura abrangente: As restrições se aplicam a todos os scripts, programas e subprocessos gerados por comandos
Imposição de nível do SO
A ferramenta bash em sandbox aproveita primitivos de segurança do sistema operacional:- Linux: Usa bubblewrap para isolamento
- macOS: Usa Seatbelt para imposição de sandbox
Começando
Ativar isolamento em sandbox
Você pode ativar o isolamento em sandbox executando o comando de barra/sandbox:
Configurar isolamento em sandbox
Personalize o comportamento do sandbox através do seu arquivosettings.json. Consulte Configurações para referência de configuração completa.
Claude Code inclui um mecanismo de escape intencional que permite que comandos sejam executados fora do sandbox quando necessário. Quando um comando falha devido a restrições de sandbox (como problemas de conectividade de rede ou ferramentas incompatíveis), Claude é solicitado a analisar a falha e pode tentar novamente o comando com o parâmetro
dangerouslyDisableSandbox. Comandos que usam este parâmetro passam pelo fluxo de permissões normal de Claude Code, exigindo permissão do usuário para executar. Isso permite que Claude Code lide com casos extremos onde certas ferramentas ou operações de rede não podem funcionar dentro das restrições de sandbox.Você pode desabilitar este mecanismo de escape definindo "allowUnsandboxedCommands": false em suas configurações de sandbox. Quando desabilitado, o parâmetro dangerouslyDisableSandbox é completamente ignorado e todos os comandos devem ser executados em sandbox ou estar explicitamente listados em excludedCommands.Benefícios de segurança
Proteção contra injeção de prompt
Mesmo que um atacante manipule com sucesso o comportamento de Claude Code através de injeção de prompt, o sandbox garante que seu sistema permaneça seguro: Proteção de sistema de arquivos:- Não é possível modificar arquivos de configuração críticos como
~/.bashrc - Não é possível modificar arquivos de nível do sistema em
/bin/ - Não é possível ler arquivos que são negados em suas configurações de permissão do Claude
- Não é possível exfiltrar dados para servidores controlados por atacantes
- Não é possível baixar scripts maliciosos de domínios não autorizados
- Não é possível fazer chamadas de API inesperadas para serviços não aprovados
- Não é possível entrar em contato com nenhum domínio não explicitamente permitido
- Todas as tentativas de acesso fora do sandbox são bloqueadas no nível do SO
- Você recebe notificações imediatas quando os limites são testados
- Você pode escolher negar, permitir uma vez ou atualizar permanentemente sua configuração
Superfície de ataque reduzida
O isolamento em sandbox limita o dano potencial de:- Dependências maliciosas: Pacotes NPM ou outras dependências com código prejudicial
- Scripts comprometidos: Scripts de compilação ou ferramentas com vulnerabilidades de segurança
- Engenharia social: Ataques que enganam usuários para executar comandos perigosos
- Injeção de prompt: Ataques que enganam Claude para executar comandos perigosos
Operação transparente
Quando Claude Code tenta acessar recursos de rede fora do sandbox:- A operação é bloqueada no nível do SO
- Você recebe uma notificação imediata
- Você pode escolher:
- Negar a solicitação
- Permitir uma vez
- Atualizar sua configuração de sandbox para permitir permanentemente
Limitações de Segurança
- Limitações de Isolamento de Rede: O sistema de filtragem de rede funciona restringindo os domínios aos quais os processos podem se conectar. Ele não inspeciona o tráfego passando pelo proxy e os usuários são responsáveis por garantir que apenas permitam domínios confiáveis em sua política.
- Escalação de Privilégio via Unix Sockets: A configuração
allowUnixSocketspode inadvertidamente conceder acesso a serviços poderosos do sistema que podem levar a bypasses de sandbox. Por exemplo, se for usada para permitir acesso a/var/run/docker.sock, isso efetivamente concederia acesso ao sistema host através da exploração do socket docker. Os usuários são encorajados a considerar cuidadosamente quaisquer unix sockets que permitam através do sandbox. - Escalação de Permissão de Sistema de Arquivos: Permissões de escrita de sistema de arquivos excessivamente amplas podem permitir ataques de escalação de privilégio. Permitir escritas em diretórios contendo executáveis em
$PATH, diretórios de configuração do sistema ou arquivos de configuração de shell do usuário (.bashrc,.zshrc) pode levar à execução de código em diferentes contextos de segurança quando outros usuários ou processos do sistema acessam esses arquivos. - Força do Sandbox Linux: A implementação Linux fornece isolamento forte de sistema de arquivos e rede, mas inclui um modo
enableWeakerNestedSandboxque permite que funcione dentro de ambientes Docker sem namespaces privilegiados. Esta opção enfraquece consideravelmente a segurança e deve ser usada apenas em casos onde isolamento adicional é de outra forma imposto.
Uso avançado
Configuração de proxy personalizado
Para organizações que exigem segurança de rede avançada, você pode implementar um proxy personalizado para:- Descriptografar e inspecionar tráfego HTTPS
- Aplicar regras de filtragem personalizadas
- Registrar todas as solicitações de rede
- Integrar com infraestrutura de segurança existente
Integração com ferramentas de segurança existentes
A ferramenta bash em sandbox funciona junto com:- Políticas IAM: Combine com configurações de permissão para defesa em profundidade
- Contêineres de desenvolvimento: Use com devcontainers para isolamento adicional
- Políticas empresariais: Imponha configurações de sandbox através de configurações gerenciadas
Melhores práticas
- Comece restritivo: Comece com permissões mínimas e expanda conforme necessário
- Monitore logs: Revise tentativas de violação de sandbox para entender as necessidades de Claude Code
- Use configurações específicas do ambiente: Diferentes regras de sandbox para contextos de desenvolvimento vs. produção
- Combine com permissões: Use isolamento em sandbox junto com políticas IAM para segurança abrangente
- Teste configurações: Verifique se suas configurações de sandbox não bloqueiam fluxos de trabalho legítimos
Código aberto
O runtime de sandbox está disponível como um pacote npm de código aberto para uso em seus próprios projetos de agentes. Isso permite que a comunidade mais ampla de agentes de IA construa sistemas autônomos mais seguros e protegidos. Isso também pode ser usado para fazer sandbox de outros programas que você possa desejar executar. Por exemplo, para fazer sandbox de um servidor MCP, você poderia executar:Limitações
- Sobrecarga de desempenho: Mínima, mas algumas operações de sistema de arquivos podem ser ligeiramente mais lentas
- Compatibilidade: Algumas ferramentas que requerem padrões de acesso específicos do sistema podem precisar de ajustes de configuração, ou podem até precisar ser executadas fora do sandbox
- Suporte de plataforma: Atualmente suporta Linux e macOS; suporte para Windows planejado
Veja também
- Segurança - Recursos de segurança abrangentes e melhores práticas
- IAM - Configuração de permissão e controle de acesso
- Configurações - Referência de configuração completa
- Referência CLI - Opções de linha de comando incluindo
-sb