O blog de segurança da FireAI

Por FireAI Security & Research Team · Publicado

Monitorizar as ligações de rede do Claude Code no Mac: segurança com o FireAI

Monitorizar as ligações de rede do Claude Code no Mac: segurança com o FireAI

O Claude Code é um agente de programação da Anthropic que corre num terminal no seu Mac. Lê o seu projeto, edita ficheiros e executa comandos de shell em seu nome, e cada uma dessas ações pode terminar numa ligação de rede. Este artigo expõe o que a Anthropic documenta sobre a forma como o Claude Code corre no macOS, o que consegue alcançar e que ligações são normais, e mostra depois como observá-las com o FireAI. Quando um facto provém da documentação da Anthropic, a fonte é indicada no final.

O que é o Claude Code e como corre num Mac

A página de configuração da Anthropic indica três formas de instalar o Claude Code no macOS. O instalador nativo recomendado é um script curl que descarrega um binário e se atualiza em segundo plano. O Homebrew oferece dois casks, claude-code para o canal estável e claude-code@latest para o mais recente, e as instalações pelo Homebrew não se atualizam automaticamente. Está também disponível um pacote npm global, @anthropic-ai/claude-code; segundo a mesma página, instala o mesmo binário nativo, e o binário claude instalado não invoca, por si, o Node. No macOS, o binário está documentado como assinado pela «Anthropic PBC» e notarizado pela Apple, e pode verificá-lo com codesign --verify --verbose.

Terminal
# check the signature of the claude binary, as the setup page describes
codesign --verify --verbose ./claude

A que pode aceder e o modelo de permissões documentado

O Claude Code atua com as permissões da conta que o inicia. A página de segurança da Anthropic descreve dois pontos de partida. No modo Manual, começa apenas com leitura e pergunta antes de editar ficheiros, correr testes ou executar comandos, sendo que um conjunto integrado de comandos só de leitura, como ls, cat e git status, corre sem pedido de confirmação. O modo Auto é o modo inicial predefinido para sessões interativas no terminal e no VS Code: um modelo classificador separado analisa as ações e bloqueia as que considera inseguras, enquanto as suas regras explícitas de pedir e de recusar continuam a aplicar-se.

Três pormenores documentados são relevantes para o comportamento de rede. Primeiro, os comandos que obtêm conteúdo da web, como curl e wget, não são aprovados automaticamente por predefinição. Segundo, o limite do diretório de trabalho é um pedido de permissão, pelo que um comando Bash que aprove pode ainda assim escrever em qualquer local a que a sua conta de utilizador tenha acesso. Terceiro, uma ferramenta Bash opcional em sandbox, configurada com /sandbox, aplica isolamento do sistema de ficheiros e da rede aos comandos de shell ao nível do sistema operativo. A Anthropic observa que a sandbox abrange apenas comandos de shell, e que as ferramentas de ficheiros, os servidores MCP e os hooks correm fora dela.

A página de segurança afirma também que nenhum sistema é totalmente imune a todos os ataques, e recomenda rever os comandos sugeridos, evitar encaminhar conteúdo não fiável diretamente para o Claude e usar máquinas virtuais para scripts que interajam com serviços web externos.

Os domínios que o Claude Code documenta

A página de configuração de rede da Anthropic enumera os URL de que a CLI autónoma necessita. Estes são os documentados pelo fornecedor mais relevantes para uma firewall:

Fonte: documentação do Claude Code, Enterprise network configuration, «Network access requirements».
AnfitriãoFinalidade documentada
api.anthropic.comPedidos à API Claude, verificação de segurança de domínios do WebFetch, obtenção de feature flags e registo de eventos de telemetria
claude.ai, claude.com, platform.claude.comInício de sessão na conta e troca de tokens OAuth
mcp-proxy.anthropic.comConectores MCP a partir do claude.ai
downloads.claude.aiInstalador nativo, atualizador automático, verificação de atualizações e descarga de plugins
registry.npmjs.orgInstalações do Claude Code com npm e bun, instalação de plugins e servidores MCP lançados com npx
github.com, raw.githubusercontent.comClonagem de marketplaces de plugins; o feed do registo de alterações para /release-notes
http-intake.logs.us5.datadoghq.com, browser-intake-us5-datadoghq.comTelemetria operacional e relatórios de erros opcionais; documentados como desativados com DISABLE_TELEMETRY ou CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC

A mesma página indica que o Claude Code respeita as variáveis padrão HTTPS_PROXY e HTTP_PROXY e não suporta proxies SOCKS. Tudo o que estiver fora desta lista, como um registo de pacotes contactado por um comando de compilação que o Claude executa, é tráfego do próprio projeto, não do Claude Code.

Porque é que uma visão de rede continua a ser útil

Os pedidos de permissão mostram o comando que o Claude Code pretende executar. Não mostram todas as ligações resultantes de comandos aprovados anteriormente, de um servidor MCP, de um plugin ou de um script do repositório. Uma visão ao nível da rede responde a uma questão mais restrita e complementar: a que destinos esta máquina se ligou efetivamente enquanto o agente trabalhava. É essa a questão a que o Perfil de agente do FireAI foi concebido para responder.

Observar o Claude Code com o FireAI

O FireAI é uma firewall para macOS desenvolvida pela HisnLabs e, desde a versão 1.0.2, tem uma funcionalidade chamada Perfil de agente. Reconhece 19 agentes de IA, aprende onde cada um se liga normalmente e assinala comportamentos invulgares para que os analise. O Claude Code é reconhecido pela sua assinatura de código.

