O blog de segurança da FireAI

Por FireAI Security & Research Team · Publicado

Segurança do opencode no Mac: monitorar o acesso à rede com o FireAI

Segurança do opencode no Mac: monitorar o acesso à rede com o FireAI

O opencode é um agente de programação com IA de código aberto que as pessoas executam a partir de um terminal no Mac, e é tema frequente de buscas como “opencode security mac”, “is opencode safe” e “opencode network access”. Sua documentação é direta sobre o modelo de permissões e sobre o único recurso que envia uma conversa a um servidor. Este artigo apresenta esses fatos documentados e depois explica como o FireAI, um firewall local para macOS feito pela HisnLabs, acompanha as conexões que o programa faz e o que ele não consegue fazer.

O que é o opencode

O opencode se descreve como “the open source AI coding agent”. O repositório no GitHub, que passou da organização sst para anomalyco, adota a licença MIT. Ele é distribuído como interface de terminal, como aplicativo desktop (marcado como beta no README) e como extensão de IDE, e inclui dois agentes integrados: build, um agente com acesso total que é o padrão, e plan, um agente somente leitura que pede permissão [1]. Os usuários o conectam a provedores de modelos com chaves de API; a introdução recomenda o OpenCode Zen, uma lista selecionada de modelos testados pela equipe do opencode [2].

Como o opencode roda no macOS

O README lista várias formas de instalação no macOS: o script curl -fsSL https://opencode.ai/install | bash, npm, bun, pnpm ou yarn, Homebrew e um DMG para o app desktop. Em uma instalação de linha de comando, o programa que você executa se chama opencode, e é assim que o processo aparece para o sistema.

O que ele pode acessar e como é controlado

O sistema de permissões tem três estados: allow, ask e deny. As regras podem ser definidas globalmente ou por ferramenta e podem corresponder a padrões da entrada da ferramenta, valendo a última regra correspondente. A documentação afirma que a maioria das permissões tem allow como padrão; doom_loop e external_directory têm ask como padrão, e os arquivos .env são bloqueados por padrão. A flag --auto aprova pedidos automaticamente, a menos que se aplique uma regra deny explícita [3].

A permissão external_directory rege caminhos fora do espaço de trabalho do projeto. Essas permissões regem o que o agente faz com as ferramentas, como ler, editar e executar comandos. Elas não são descritas como uma lista de permissões de rede.

Para onde ele se conecta

A página sobre compartilhamento documenta o único recurso que envia uma conversa aos servidores do opencode. O comando /share cria uma URL pública e sincroniza com eles o histórico da conversa, as mensagens, as respostas e os metadados da sessão. O compartilhamento é manual por padrão, então nada é enviado sem esse comando; ele pode ser desativado com "share": "disabled" em opencode.json, e as sessões compartilhadas continuam acessíveis até que /unshare seja usado [4]. As páginas consultadas para este artigo não listam outros domínios, então, além do seu provedor de modelo e de qualquer coisa que uma ferramenta contate, trate os demais destinos como não documentados aqui.

Acompanhar o opencode com o FireAI

O FireAI é um firewall para macOS que roda no próprio Mac. Seu recurso Agent profile reconhece 19 agentes de IA, aprende para onde cada um normalmente se conecta e sinaliza o que é novo. A página do Agent profile do FireAI inclui o opencode entre os agentes de linha de comando reconhecidos pelo nome do programa. As conexões feitas por um programa chamado opencode, e por seus processos filhos, como um shell ou git, são, portanto, atribuídas ao opencode.

  • Nos primeiros 3 dias, o FireAI aprende os destinos que o agente normalmente contata, agrupados por domínio, de modo que api.anthropic.com vira anthropic.com. Nada é sinalizado durante esse período.
  • Depois disso, o primeiro destino inédito fora da referência é sinalizado para revisão 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 “Está tudo bem”.
  • Um pico de envio também é sinalizado: 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 host e contagens de bytes. Ele nunca lê o conteúdo de uma conexão.

