O blog de segurança da FireAI

Por FireAI Security & Research Team · Publicado

Segurança do agente Crush no Mac: monitorizar a sua rede com o FireAI

Segurança do agente Crush no Mac: monitorizar a sua rede com o FireAI

O Crush é um agente de programação de terminal da Charm, a empresa por trás de uma conhecida família de ferramentas de linha de comandos. Pergunta antes de executar uma ferramenta, pode ser instruído a não o fazer e documenta no README mais do que um comportamento de rede. Isso torna-o um bom objeto de estudo para quem pesquisa «crush ai agent security mac», «crush network access» ou «is Crush safe». Este artigo reúne o que o README afirma e explica depois como o FireAI, uma firewall no dispositivo para macOS desenvolvida pela HisnLabs, observa as ligações de um único programa compilado.

O que é o Crush

O Crush é desenvolvido pela Charm (charmbracelet no GitHub) e está escrito em Go. O README descreve-o como software de programação agêntica para o terminal que liga ferramentas, código e fluxos de trabalho a modelos de linguagem. Suporta muitos fornecedores, incluindo OpenAI, Anthropic, Gemini, Ollama e Bedrock, e o seu catálogo de modelos é mantido atualizado a partir do Catwalk, uma base de dados de fornecedores de código aberto. Pode usar servidores MCP por stdio, HTTP e SSE, com OAuth para HTTP, e servidores de linguagem (LSP) para contexto de código [1].

Como o Crush funciona no macOS

O README indica brew install charmbracelet/tap/crush, npm install -g @charmland/crush, go install github.com/charmbracelet/crush@latest e binários pré-compilados para macOS. Como se trata de um programa Go, o processo no Mac é um único executável nativo chamado crush, e não um interpretador a executar um script.

A que pode aceder e como é controlado

Por predefinição, o Crush pede permissão antes de executar chamadas a ferramentas. A opção --yolo dispensa todos os pedidos, e o README adverte: «Be very, very careful with this feature.» As permissões podem também ser configuradas: permissions allow deixa ferramentas indicadas correr sem pedido, e permissions deny oculta totalmente ferramentas ao agente. A configuração abrange fornecedores, LSP, MCP, permissões, temas e skills [2].

Estes controlos decidem que chamadas a ferramentas prosseguem. O README não descreve uma lista de permissões de rede.

Onde se liga

O README documenta dois comportamentos que abrem ligações sem qualquer pedido seu. Primeiro, o Crush recolhe metadados de utilização pseudonimizados, e afirma que os prompts e as respostas nunca são recolhidos; desativa-se com CRUSH_DISABLE_METRICS=1 ou respeitando DO_NOT_TRACK. Segundo, obtém automaticamente o catálogo de fornecedores a partir do Catwalk, o que pode ser desativado com CRUSH_DISABLE_PROVIDER_AUTO_UPDATE=1 e atualizado manualmente com crush update-providers [2]. Os restantes destinos dependem do fornecedor e dos servidores MCP que configurar.

Observar o Crush com o FireAI

O FireAI é uma firewall para macOS que corre no Mac. A sua funcionalidade Perfil de agente reconhece 19 agentes de IA, aprende onde cada um se liga normalmente e assinala o que é novo. A página do Perfil de agente do FireAI inclui o Crush entre os agentes de linha de comandos reconhecidos pelo nome do seu programa. As ligações de um programa chamado crush, e dos seus processos filhos, como uma shell, o git ou o curl, são atribuídas ao Crush.

  • Durante os primeiros 3 dias, o FireAI aprende os destinos que o agente contacta normalmente, agrupados por domínio, pelo que api.anthropic.com passa a anthropic.com. Nada é assinalado durante este período.
  • Depois disso, o primeiro contacto com um destino fora da referência é assinalado para análise em Sugestões, 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».
  • 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 FireAI usa apenas metadados, ou seja, nomes de anfitrião e contagens de bytes. Nunca lê o conteúdo de uma ligação.

Configurar o FireAI para o Crush

  1. Instale o FireAI e use o agente como habitualmente. O período de aprendizagem de 3 dias começa automaticamente e não assinala nada.
  2. Abra Sugestões e localize o cartão Agentes de IA. Após o período de aprendizagem, os alertas relativos ao agente aparecem aí e na Revisão rápida.
  3. Analise cada alerta. Escolha Bloquear para criar uma regra para o processo que se ligou, ou «It’s fine» para acrescentar o destino à referência do agente.
  4. Para 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. As suas regras aplicam-se como no modo Casa e, depois de o agente concluir a aprendizagem, uma ligação a um destino fora da referência é bloqueada em vez de assinalada.
  5. Um destino bloqueado aparece no cartão Agentes de IA com Permitir e Manter bloqueado. Permitir acrescenta-o à referência e o agente acede-lhe de imediato. Manter bloqueado cria uma regra de bloqueio válida em todos os modos.

Uma regra de permissão que tenha escrito para um site, domínio ou endereço continua a prevalecer, e o DNS e a rede local nunca são bloqueados. Para um agente que o FireAI não inclui na lista, escreva manualmente uma regra para o respetivo programa em regras por app. O modo Perfil de agente requer o FireAI 1.0.3 ou posterior, e o reconhecimento do Crush requer a 1.0.4.

Limites

  • Variáveis de ambiente como CRUSH_DISABLE_METRICS alteram o que o próprio Crush envia. O FireAI não lê essas definições; limita-se a indicar que anfitriões o programa contacta e quanto envia.
  • O Crush é reconhecido pelo nome do seu programa, o que significa que é rotulado, não verificado: apenas o Claude Code, o Claude e o Cursor são confrontados com a assinatura do respetivo programador.
  • O FireAI não impede a injeção de prompts. Limita os danos ao 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, acessos a ficheiros nem skills. 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 são identificados pelo caminho, não pela assinatura.
  • Durante o período de aprendizagem de 3 dias nada é assinalado, e os picos de envio são assinalados, não bloqueados.
  • No modo Perfil de agente, uma ligação feita a um endereço IP sem nome de anfitrião é identificada pelo endereço, pelo que um novo endereço de um serviço que o agente usa normalmente fica bloqueado até o permitir.

Outros agentes

A mesma abordagem aplica-se a todos os agentes que o FireAI reconhece. Consulte os outros guias: Claude Code, a app de secretária Claude, Cursor, a app ChatGPT para Mac, OpenAI Codex CLI, OpenClaw, Hermes Agent, Gemini CLI, GitHub Copilot CLI, Amp, Qwen Code, opencode, Aider, Goose, Windsurf, Kiro, Trae, Muse da Meta, qualquer outro agente de IA executado em python ou node. A descrição completa da funcionalidade encontra-se na página de documentação do Perfil de agente, publicada pela HisnLabs.

O papel do FireAI e da HisnLabs

O FireAI aprende onde o Crush se liga normalmente no seu Mac e assinala um destino inédito ou um pico de envio, sem ler os seus dados.

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