O blog de segurança da FireAI

Por FireAI Security & Research Team · Publicado

Segurança do GitHub Copilot CLI no Mac: observar as suas ligações

Segurança do GitHub Copilot CLI no Mac: observar as suas ligações

O GitHub Copilot CLI leva um agente de programação para o terminal. Pode editar ficheiros, executar comandos e trabalhar com repositórios, issues e pull requests. Quem pesquisa «github copilot cli security» ou «is Copilot CLI safe» quer sobretudo saber o que pode executar e o que envia para fora. Este artigo resume a documentação da própria GitHub e mostra como o FireAI, uma firewall de rede para macOS desenvolvida pela HisnLabs, observa as suas ligações.

O que é o Copilot CLI e como funciona num Mac

O repositório indica que a ferramenta é desenvolvida pela GitHub e assenta na mesma estrutura agêntica que o agente de programação Copilot. Suporta macOS, Linux e Windows, e instala-se com o npm (npm install -g @github/copilot), o Homebrew (brew install copilot-cli) ou um script de instalação. A autenticação faz-se com o comando /login ou com um token de acesso pessoal que tenha a permissão Copilot Requests, fornecido como GH_TOKEN ou GITHUB_TOKEN. Funciona num modo interativo e num modo programático com a opção -p, inclui por predefinição o servidor MCP da GitHub e suporta servidores personalizados.

A que pode aceder

A documentação da GitHub refere que, dentro dos diretórios de confiança, o Copilot pode ler, modificar e executar ficheiros, e que o agente trabalha com o GitHub.com através da sua conta autenticada. Como pode executar comandos, pode também abrir ligações de rede, por exemplo através do curl ou do git.

O modelo de permissões documentado

  • Diretórios de confiança: confirma a confiança no diretório a partir do qual lança a CLI. A documentação desaconselha lançá-la a partir da pasta pessoal ou de locais com executáveis não fidedignos.
  • Aprovações de ferramentas: para ferramentas que modificam ou executam, como rm, node ou sed, o Copilot pede-lhe que aprove uma vez, aprove para a sessão, ou rejeite e sugira uma alternativa.
  • Opções: --allow-tool='shell(COMMAND)' e --deny-tool='shell(COMMAND)' definem regras por comando, e --deny-tool tem precedência. --allow-all-tools dispensa as aprovações e, nas palavras da documentação, dá ao Copilot o mesmo acesso que o utilizador tem.

Para este último caso, a documentação sugere sandboxes locais ou na nuvem, ou máquinas virtuais isoladas. A página consultada não detalha que dados são transmitidos à GitHub ou aos fornecedores de modelos, pelo que, quanto aos destinos exatos, deve confiar na observação. É a situação a que a OWASP chama excessive agency: um agente autorizado a agir sem verificação humana em cada passo.

Observar o GitHub Copilot CLI com o FireAI

O FireAI é uma firewall no dispositivo para macOS desenvolvida pela HisnLabs. A sua funcionalidade Perfil de agente inclui o GitHub Copilot CLI entre os 19 agentes de IA que reconhece e, como o Copilot CLI corre sob o node, identifica-o pelo script que o runtime executa, tal como o Perfil de agente faz para os agentes node, bun, deno e python. Os processos filhos do agente, como uma shell, o git ou o curl que lança, são-lhe atribuídos percorrendo os processos pais. O FireAI aprende depois, durante os primeiros 3 dias, que destinos o GitHub Copilot CLI contacta normalmente, agrupados por domínio, e não assinala nada durante esse período. A partir daí, um destino inédito é assinalado em Sugestões, no cartão Agentes de IA e na Revisão rápida. 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, nomes de anfitrião e contagens de bytes, e nunca lê o conteúdo de uma ligação. Por omissão, assinala e deixa-lhe a decisão. No modo de segurança Perfil de agente vai mais longe: concluída a aprendizagem, uma ligação a um destino fora da referência fica bloqueada até premir Permitir, e Manter bloqueado converte esse bloqueio numa regra válida em todos os modos.

Configuração, passo a passo

  1. Instale o FireAI e conclua a configuração inicial, seguindo Instalar e concluir a configuração.
  2. Use o GitHub Copilot CLI como habitualmente durante 3 dias. O FireAI aprende os seus destinos em segundo plano e ainda não assinala nada.
  3. Abra Sugestões e localize o cartão Agentes de IA. Quando surgir um alerta, leia a frase em linguagem simples e deslize para a esquerda na Revisão rápida para bloquear, ou para a direita para «It’s fine».
  4. 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.
  5. Quando algo for bloqueado, abra o cartão Agentes de IA e escolha Permitir para o acrescentar à referência, ou Manter bloqueado para criar uma regra de bloqueio.

Limites

  • O FireAI não previne 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 os prompts do GitHub Copilot CLI, o conteúdo das ferramentas MCP, as skills, nem os ficheiros que lê, porque o TLS oculta o conteúdo e o FireAI não está dentro do agente.
  • O Copilot CLI é identificado pelo nome do script, pelo que o FireAI o rotula em vez de o verificar: apenas o Claude Code, o Claude e o Cursor são confrontados com a assinatura do respetivo programador.
  • As ligações feitas pelos programas gh ou git são identificadas através da árvore de processos, ou seja, pelo caminho, e os processos filhos que terminam muito depressa podem escapar.
  • O FireAI não lê aprovações nem comandos, pelo que não consegue dizer que comando abriu uma ligação.
  • Durante o período de aprendizagem de 3 dias nada é assinalado, e os picos de envio são assinalados, não bloqueados.
  • Um novo servidor num domínio que o agente já usa é tratado como conhecido, porque os destinos são agrupados por domínio.

A funcionalidade está descrita na documentação do Perfil de agente.

Os outros agentes que o FireAI reconhece têm os seus próprios guias: Claude Code, app de secretária Claude, Cursor, app ChatGPT para Mac, OpenAI Codex CLI, OpenClaw, Hermes Agent, Gemini CLI, Amp, Qwen Code, opencode, Aider, Goose, Crush, Windsurf, Kiro, Trae, Muse da Meta, qualquer agente de IA executado por Python ou Node.

O papel do FireAI e da HisnLabs

O Copilot CLI pode executar comandos depois de os aprovar. O FireAI mostra, e pode bloquear, o próximo destino 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