Volver a actualizaciones
Nuevo releaseAug 21, 2026

node9-proxy v1.67.3

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

¿Qué hizo realmente tu agente de IA? Descúbrelo.

npm version monthly downloads License: Apache 2.0 Documentation Try on HF Spaces

Node9 se sitúa entre tu agente de IA y las herramientas que puede usar — descubre lo que ya ha estado haciendo, protege contra acciones arriesgadas en tiempo real y revisa lo que sucedió en cualquier ventana de tiempo.

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.

Qué hace Node9

  • 🔍 Descubrir — escanea cada sesión pasada de IA en busca de fugas de credenciales, bucles de agente, operaciones bloqueadas y todos los secretos en disco a los que un agente podría acceder ahora mismo
  • 🛡 Proteger — revisa o bloquea comandos arriesgados antes de que se ejecuten — rm -rf, git push --force, DROP TABLE, lecturas de credenciales, curl | bash, fugas de claves AWS/GitHub/Stripe
  • 📊 Revisar — informe por ventana de tiempo (hoy / semana / mes / 90 días) — costo por agente, herramientas principales, escudos activados, radio de explosión

Escaneo retrospectivo

Esta es mi propia máquina — 90 días mientras construía Node9. Puntuación 25/100, 5 archivos de credenciales a los que un agente de IA podría acceder ahora mismo.

npx node9-ai scan   # antes de la instalación, se ejecuta en ~10s, no sube nada
node9 scan          # después de la instalación, misma salida

Node9 scan scorecard

Tarjeta de puntuación de postura de seguridad

node9 posture califica cuán expuesta está esta máquina a un agente comprometido — aislamiento, salida, secretos en disco, cadena de suministro, privilegio — y te da el comando exacto para arreglar cada hallazgo.

node9 posture          # tarjeta de puntuación con el riesgo #1 y un arreglo para cada hallazgo
node9 posture --ship   # envía una instantánea censurada a tu panel de node9 (vista de flota)

Los hallazgos se agrupan por quién puede solucionarlos: 🔒 los que node9 reduce (solo ejecuta el comando) y 🧱 los que solo tú puedes. Cada uno lleva una explicación en lenguaje sencillo de qué / por qué / quién y una corrección real — por ejemplo, el hallazgo de "el agente se ejecuta sin sandbox en el host" apunta directamente a node9 sandbox run (abajo).

🛡️  Node9 Posture — agente en este host        Puntuación: 100/100  (Bien)
  2 avisos abajo no afectan la puntuación — exposición a nivel de SO, tú decides.

  🟢 node9 ya te está protegiendo
  ✅ Secretos        node9 DLP está bloqueando esto
  ✅ Salida          node9 salida está requiriendo aprobación
  ✅ Puerta de aprobación  node9 está bloqueando esto
  ✅ Privilegio      node9 está requiriendo aprobación

  🔒 node9 reduce estos — ejecuta el comando, el resto es tuyo
  ⚠️  Aislamiento     Ejecutándose directamente en el host — sin contenedor
                   El agente opera libremente en toda tu máquina, no en un sandbox.
                   → node9 sandbox run <agent>   — enciérralo: salida a nivel de kernel + montajes con alcance + node9 dentro
                   → node9 shield enable project-jail   — o reduce el radio de explosión, mantén acceso al host
  ⚠️  Exposición de red  4 servicios en 0.0.0.0 (node :3000/:4000, PostgreSQL :5432, Redis :6379)
                   Accesibles desde toda tu red, no solo desde este portátil.
                   → node9 shield enable postgres|redis   — node9 bloquea DROP TABLE / FLUSHALL
                   → vincular a 127.0.0.1 / firewallear el puerto   (tu parte)

  ✅ Cadena de suministro   sin problemas encontrados
  ✅ Cobertura       sin problemas encontrados

  Rastrea esto en tu flota y mantenlo en verde → node9.ai

Escanear un repositorio — seguridad de agente-CI

node9 scan-repo verifica cualquier repositorio (o una carpeta local) en busca de formas en que un agente de IA integrado en GitHub Actions podría ser secuestrado por un externo — flujos de trabajo inyectables, secretos accesibles por el agente, servidores MCP sin fijar, configuración de agente demasiado amplia y archivos de instrucciones envenenados. Estático y solo de análisis: solo lee configuración confirmada, nunca ejecuta código del repositorio. No se necesita instalación ni token para repositorios públicos.

npx node9-ai scan-repo <owner/repo>   # cualquier repositorio público, sin instalación
node9 scan-repo .                      # un checkout local — sin red
node9 scan-repo <owner/repo> --json    # legible por máquina
🛡️  node9 scan-repo · node9-ai/agent-security-demo · ⚠️ riesgo de seguridad de agente encontrado
   inspeccionado(s) 2 archivo(s) de configuración, 2 hallazgo(s)

