El blog de seguridad de FireAI

Por FireAI Security & Research Team · Publicado

Monitorizar el acceso a la red de OpenAI Codex CLI en Mac con FireAI

Monitorizar el acceso a la red de OpenAI Codex CLI en Mac con FireAI

Codex CLI es un agente de programación de OpenAI que se ejecuta en tu terminal. Lee un proyecto, propone cambios y ejecuta comandos, y OpenAI documenta para él un modelo de seguridad de dos capas que combina un sandbox con políticas de aprobación. Este artículo resume ese modelo tal como se aplica a macOS, explica lo que dice y lo que no dice sobre el tráfico de red y muestra cómo vigila FireAI el programa.

Qué es Codex CLI y cómo se instala

El repositorio del proyecto describe Codex CLI como un agente de programación ligero que se ejecuta en tu terminal, desarrollado por OpenAI y con licencia Apache-2.0. Indica tres vías de instalación: npm install -g @openai/codex, brew install --cask codex y una descarga directa mediante un script de shell o la página de GitHub Releases. Funciona en macOS, tanto en Apple Silicon como en Intel, además de en Linux y Windows.

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

El modelo de sandbox y aprobaciones documentado

La página de OpenAI sobre aprobaciones y seguridad del agente describe modos de sandbox y políticas de aprobación que funcionan conjuntamente, y señala que ninguno de los dos ofrece por sí solo una protección completa. Los modos de sandbox son read-only, workspace-write y danger-full-access. En read-only, las acciones fuera de un límite restringido requieren aprobación. En workspace-write, Codex puede leer, editar y ejecutar comandos en el espacio de trabajo activo, mientras que el acceso a la red y las ediciones fuera de él requieren aprobación. Danger-full-access elimina las restricciones y no se recomienda.

Las políticas de aprobación incluyen on-request, el modo interactivo estándar; never, que desactiva los avisos de aprobación manteniendo las restricciones del sandbox; y granular, que es interactivo de forma selectiva para categorías concretas de acciones.

El acceso a la red en el sandbox

Según la misma página, la conectividad de red está desactivada por defecto. Para activarla en el modo workspace-write se define network_access = true en [sandbox_workspace_write] en el archivo de configuración, y una función opcional network_proxy puede limitar el tráfico a listas de dominios permitidos configuradas. En macOS, la aplicación se basa en políticas Seatbelt mediante sandbox-exec; en Linux, en bwrap junto con seccomp.

config.toml
[sandbox_workspace_write]
network_access = true

Este ajuste regula los comandos que se ejecutan dentro del sandbox. Es un límite útil, y conviene precisar lo que no es: no es un registro de conexiones, y la conexión del propio agente con un servicio de modelos es una cuestión aparte. Este artículo no enumera los dominios propios de Codex, porque las páginas revisadas no ofrecen una lista documentada por el proveedor.

Por qué sigue siendo útil una vista de red

Si activas el acceso a la red para que las pruebas descarguen dependencias, o usas danger-full-access, el sandbox deja de limitar a dónde se conectan los comandos. En ese momento, la comprobación que queda es ver los destinos a los que llegó realmente el programa. También cubre el caso en que olvidaste que habías cambiado el ajuste.

Vigilar Codex con FireAI

FireAI es un cortafuegos para macOS desarrollado por HisnLabs y, desde la versión 1.0.2, cuenta con una función llamada Perfil de agente. Reconoce 19 agentes de IA, aprende a dónde se conecta normalmente cada uno y señala los comportamientos inusuales para que los revises. Codex es un agente de línea de comandos, así que FireAI lo reconoce por el nombre de su programa.

Codex se identifica por el nombre de su programa, codex, lo que significa que FireAI etiqueta la coincidencia y no la verifica con la firma de un desarrollador. Solo Claude Code, Claude y Cursor se comprueban de ese modo.

FireAI también reconoce los procesos hijo del agente, como un shell, git o curl que el agente ejecute, recorriendo los procesos padre hasta llegar al agente. Por tanto, esas conexiones se cuentan como propias del agente.

Qué señala FireAI

  1. Durante los 3 primeros días, FireAI aprende los destinos con los que el agente contacta normalmente, agrupados por dominio. Durante este periodo de aprendizaje no se señala nada.
  2. A partir de ahí, un destino nunca visto fuera de la línea base aprendida se señala para su revisión.
  3. También se señala un pico de subida: una hora en la que el agente haya enviado al menos 4 veces lo de su hora de mayor actividad hasta entonces, y nunca menos de 25 MB.