Lista de Atividade do FireAI filtrada por "claude": três linhas claude, para api.anthropic.com e para consultas DNS, cada uma com a personagem do Claude Code, e uma linha Brave Browser Helper para claude.ai com um ícone de app comum.
Lista de Atividade do FireAI num Mac: o processo de linha de comandos claude tem a personagem do Claude Code, enquanto um navegador que visita claude.ai continua a ser uma app comum.

O Claude Code é um dos três agentes que o FireAI confronta com a assinatura de código do respetivo programador, pelo que uma correspondência é mais do que um nome.

O FireAI reconhece também os processos filhos do agente, como uma shell, o git ou o curl que o agente executa, percorrendo os processos pais até chegar ao agente. Essas ligações são, por isso, contabilizadas como sendo do próprio agente.

O que o FireAI assinala

  1. Durante os primeiros 3 dias, o FireAI aprende os destinos que o agente contacta normalmente, agrupados por domínio. Nada é assinalado durante este período de aprendizagem.
  2. Depois disso, o primeiro contacto com um destino fora da referência aprendida é assinalado para análise.
  3. Um pico de envio também é assinalado: uma hora em que o agente enviou pelo menos 4 vezes o volume da sua hora mais intensa até então, e nunca menos de 25 MB.

O Perfil de agente usa apenas metadados, ou seja, nomes de anfitrião e contagens de bytes. O FireAI nunca lê o conteúdo de uma ligação e não consegue ler o interior de uma ligação cifrada.

Configurar para o Claude Code

  1. Instale o FireAI e conclua a configuração, continuando a usar o Claude Code como habitualmente. O período de aprendizagem de 3 dias parte do que o FireAI observa.
  2. Abra Sugestões e consulte o cartão Agentes de IA. Enumera os agentes que o FireAI reconheceu e o que aprendeu sobre cada um.
  3. Quando o Claude Code chega a um destino que nunca contactou, o alerta aparece no cartão Agentes de IA e na Revisão rápida. Deslize para a esquerda para bloquear, ou para a direita para «It’s fine».
  4. Bloquear cria uma regra para o processo que se ligou. «It’s fine» acrescenta o destino à referência do agente, para que não volte a ser assinalado.
  5. Se pretender manter o agente nos destinos que já utiliza, escolha Perfil de agente no menu do modo de segurança, ao lado de Casa, Café, Paranoico e Sob ataque. Depois de o agente concluir a aprendizagem, uma ligação a um destino fora da sua referência é bloqueada em vez de assinalada.
  6. Um destino bloqueado aparece no cartão Agentes de IA com Permitir e Manter bloqueado. Permitir acrescenta-o à referência e o agente pode aceder-lhe de imediato. Manter bloqueado cria uma regra de bloqueio, pelo que o destino fica bloqueado em todos os modos.

Limites

  • O FireAI não previne a injeção de prompts. Um prompt escondido numa página web ou num ficheiro pode continuar a orientar um agente. O que o FireAI pode fazer é assinalar, e permitir bloquear, o caminho pelo qual os dados sairiam do seu Mac.
  • O FireAI não consegue ver prompts, o conteúdo das ferramentas MCP, nem os ficheiros que o Claude Code lê, como ~/.ssh. O TLS oculta o conteúdo, e o FireAI não está dentro do agente.
  • Os processos filhos que terminam muito depressa podem escapar, e os processos filhos são identificados pelo caminho, não pela assinatura.
  • Durante o período de aprendizagem de 3 dias nada é assinalado.
  • No modo Perfil de agente, uma ligação a um endereço IP sem nome de anfitrião é identificada pelo endereço. Se um serviço que o agente usa normalmente responder a partir de um novo endereço, fica bloqueado até o permitir.
  • A explicação em linguagem simples que o FireAI dá de um alerta é escrita a partir de factos que mediu. Nunca afirma que um destino é seguro ou perigoso. A decisão é sua.

Guias relacionados

A mesma abordagem aplica-se aos outros agentes que o FireAI reconhece: a app de secretária Claude, Cursor, a app ChatGPT para Mac, Codex CLI, OpenClaw, Hermes Agent, Gemini CLI, GitHub Copilot CLI, Amp, Qwen Code, opencode, Aider, Goose, Crush, Windsurf, Kiro, Trae, Muse da Meta, qualquer outro agente de IA executado por Python ou Node. A descrição completa da funcionalidade encontra-se na documentação do Perfil de agente.

O papel do FireAI e da HisnLabs

O Claude Code pergunta antes de agir. Uma firewall de rede acrescenta uma segunda perspetiva sobre os destinos a que se liga.

O FireAI é o produto da HisnLabs: uma firewall com IA que corre diretamente no seu Mac. Mostra, em linguagem clara, cada ligação que as suas aplicações fazem e deixa-o decidir o que sai do seu Mac — a IA funciona localmente, pelo que o seu tráfego nunca é enviado para nós nem para mais ninguém. A equipa de investigação em segurança da HisnLabs é quem mantém essas decisões fiáveis: cataloga que domínios são simples telemetria e quais são um serviço real, acompanha o país e a rede por detrás de uma ligação e treina o modelo local (a funcionalidade FireAI Pilot) com padrões de tráfego reais, sem que nada disso saia do seu Mac.

Pode ler as decisões técnicas por detrás dele, ou experimentar o FireAI durante 17 dias, em FireAI, da HisnLabs.

Fontes