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 isolamento em 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
- Definindo limites claros: Especifique exatamente quais diretórios e hosts de rede Claude Code pode acessar
- Reduzindo solicitações de permissão: Comandos seguros dentro do sandbox não requerem aprovação
- Mantendo a segurança: Tentativas de acessar recursos fora do sandbox acionam notificações imediatas
- Habilitando autonomia: Claude Code pode executar de forma mais independente dentro de limites definidos
O isolamento eficaz em sandbox requer ambos isolamento de sistema de arquivos e rede. Sem isolamento de rede, um agente comprometido poderia exfiltrar arquivos sensíveis como chaves SSH. Sem isolamento de sistema de arquivos, um agente comprometido poderia fazer backdoor em recursos do sistema para obter acesso à rede. Ao configurar o isolamento em sandbox, é importante garantir que suas configurações não criem brechas nesses sistemas.
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 das 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.
Suporte a padrões:
- Os caminhos suportam absolutos (
/home/user
), relativos (./src
), diretório inicial (~
) e wildcards (**/*.json
) - Os domínios suportam correspondências exatas (
github.com
), wildcards (*.npmjs.org
) e subdomínios
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 optar por 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 optar por:
- 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 de outra forma 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.
Os usuários devem estar cientes dos riscos potenciais que vêm de permitir domínios amplos como
github.com
que podem permitir exfiltração de dados. Além disso, em alguns casos pode ser possível contornar a filtragem de rede através de domain fronting.- Escalação de Privilégio via Unix Sockets: A configuração
allowUnixSockets
pode inadvertidamente conceder acesso a serviços poderosos do sistema que podem levar a bypasses de sandbox. Por exemplo, se for usado 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 do Sistema de Arquivos: Permissões de escrita excessivamente amplas do sistema de arquivos podem habilitar 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 do Linux fornece isolamento forte de sistema de arquivos e rede, mas inclui um modo
enableWeakerNestedSandbox
que o permite funcionar 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 de 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 de 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 de CLI - Opções de linha de comando incluindo
-sb