O blog de segurança da FireAI

Por FireAI Security & Research Team · Publicado

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

Segurança do opencode no Mac: monitorizar 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 pesquisas como «opencode security mac», «is opencode safe» e «opencode network access». A sua documentação é clara quanto ao modelo de permissões e quanto à única funcionalidade que envia uma conversa para um servidor. Este artigo expõe esses factos documentados e explica depois como o FireAI, uma firewall no dispositivo para macOS desenvolvida pela HisnLabs, observa as ligações que o programa estabelece e o que não consegue fazer.

O que é o opencode

O opencode apresenta-se como «the open source AI coding agent». O repositório GitHub, que passou da organização sst para anomalyco, tem uma licença MIT. É distribuído como interface de terminal, aplicação de secretária (marcada como beta no README) e extensão de IDE, e inclui dois agentes integrados: build, um agente com acesso total que é o predefinido, e plan, um agente apenas de leitura que pede permissão [1]. Os utilizadores ligam-no a fornecedores de modelos com chaves de API; a introdução recomenda o OpenCode Zen, uma lista selecionada de modelos testados pela equipa do opencode [2].

Como o opencode funciona no macOS

O README indica 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 a app de secretária. Numa instalação de linha de comandos, o programa que lança chama-se opencode, e é assim que o processo aparece ao sistema.

A que pode aceder 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, prevalecendo a última regra correspondente. A documentação afirma que a maioria das permissões tem allow como predefinição; doom_loop e external_directory têm ask como predefinição, e os ficheiros .env estão bloqueados por predefinição. A opção --auto aprova automaticamente os pedidos, salvo quando se aplica uma regra deny explícita [3].

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

Onde se liga

A página sobre partilha documenta a única funcionalidade que envia uma conversa para os servidores do opencode. O comando /share cria um URL público e sincroniza com eles o histórico da conversa, as mensagens, as respostas e os metadados da sessão. A partilha é manual por predefinição, pelo que nada é enviado sem esse comando; pode ser desativada com "share": "disabled" em opencode.json, e as sessões partilhadas permanecem acessíveis até ser usado /unshare [4]. As páginas lidas para este artigo não enumeram outros domínios, pelo que, para além do seu fornecedor de modelos e de tudo o que uma ferramenta contacte, os restantes destinos devem ser considerados aqui não documentados.

Observar o opencode 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 opencode entre os agentes de linha de comandos reconhecidos pelo nome do seu programa. As ligações feitas por um programa chamado opencode, e pelos seus processos filhos, como uma shell ou o git, são por isso atribuídas ao opencode.

  • 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 opencode

  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 opencode requer a 1.0.4.

Limites

  • As regras de permissão do opencode decidem que chamadas a ferramentas são aprovadas e, no modo --auto, aprovam a maioria delas. O FireAI atua antes ao nível das ligações, pelo que os dois se complementam em vez de se sobreporem.
  • O opencode é 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, Aider, Goose, Crush, 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 opencode 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