🔴 CRÍTICO  Flujo de trabajo de agente inyectable — entrada no confiable llega a un agente que usa herramientas con secretos
   .github/workflows/vulnerable-example.yml · CI-2
     • se ejecuta con secretos del repositorio base (pull_request_target)
     • verifica la cabeza del PR no confiable en la raíz del espacio de trabajo
     • allowed_non_write_users: "*" — cualquier usuario puede activar el agente
     • sin puerta de actor efectiva

🔴 CRÍTICO  Secretos exfiltrables accesibles por un agente inyectable
   .github/workflows/vulnerable-example.yml · CI-4
     • el agente tiene shell arbitrario (Bash puro) → puede leer env y exfiltrar

Qué verifica:

VerificaciónBanderas
CI-1configuración de agente confirmada que pre-autoriza herramientas amplias o ejecuta hooks remotos
CI-2flujos de trabajo de agente inyectables — un externo puede activar el agente y secuestrarlo
CI-3servidores MCP sin fijar / @latest o credenciales en línea (cadena de suministro)
CI-4secretos que un agente inyectado podría exfiltrar
CI-6instrucciones envenenadas o peligrosas en CLAUDE.md / AGENTS.md / skills

Gatea cada PR — el mismo motor que una GitHub Action, para que una configuración secuestrable no pueda fusionarse:

# .github/workflows/agent-security.yml
- uses: node9-ai/agent-security-action@v1
  with:
    fail-on: high # o 'never' para solo comentar

Marketplace: node9 Agent Security Check

Monitoreo en vivo

Node9 monitor dashboard

node9 monitor abre un panel de terminal interactivo con dos vistas:

  • [1] Tiempo real — actividad en vivo, aprobaciones, alertas de seguridad, puntuación de riesgo actual
  • [2] Informe — resumen por ventana de tiempo: costo, herramientas principales, escudos activados, radio de explosión

Informe

Presiona [2] en el monitor para un resumen por ventana de tiempo. Alterna la ventana con [H]oy · [S]emana · [M]es · [N]oventa — los mismos paneles que el escaneo anterior, impulsados por tu registro de auditoría posterior a la instalación.

Node9 monitor [2] Report

node9 monitor              # presiona [2] para la vista de Informe
node9 report --period 7d   # forma CLI, sin TUI

Instalación

# macOS / Linux
brew tap node9-ai/node9 && brew install node9

# o mediante npm (cualquier plataforma)
npm install -g node9-ai
node9 init       # conecta automáticamente todos los agentes detectados + servidores MCP
node9 doctor     # verifica que todo esté conectado correctamente

Requiere Node.js 18+.

Escudos — paquetes de reglas seleccionados

Cada escudo es un conjunto de reglas seleccionado para un servicio o dominio. Habilita solo lo que necesitas.

EscudoQué detectaHabilitar
project-jailBloquea lecturas de ~/.ssh, ~/.aws, .env, credenciales mediante Bash y Herramienta de Lecturanode9 shield enable project-jail
bash-safecurl | bash, rm -rf /, sobrescritura de disco, eval de remotonode9 shield enable bash-safe
postgresDROP TABLE, TRUNCATE, DROP COLUMN, DELETE sin WHEREnode9 shield enable postgres
mongodbdropDatabase, drop(), deleteMany({}), eliminación de índicesnode9 shield enable mongodb
redisFLUSHALL, FLUSHDB, CONFIG SET en un servidor en vivonode9 shield enable redis
awsEliminación de S3, terminación de EC2, cambios de IAM, destrucción de RDSnode9 shield enable aws
k8sEliminación de namespace, helm uninstall, limpieza de roles de clústernode9 shield enable k8s
dockersystem prune, volume prune, rm -f contenedoresnode9 shield enable docker
githubgh repo delete, eliminación de rama remota, cambios de configuraciónnode9 shield enable github
filesystemchmod 777, escrituras bajo /etc/, /boot/, /usr/node9 shield enable filesystem
mcp-tool-gatingherramientas MCP no aprobadas que activan silenciosamente nuevas capacidadesnode9 shield enable mcp-tool-gating
node9 shield list    # muestra todos los escudos + estado

Siempre activo — sin configuración necesaria

  • Git — detecta git push --force, git reset --hard, git clean -fd
  • SQL — detecta DELETE / UPDATE sin WHERE, DROP TABLE, TRUNCATE
  • Shell — detecta curl | bash, sudo no autorizado
  • DLP — marca claves AWS, tokens de GitHub, claves Stripe, claves privadas PEM en cualquier argumento de herramienta, contenido de archivos o configuración de shell (~/.zshrc, ~/.bashrc)
  • DLP de respuesta — escáner de fondo que lee el historial de conversaciones de Claude y te alerta si Claude escribió un secreto en su texto de respuesta
  • Deshacer automático — instantánea de git antes de cada edición de archivo por IA → node9 undo para revertir
  • Fijación de skills — verificación SHA-256 de los skills/plugins de Claude instalados entre sesiones