Configurar o FireAI para o opencode

  1. Instale o FireAI e use o agente como de costume. O período de aprendizado de 3 dias começa sozinho e não sinaliza nada.
  2. Abra Sugestões e encontre o cartão Agentes de IA. Depois do período de aprendizado, um sinal para o agente aparece ali e na Revisão rápida.
  3. Revise cada sinal. Escolha Bloquear para criar uma regra para o processo que se conectou, ou “Está tudo bem” para adicionar o destino à referência do agente.
  4. Para manter o agente nos lugares que ele já usa, escolha Perfil de agente no menu de modo de segurança, ao lado de Casa, Cafeteria, Paranoico e Sob ataque. Suas regras se aplicam como no modo Casa, e uma conexão a um destino fora da referência é bloqueada em vez de sinalizada assim que o agente termina o aprendizado.
  5. Um destino bloqueado aparece no cartão Agentes de IA com Permitir e Manter bloqueado. Permitir o adiciona à referência, e o agente o alcança na hora. Manter bloqueado cria uma regra de bloqueio que vale em todos os modos.

Uma regra de permissão que você escreveu para um site, domínio ou endereço continua prevalecendo, e o DNS e a sua rede local nunca são bloqueados. Para um agente que o FireAI não lista, escreva à mão uma regra para o programa dele em regras por app. O modo Perfil de agente exige o FireAI 1.0.3 ou posterior, e o reconhecimento do opencode exige a 1.0.4.

Limites

  • As regras de permissão do opencode decidem quais chamadas de ferramenta são aprovadas, e no modo --auto aprovam a maioria delas. O FireAI atua na camada das conexões, então os dois se complementam em vez de se sobrepor.
  • O opencode é reconhecido pelo nome do programa, o que significa que ele é identificado pelo nome, não verificado: só o Claude Code, o Claude e o Cursor são conferidos pela assinatura do desenvolvedor.
  • O FireAI não impede a injeção de prompt. Ele limita o dano ao sinalizar, e deixar você bloquear, o caminho que os dados tomariam para sair do seu Mac.
  • O FireAI não vê prompts, o conteúdo de ferramentas MCP, o acesso a arquivos nem as skills. O TLS oculta o conteúdo, e o FireAI não está dentro do agente.
  • Processos filhos que terminam muito rápido podem passar despercebidos, e eles são associados pelo caminho, não pela assinatura.
  • Durante o período de aprendizado de 3 dias nada é sinalizado, e os picos de envio são sinalizados, não bloqueados.
  • No modo Perfil de agente, uma conexão feita a um endereço IP puro, sem nome de host, é associada pelo endereço, então um novo endereço de um serviço que o agente normalmente usa fica bloqueado até você permiti-lo.

Outros agentes

A mesma abordagem vale para todos os agentes que o FireAI reconhece. Veja os outros guias: Claude Code, o app Claude para desktop, Cursor, o app ChatGPT para Mac, OpenAI Codex CLI, OpenClaw, Hermes Agent, Gemini CLI, GitHub Copilot CLI, Amp, Qwen Code, Aider, Goose, Crush, Windsurf, Kiro, Trae, Muse da Meta, qualquer outro agente de IA executado em python ou node. A descrição completa do recurso está na página de documentação do Agent profile, publicada pela HisnLabs.

Onde FireAI e HisnLabs entram nessa história

O FireAI aprende para onde o opencode normalmente se conecta no seu Mac e sinaliza um destino inédito ou um pico de envio, sem ler os seus dados.

O FireAI é o produto da HisnLabs: um firewall com IA que roda direto no seu Mac. Ele mostra, em linguagem simples, cada conexão que seus aplicativos fazem e deixa você decidir o que sai do seu Mac — a IA roda localmente, então seu tráfego nunca é enviado para nós nem para ninguém. A equipe de pesquisa em segurança da HisnLabs é quem mantém essas decisões confiáveis: cataloga quais domínios são telemetria comum e quais são um serviço de verdade, rastreia o país e a rede por trás de uma conexão e treina o modelo local (o recurso FireAI Pilot) com padrões reais de tráfego, sem que nada disso saia do seu Mac.

Você pode ler as decisões técnicas por trás dele, ou testar o FireAI por 17 dias, em FireAI, da HisnLabs.

Fontes