O blog de segurança da FireAI

Por FireAI Security & Research Team · Publicado

Monitorizar o acesso à rede do OpenAI Codex CLI no Mac com o FireAI

Monitorizar o acesso à rede do OpenAI Codex CLI no Mac com o FireAI

O Codex CLI é um agente de programação da OpenAI que corre no seu terminal. Lê um projeto, propõe alterações e executa comandos, e a OpenAI documenta para ele um modelo de segurança em duas camadas que combina uma sandbox com políticas de aprovação. Este artigo resume esse modelo tal como se aplica ao macOS, explica o que diz e o que não diz sobre o tráfego de rede e mostra como o FireAI observa o programa.

O que é o Codex CLI e como se instala

O repositório do projeto descreve o Codex CLI como um agente de programação leve que corre no seu terminal, criado pela OpenAI e licenciado sob Apache-2.0. Indica três formas de instalação: npm install -g @openai/codex, brew install --cask codex e uma descarga direta através de um script de shell ou da página GitHub Releases. Corre no macOS, tanto em Apple Silicon como em Intel, bem como em Linux e Windows.

Terminal
# the documented install routes
npm install -g @openai/codex
brew install --cask codex

O modelo documentado de sandbox e de aprovação

A página da OpenAI sobre aprovações e segurança do agente descreve modos de sandbox e políticas de aprovação que funcionam em conjunto, e observa que nenhum deles, isoladamente, oferece proteção completa. Os modos de sandbox são read-only, workspace-write e danger-full-access. Em read-only, as ações fora de um limite restrito exigem aprovação. Em workspace-write, o Codex pode ler, editar e executar comandos no espaço de trabalho ativo, enquanto o acesso à rede e as edições fora dele exigem aprovação. O danger-full-access remove as restrições e não é recomendado.

As políticas de aprovação incluem on-request, o modo interativo padrão; never, que desativa os pedidos de aprovação mantendo as restrições da sandbox; e granular, que é seletivamente interativo para categorias específicas de ações.

Acesso à rede na sandbox

Segundo a mesma página, a conectividade de rede está desativada por predefinição. Para a ativar no modo workspace-write, define-se network_access = true em [sandbox_workspace_write] no ficheiro de configuração, e uma funcionalidade opcional network_proxy pode limitar o tráfego a listas de domínios permitidos configuradas. No macOS, a aplicação destas regras usa políticas Seatbelt através de sandbox-exec; no Linux, usa bwrap e seccomp.

config.toml
[sandbox_workspace_write]
network_access = true

Esta definição rege os comandos que correm dentro da sandbox. É um limite útil, e convém precisar o que não é: não é um registo de ligações, e a ligação do próprio agente a um serviço de modelos é uma questão distinta. Este artigo não enumera os domínios do próprio Codex, porque as páginas aqui analisadas não fornecem uma lista documentada pelo fornecedor.

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

Se ativar o acesso à rede para permitir que os testes descarreguem dependências, ou se usar danger-full-access, a sandbox deixa de limitar os destinos a que os comandos se ligam. Nesse momento, a verificação que resta é uma visão dos destinos que o programa efetivamente alcançou. Essa visão cobre também o caso em que se esqueceu de que tinha alterado a definição.

Observar o Codex 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 Codex é um agente de linha de comandos, pelo que o FireAI o reconhece pelo nome do seu programa.

O Codex é identificado pelo nome do seu programa, codex, o que significa que o FireAI rotula a correspondência e não a confronta com uma assinatura do programador. Apenas o Claude Code, o Claude e o Cursor são verificados dessa forma.

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 Codex

  1. Instale o FireAI e conclua a configuração, continuando a usar o Codex 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 Codex 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 Codex 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: Claude Code, a app de secretária Claude, Cursor, a app ChatGPT para Mac, 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 Codex mantém a rede da sua própria sandbox desativada por predefinição. O FireAI observa o resto do panorama.

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