Indicaciones de revisión — aprueba en línea, en tu agente

Cuando node9 marca una acción para revisión (p. ej., git push --force, un DROP TABLE), la indicación de aprobar/rechazar se renderiza en línea en la conversación del agente — sin sesión congelada, sin terminal separado, sin carrera de tiempo de espera del hook. node9 aún ejecuta el evaluador completo y toma la decisión; solo la superficie de la indicación se mueve al agente.

  • Activado por defecto para Claude Code y GitHub Copilot CLI — los agentes cuyo contrato de hook soporta un ask nativo. Cualquier otro agente (Codex, Gemini, Antigravity, Hermes, Cursor, OpenCode, Pi) usa el aprobador propio de node9.
  • Contrólalo con reviewChannel en ~/.node9/config.json (o --no-ask en el hook):
{
  "settings": {
    "reviewChannel": "ask", // "ask" = indicación en línea en el agente (predeterminado) | "approver" = aprobador propio de node9
  },
}
  • Configuraciones de equipo: cuando un aprobador en la nube/equipo está configurado (approvers.cloud: true), las revisiones se dirigen a ese aprobador — node9 no permitirá que una auto-aprobación en línea evite la aprobación enrutada/de segunda parte.

Sandbox — ejecuta un agente en una celda

Cuando observar no es suficiente, node9 sandbox ejecuta el agente dentro de un contenedor desechable con una lista de permitidos de salida impuesta por el kernel y montajes con alcance — mientras los hooks de node9 gobiernan y auditan cada llamada de herramienta dentro de la caja. La versión dura de protección: el agente solo puede tocar la carpeta que montas y alcanzar los hosts que permites; todo lo demás se elimina a nivel de kernel.

cd ~/my-project
node9 sandbox new        # escribe node9.sandbox.yaml — qué montar + qué hosts permitir
node9 sandbox run        # construye + arranca el agente encerrado (tu proyecto en /workspace)
node9 sandbox tail       # observa las acciones del agente en vivo, desde el host
  • Desechable — el contenedor se destruye al salir; las ediciones de tu proyecto aterrizan en tu disco real, nada más sobrevive.
  • Misma política — tus escudos / reglas de salida / aprobaciones existentes se aplican dentro de la caja, transmitidas al mismo registro de auditoría y panel.
  • Cierra el bucle de postura — ejecutarlo pone en verde los hallazgos de Aislamiento / Salida.

Alcance honesto (Fase 1): contenedor único, Claude primero (Codex después); el agente aún conserva sus propias credenciales en la caja (la pared de salida las confina a los hosts permitidos) — "el agente nunca posee un secreto" es la fase de broker de credenciales en la hoja de ruta. Requiere Docker.

Puerta de enlace MCP

Envuelve cualquier servidor MCP de forma transparente. El agente ve el mismo servidor — Node9 intercepta cada llamada de herramienta.

{
  "mcpServers": {
    "postgres": {
      "command": "node9",
      "args": ["mcp", "--upstream", "npx -y @modelcontextprotocol/server-postgres postgresql://..."]
    }
  }
}

O simplemente ejecuta node9 init — envuelve tus servidores MCP existentes automáticamente.

🔐 Fijación de herramientas MCP — defensa contra tirón de alfombra

Los servidores MCP pueden cambiar sus definiciones de herramientas entre sesiones. Un servidor comprometido o malicioso podría agregar, eliminar o modificar herramientas silenciosamente después de que lo hayas confiado inicialmente — un ataque de tirón de alfombra.

Node9 fija las definiciones de herramientas en el primer uso:

  1. Primera conexión — la puerta de enlace registra un hash SHA-256 del nombre, descripción y esquema de cada herramienta
  2. Conexiones subsiguientes — se compara el hash; si las herramientas cambiaron, la sesión se pone en cuarentena y cada llamada de herramienta se bloquea hasta que un humano revise y apruebe el cambio
  3. Estado de fijación corrupto — falla cerrado (bloquea), nunca reconfía silenciosamente
node9 mcp pin list                # muestra todos los servidores fijados y hashes
node9 mcp pin update <serverKey>  # elimina la fijación, vuelve a fijar en la próxima conexión
node9 mcp pin reset               # limpia todas las fijaciones

Otros comandos

Además de los tres comandos de flujo anteriores (scan / monitor / report):