Perfil de agente solo usa metadatos, es decir, nombres de host y recuentos de bytes. FireAI nunca lee el contenido de una conexión y no puede leer dentro de una conexión cifrada.

Configurarlo para Codex

  1. Instala FireAI y completa la configuración; después sigue usando Codex como de costumbre. El periodo de aprendizaje de 3 días parte de lo que FireAI observa.
  2. Abre Sugerencias y mira la tarjeta Agentes de IA. Muestra los agentes que FireAI ha reconocido y lo que ha aprendido de cada uno.
  3. Cuando Codex llega a un destino con el que nunca ha contactado, la señal aparece en la tarjeta Agentes de IA y en Revisión rápida. Desliza a la izquierda para bloquear o a la derecha para «Está bien».
  4. Bloquear crea una regla para el proceso que se conectó. «Está bien» añade el destino a la línea base del agente para que no vuelva a señalarse.
  5. Si quieres mantener el agente en los lugares que ya usa, elige Perfil de agente en el menú de modos de seguridad, junto a Casa, Cafetería, Paranoico y Bajo ataque. Cuando el agente ha terminado de aprender, una conexión a un destino fuera de su línea base se bloquea en lugar de señalarse.
  6. Un destino bloqueado aparece en la tarjeta Agentes de IA con Permitir y Mantener bloqueado. Permitir lo añade a la línea base y el agente puede alcanzarlo de inmediato. Mantener bloqueado crea una regla de bloqueo, de modo que el destino sigue bloqueado en todos los modos.

Límites

  • FireAI no impide la inyección de prompts. Un prompt oculto en una página web o en un archivo puede seguir dirigiendo a un agente. Lo que FireAI puede hacer es señalar, y permitirte bloquear, el camino que seguirían los datos para salir de tu Mac.
  • FireAI no puede ver los prompts, el contenido de las herramientas MCP ni qué archivos lee Codex, como ~/.ssh. TLS oculta el contenido, y FireAI no está dentro del agente.
  • Los procesos hijo que terminan muy deprisa pueden pasar inadvertidos, y los procesos hijo se identifican por su ruta, no por su firma.
  • Durante el periodo de aprendizaje de 3 días no se señala nada.
  • En el modo Perfil de agente, una conexión a una dirección IP directa sin nombre de host se identifica por su dirección. Si un servicio que el agente usa normalmente responde desde una dirección nueva, queda bloqueado hasta que lo permitas.
  • La explicación en lenguaje sencillo que FireAI da de una señal se redacta a partir de datos que ha medido. Nunca dice que un destino sea seguro o peligroso. La decisión es tuya.

Guías relacionadas

El mismo enfoque se aplica a los demás agentes que reconoce FireAI: Claude Code, la app de escritorio de Claude, Cursor, la app de ChatGPT para Mac, OpenClaw, Hermes Agent, Gemini CLI, GitHub Copilot CLI, Amp, Qwen Code, opencode, Aider, Goose, Crush, Windsurf, Kiro, Trae, Muse de Meta, cualquier otro agente de IA ejecutado con Python o Node. La descripción completa de la función está en la documentación de Perfil de agente.

El papel de FireAI y de HisnLabs

Codex mantiene desactivada por defecto la red de su propio sandbox. FireAI vigila el resto del panorama.

FireAI es el propio producto de HisnLabs: un cortafuegos con IA integrada para Mac. Muestra, en lenguaje claro, cada conexión que hacen tus aplicaciones y te deja decidir qué sale de tu Mac; su IA funciona en el propio equipo, así que tu tráfico nunca se envía a HisnLabs ni a nadie más. El equipo de investigación en seguridad de HisnLabs es quien mantiene esas decisiones fiables: cataloga qué dominios son simple telemetría frente a un servicio real, sigue el país y la red detrás de una conexión, y entrena el modelo local (la función FireAI Pilot) con tráfico real, sin que nada salga de tu Mac.

Puedes leer las decisiones técnicas detrás de esto, o probar FireAI durante 17 días, en FireAI, de HisnLabs.

Fuentes