Retour aux mises à jour
New releaseJul 24, 2026

node9-proxy v1.64.0

La couche de sécurité d'exécution pour l'ère agentique. Fournissant une gouvernance « Sudo » déterministe et des journaux d'audit pour les agents IA autonomes.

Partager

🛡️ Node9

Qu'est-ce que votre agent IA a vraiment fait ? Découvrez-le.

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

Node9 se place entre votre agent IA et les outils qu'il peut utiliser — découvrez ce qu'il a déjà fait, protégez contre les actions risquées en temps réel, et revoyez ce qui s'est passé sur n'importe quelle période.

Fonctionne avec Claude Code · Codex CLI · Antigravity (agy) · GitHub Copilot CLI · Gemini CLI · Cursor · Windsurf · VSCode · Claude Desktop · Opencode · Pi · Hermes Agent · tout serveur MCP.

Ce que fait Node9

  • 🔍 Découvrir — analyser chaque session IA passée pour détecter les fuites d'identifiants, les boucles d'agent, les opérations bloquées, et tous les secrets sur le disque qu'un agent pourrait atteindre maintenant
  • 🛡 Protéger — vérifier ou bloquer les commandes risquées avant qu'elles ne s'exécutent — rm -rf, git push --force, DROP TABLE, lectures d'identifiants, curl | bash, fuites de clés AWS/GitHub/Stripe
  • 📊 Revoir — rapport par période (aujourd'hui / semaine / mois / 90 jours) — coût par agent, outils principaux, boucliers déclenchés, rayon d'impact

Analyse rétrospective

C'est ma propre machine — 90 jours pendant le développement de Node9. Score 25/100, 5 fichiers d'identifiants qu'un agent IA pourrait atteindre maintenant.

npx node9-ai scan   # before installation, runs in ~10s, nothing uploads
node9 scan          # after installation, same output

Node9 scan scorecard

Tableau de bord de la posture de sécurité

node9 posture évalue à quel point cette machine est exposée à un agent compromis — isolation, sortie (egress), secrets sur le disque, chaîne d'approvisionnement, privilèges — et vous donne la commande exacte pour corriger chaque constat.

node9 posture          # scorecard with the #1 risk and a fix for every finding
node9 posture --ship   # send a redacted snapshot to your node9 dashboard (fleet view)

Les constats sont regroupés par qui peut les corriger : 🔒 ceux que node9 réduit (exécutez simplement la commande) et 🧱 ceux que vous seul pouvez. Chacun comporte un quoi/pourquoi/qui en langage clair et une correction réelle — par exemple, le constat « l'agent s'exécute sans sandbox sur l'hôte » pointe directement vers node9 sandbox run (ci-dessous).

🛡️  Node9 Posture — agent on this host        Score: 100/100  (Good)
  2 advisories below don't affect the score — OS-level exposure, yours to weigh.

  🟢 node9 is already protecting you
  ✅ Secrets        node9 DLP is blocking this
  ✅ Egress         node9 egress is approval-gating this
  ✅ Approval gate  node9 is blocking this
  ✅ Privilege      node9 is approval-gating this

  🔒 node9 reduces these — run the command, the rest is yours
  ⚠️  Isolation     Running directly on the host — no container
                   The agent runs loose on your whole machine, not in a sandbox.
                   → node9 sandbox run <agent>   — jail it: kernel egress + scoped mounts + node9 inside
                   → node9 shield enable project-jail   — or shrink the blast radius, keep host access
  ⚠️  Network exposure  4 services on 0.0.0.0 (node :3000/:4000, PostgreSQL :5432, Redis :6379)
                   Reachable from your whole network, not just this laptop.
                   → node9 shield enable postgres|redis   — node9 blocks DROP TABLE / FLUSHALL
                   → bind to 127.0.0.1 / firewall the port   (your part)

  ✅ Supply chain   no issues found
  ✅ Coverage       no issues found

  Track this across your fleet & keep it green → node9.ai

Analyser un dépôt — sécurité agent-CI

node9 scan-repo vérifie tout dépôt (ou dossier local) pour détecter comment un agent IA intégré dans GitHub Actions pourrait être détourné par un tiers — workflows injectables, secrets accessibles à l'agent, serveurs MCP non épinglés, configuration d'agent trop large, et fichiers d'instructions empoisonnés. Statique et analyse uniquement : il ne lit que la configuration validée, n'exécute jamais le code du dépôt. Aucune installation ou jeton requis pour les dépôts publics.

npx node9-ai scan-repo <owner/repo>   # any public repo, no install
node9 scan-repo .                      # a local checkout — no network
node9 scan-repo <owner/repo> --json    # machine-readable
🛡️  node9 scan-repo · node9-ai/agent-security-demo · ⚠️ agent-security risk found
   inspected 2 config file(s), 2 finding(s)

🔴 CRITICAL  Injectable agent workflow — untrusted input reaches a tool-using agent with secrets
   .github/workflows/vulnerable-example.yml · CI-2
     • runs with base-repo secrets (pull_request_target)
     • checks out the untrusted PR head into the workspace root
     • allowed_non_write_users: "*" — any user can trigger the agent
     • no effective actor gate

🔴 CRITICAL  Exfiltratable secrets reachable by an injectable agent
   .github/workflows/vulnerable-example.yml · CI-4
     • agent has arbitrary shell (bare Bash) → can read env and exfiltrate

Ce qu'il vérifie :

CheckFlags
CI-1configuration d'agent validée qui pré-autorise des outils larges ou exécute des hooks distants
CI-2workflows d'agent injectables — un tiers peut déclencher l'agent et le détourner
CI-3serveurs MCP non épinglés / @latest ou identifiants en ligne (chaîne d'approvisionnement)
CI-4secrets qu'un agent injecté pourrait exfiltrer
CI-6instructions empoisonnées ou dangereuses dans CLAUDE.md / AGENTS.md / skills

Bloquez chaque PR — le même moteur qu'une GitHub Action, afin qu'une configuration détournable ne puisse pas être fusionnée :

# .github/workflows/agent-security.yml
- uses: node9-ai/agent-security-action@v1
  with:
    fail-on: high # or 'never' to just comment

Marketplace : node9 Agent Security Check

Surveillance en direct

Node9 monitor dashboard

node9 monitor ouvre un tableau de bord interactif en terminal avec deux vues :

  • [1] Temps réel — activité en direct, approbations, alertes de sécurité, score de risque actuel
  • [2] Rapport — résumé par période : coût, outils principaux, boucliers déclenchés, rayon d'impact

Rapport

Appuyez sur [2] dans le moniteur pour un résumé par période. Basculez la fenêtre avec [T]oday · [W]eek · [M]onth · [N]inety — mêmes panneaux que l'analyse ci-dessus, alimentés par votre journal d'audit post-installation.

Node9 monitor [2] Report

node9 monitor              # press [2] for Report view
node9 report --period 7d   # CLI form, no TUI

Installation

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

# or via npm (any platform)
npm install -g node9-ai
node9 init       # auto-wires all detected agents + MCP servers
node9 doctor     # verify everything is wired correctly

Nécessite Node.js 18+.

Boucliers — packs de règles organisés

Chaque bouclier est un ensemble de règles organisé pour un service ou un domaine. N'activez que ce dont vous avez besoin.

BouclierCe qu'il intercepteActiver
project-jailBloque les lectures de ~/.ssh, ~/.aws, .env, les identifiants via les outils Bash et Readnode9 shield enable project-jail
bash-safecurl | bash, rm -rf /, écrasement de disque, eval de contenu distantnode9 shield enable bash-safe
postgresDROP TABLE, TRUNCATE, DROP COLUMN, DELETE sans WHEREnode9 shield enable postgres
mongodbdropDatabase, drop(), deleteMany({}), suppression d'indexnode9 shield enable mongodb
redisFLUSHALL, FLUSHDB, CONFIG SET sur un serveur actifnode9 shield enable redis
awsSuppression S3, terminaison EC2, modifications IAM, destruction RDSnode9 shield enable aws
k8sSuppression de namespace, helm uninstall, effacement de rôles de clusternode9 shield enable k8s
dockersystem prune, volume prune, rm -f de conteneursnode9 shield enable docker
githubgh repo delete, suppression de branche distante, modifications de paramètresnode9 shield enable github
filesystemchmod 777, écritures dans /etc/, /boot/, /usr/node9 shield enable filesystem
mcp-tool-gatingoutils MCP non approuvés activant silencieusement de nouvelles capacitésnode9 shield enable mcp-tool-gating
node9 shield list    # show all shields + status

Toujours actif — aucune configuration nécessaire

  • Git — intercepte git push --force, git reset --hard, git clean -fd
  • SQL — intercepte DELETE / UPDATE sans WHERE, DROP TABLE, TRUNCATE
  • Shell — intercepte curl | bash, sudo non autorisé
  • DLP — signale les clés AWS, jetons GitHub, clés Stripe, clés privées PEM dans tout argument d'outil, contenu de fichier, ou configuration shell (~/.zshrc, ~/.bashrc)
  • DLP de réponse — un scanner en arrière-plan lit l'historique des conversations de Claude et vous alerte si Claude a écrit un secret dans son texte de réponse
  • Annulation automatique — instantané git avant chaque édition de fichier par IA → node9 undo pour revenir en arrière
  • Épinglage des compétences — vérification SHA-256 des compétences/plugins Claude installés entre les sessions

Invites de révision — approuvez en ligne, dans votre agent

Lorsque node9 signale une action pour révision (par ex. git push --force, un DROP TABLE), l'invite d'approbation/refus s'affiche en ligne dans la conversation de l'agent — pas de session figée, pas de terminal séparé, pas de course au timeout de hook. node9 exécute toujours l'évaluateur complet et prend la décision ; seule la surface de l'invite est déplacée vers l'agent.

  • Activé par défaut pour Claude Code et GitHub Copilot CLI — les agents dont le contrat de hook honore un ask natif. Tous les autres agents (Codex, Gemini, Antigravity, Hermes, Cursor, OpenCode, Pi) utilisent le propre approbateur de node9.
  • Contrôlez-le avec reviewChannel dans ~/.node9/config.json (ou --no-ask sur le hook) :
{
  "settings": {
    "reviewChannel": "ask", // "ask" = inline agent prompt (default) | "approver" = node9's own approver
  },
}
  • Configurations d'équipe : lorsqu'un approbateur cloud/équipe est configuré (approvers.cloud: true), les révisions sont dirigées vers cet approbateur — node9 ne permettra pas à une auto-approbation en ligne de contourner l'approbation routée/de seconde partie.

Sandbox — exécuter un agent dans un bac à sable

Quand surveiller ne suffit pas, node9 sandbox exécute l'agent dans un conteneur jetable avec une liste blanche de sortie appliquée par le noyau et des montages limités — tandis que les hooks de node9 régissent et audite chaque appel d'outil à l'intérieur de la boîte. La version dure de la protection : l'agent ne peut toucher que le dossier que vous montez et atteindre les hôtes que vous autorisez ; tout le reste est bloqué au niveau du noyau.

cd ~/my-project
node9 sandbox new        # write node9.sandbox.yaml — what to mount + which hosts to allow
node9 sandbox run        # build + boot the jailed agent (your project at /workspace)
node9 sandbox tail       # watch the agent's actions live, from the host
  • Jetable — le conteneur est détruit à la sortie ; les modifications de votre projet atterrissent sur votre vrai disque, rien d'autre ne survit.
  • Même politique — vos boucliers / règles de sortie / approbations existants s'appliquent à l'intérieur de la boîte, diffusés vers le même journal d'audit et tableau de bord.
  • Ferme la boucle de posture — l'exécuter rend les constats Isolation / Sortie verts.

Périmètre honnête (Phase 1) : conteneur unique, Claude d'abord (Codex ensuite) ; l'agent conserve ses propres identifiants dans la boîte (le mur de sortie les confine aux hôtes autorisés) — "l'agent ne détient jamais de secret" est la phase de courtier d'identifiants sur la feuille de route. Nécessite Docker.

Passerelle MCP

Enveloppez tout serveur MCP de manière transparente. L'agent voit le même serveur — Node9 intercepte chaque appel d'outil.

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

Ou exécutez simplement node9 init — il enveloppe automatiquement vos serveurs MCP existants.

🔐 Épinglage des outils MCP — défense contre les retraits de tapis

Les serveurs MCP peuvent modifier leurs définitions d'outils entre les sessions. Un serveur compromis ou malveillant pourrait silencieusement ajouter, supprimer ou modifier des outils après que vous lui ayez fait confiance — une attaque de retrait de tapis.

Node9 épingle les définitions d'outils lors de la première utilisation :

  1. Première connexion — la passerelle enregistre un hachage SHA-256 du nom, de la description et du schéma de chaque outil
  2. Connexions suivantes — le hachage est comparé ; si les outils ont changé, la session est mise en quarantaine et chaque appel d'outil est bloqué jusqu'à ce qu'un humain examine et approuve le changement
  3. État d'épingle corrompu — échoue en sécurité (bloque), ne refait jamais confiance silencieusement
node9 mcp pin list                # show all pinned servers and hashes
node9 mcp pin update <serverKey>  # remove pin, re-pin on next connection
node9 mcp pin reset               # clear all pins

Autres commandes

Au-delà des trois commandes de flux ci-dessus (scan / monitor / report) :

CommandeCe qu'elle afficheQuand l'utiliser
node9 blastCe qu'un agent IA peut atteindre maintenant — fichiers, identifiants, envPremière chose à exécuter sur toute machine
node9 tailFlux en direct de chaque appel d'outil (texte seulement, pas d'interface)Pour le pipe vers d'autres outils, CI, logs
node9 sessionsHistorique des sessions avec invite, trace d'outils, coût, instantanéPour réviser un transfert ou un travail passé
node9 dlpConstats de fuite d'identifiants dans le texte de réponse de ClaudeÀ chaque fois qu'une alerte DLP de bureau se déclenche
node9 maskMasquer les secrets en texte clair des fichiers d'historique de session locauxAprès un constat DLP — nettoie le disque local

Plus un HUD en direct dans votre barre d'état Claude Code :

🛡 node9 | standard | [bash-safe] | ✅ 12 allowed  🛑 2 blocked  🚨 0 dlp | ~$0.43
📊 claude-opus-4-7 | ctx [████████░░░] 54% | 5h [██░░░░░░░░] 12% | 7d [█░░░░░░░] 7%
🗂 2 CLAUDE.md | 8 rules | 3 MCPs | 4 hooks

Lire les données — ce que signifient les chiffres

Node9 met en évidence le signal. Voici les schémas à connaître :

SignalSignification probable
Would have blocked ≥ 5 en une semaineL'agent tente des opérations à fort impact ; les boucliers méritent d'être révisés
Règle review-git-push unique >50% des constatsVotre propre règle se déclenche comme prévu — pas un risque, juste une supervision
Constat DLP dans l'outil user-promptVous avez collé un secret dans votre propre invite — faites tourner la clé
Boucle d'agent ×50+ sur le même fichierL'agent est coincé dans un cycle d'édition/test/correction — vérifiez le contexte ou ralentissez
Non-concordance d'épingle d'outil MCPLe serveur a modifié ses outils — examinez avant de refaire confiance
Avertissement de réponse MCP volumineuseCe serveur gonfle votre fenêtre de contexte à chaque tour suivant
Alerte DLP de réponseClaude a écrit un secret dans son texte de réponse — non bloqué, faites tourner immédiatement
Constat DLP dans tool-resultClaude a lu un fichier contenant un secret (.env, identifiants) — faites tourner la clé et exécutez node9 mask
Constat DLP dans [Shell]Secret en texte clair dans ~/.zshrc ou ~/.bashrc — chaque session IA peut le voir

Les signaux ponctuels sont normaux ; ce sont les schémas persistants sur lesquels vous agissez.

SDK Python — gouvernez n'importe quel agent Python

from node9 import configure, protect

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

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

SDK Python → · Exemple d'agent de révision de code CI →

Sous le capot

  • Analyse lit l'historique brut de l'agent depuis ~/.claude/projects/, ~/.gemini/tmp/, ~/.gemini/antigravity-*/brain/, ~/.copilot/session-state/, ~/.codex/sessions/ — aucun appel API, entièrement hors ligne
  • Exécution intercepte les appels d'outils via des hooks de pré-exécution (Claude Code, Codex, Antigravity, GitHub Copilot CLI, Gemini CLI, Opencode, Pi) ou via la passerelle MCP (Cursor, Windsurf, VSCode, Claude Desktop). Toutes les décisions atterrissent atomiquement dans ~/.node9/audit.log.
  • Passerelle MCP est un proxy stdio ; intercepte tools/list + tools/call JSON-RPC, transmet le reste
  • Moteur de politique utilise mvdan-sh pour l'analyse AST bash — déjoue l'obfuscation via l'échappement par backslash, la substitution de variables, l'évaluation de téléchargement distant
  • Dépôt fantôme pour l'annulation automatique se trouve dans ~/.node9/snapshots/<hash16>/ — ne touche jamais votre .git
  • Sandbox génère un Dockerfile + point d'entrée qui scellent un mur de sortie ipset/iptables par défaut refusé, puis passe à un agent non root avec le démon de node9 + hooks s'exécutant à l'intérieur ; seul le fichier d'identifiants de l'agent est monté, jamais tout votre ~/.claude

Documentation complète

Référence de configuration, règles intelligentes, règles avec état, hôtes de confiance, modes d'approbation, référence CLI — sur node9.ai/docs.

Projets connexes

Entreprise

Node9 Pro ajoute le verrouillage de gouvernance, SAML/SSO, l'export d'audit central, et le déploiement VPC. Voir node9.ai.

Licence

Apache-2.0

Construit avec ☕ et une paranoïa saine.

Catégories