ComandoQué muestraCuándo usar
node9 blastA qué puede acceder un agente de IA ahora mismo — archivos, credenciales, envLo primero que ejecutar en cualquier máquina
node9 tailTransmisión en vivo de cada llamada de herramienta (solo texto, sin TUI)Canalizar a otras herramientas, CI, registros
node9 sessionsHistorial de sesiones con indicación, rastro de herramientas, costo, instantáneaRevisar una transferencia o trabajo pasado
node9 dlpHallazgos de fuga de credenciales en el texto de respuesta de ClaudeCada vez que se active una alerta de DLP de escritorio
node9 maskRedacta secretos en texto plano de archivos locales de historial de sesionesDespués de un hallazgo DLP — limpia el disco local

Además, un HUD en vivo en la línea de estado de tu Claude Code:

🛡 node9 | estándar | [bash-safe] | ✅ 12 permitidos  🛑 2 bloqueados  🚨 0 dlp | ~$0.43
📊 claude-opus-4-7 | ctx [████████░░░] 54% | 5h [██░░░░░░░░] 12% | 7d [█░░░░░░░] 7%
🗂 2 CLAUDE.md | 8 reglas | 3 MCPs | 4 hooks

Leyendo los datos — qué significan los números

Node9 muestra la señal. Aquí están los patrones que vale la pena conocer:

SeñalSignificado probable
Would have blocked ≥ 5 en una semanaEl agente está intentando operaciones de alto impacto; vale la pena revisar los escudos
Una sola regla review-git-push >50% de hallazgosTu propia regla se está disparando según lo previsto — no es un riesgo, solo supervisión
Hallazgo DLP en la herramienta user-promptPegaste un secreto en tu propia indicación — rota la clave
Bucle de agente ×50+ en el mismo archivoEl agente está atascado en un ciclo de editar/probar/arreglar — verifica el contexto o reduce la velocidad
Discrepancia de fijación de herramienta MCPEl servidor cambió sus herramientas — revisa antes de volver a confiar
Aviso de respuesta MCP grandeEse servidor está inflando tu ventana de contexto para cada turno subsiguiente
Alerta de Response DLPClaude escribió un secreto en su texto de respuesta — no bloqueado, rota inmediatamente
Hallazgo DLP en tool-resultClaude leyó un archivo que contenía un secreto (.env, credenciales) — rota la clave y ejecuta node9 mask
Hallazgo DLP en [Shell]Secreto en texto plano en ~/.zshrc o ~/.bashrc — cada sesión de IA puede verlo

Las señales únicas son normales; los patrones persistentes son en los que actúas.

SDK de Python — gobierna cualquier agente de Python

from node9 import configure, protect

configure(agent_name="my-agent", policy="require_approval")

@protect("bash")
def run_command(cmd: str) -> str:
    ...

SDK de Python → · Ejemplo de agente de revisión de código CI →

Bajo el capó

  • Escanear lee el historial de agente sin procesar de ~/.claude/projects/, ~/.gemini/tmp/, ~/.gemini/antigravity-*/brain/, ~/.copilot/session-state/, ~/.codex/sessions/ — sin llamadas API, completamente offline
  • Tiempo de ejecución intercepta llamadas de herramientas mediante hooks de pre-ejecución (Claude Code, Codex, Antigravity, GitHub Copilot CLI, Gemini CLI, Opencode, Pi) o mediante la puerta de enlace MCP (Cursor, Windsurf, VSCode, Claude Desktop). Todas las decisiones aterrizan en ~/.node9/audit.log de forma atómica.
  • Puerta de enlace MCP es un proxy stdio; intercepta tools/list + tools/call JSON-RPC, reenvía el resto
  • Motor de políticas usa mvdan-sh para análisis AST de bash — derrota la ofuscación mediante escapes con barra invertida, sustitución de variables, eval de descarga remota
  • Repositorio sombra para deshacer automático vive en ~/.node9/snapshots/<hash16>/ — nunca toca tu .git
  • Sandbox genera un Dockerfile + punto de entrada que sellan un muro de salida ipset/iptables de denegar por defecto, luego baja a un agente no root con el demonio y hooks de node9 ejecutándose dentro; solo se monta el archivo de credenciales del agente, nunca todo tu ~/.claude

Documentación completa

Referencia de configuración, reglas inteligentes, reglas con estado, hosts de confianza, modos de aprobación, referencia CLI — en node9.ai/docs.

Proyectos relacionados

Empresa

Node9 Pro agrega bloqueo de gobierno, SAML/SSO, exportación de auditoría central y despliegue en VPC. Consulta node9.ai.

Licencia

Apache-2.0

Construido con ☕ y paranoia saludable.

Categorías