
node9-proxy v1.67.1
Il livello di sicurezza dell'esecuzione per l'era degli agenti. Fornisce una governance deterministica "Sudo" e registri di audit per agenti AI autonomi.
🛡️ Node9
Cosa ha fatto realmente il tuo agente AI? Scoprilo.
Node9 si posiziona tra il tuo agente AI e gli strumenti che può usare — scopri cosa ha già fatto, proteggi da azioni rischiose in tempo reale e rivedi cosa è successo in qualsiasi intervallo di tempo.
Funziona con Claude Code · Codex CLI · Antigravity (agy) · GitHub Copilot CLI · Gemini CLI · Cursor · Windsurf · VSCode · Claude Desktop · Opencode · Pi · Hermes Agent · qualsiasi server MCP.
Cosa fa Node9
- 🔍 Scopri — analizza ogni sessione AI passata per fughe di credenziali, loop degli agenti, operazioni bloccate e ogni segreto su disco che un agente potrebbe raggiungere in questo momento
- 🛡 Proteggi — rivedi o blocca comandi rischiosi prima che vengano eseguiti —
rm -rf,git push --force,DROP TABLE, letture di credenziali,curl | bash, fughe di chiavi AWS/GitHub/Stripe - 📊 Rivedi — report per intervallo di tempo (oggi / settimana / mese / 90 giorni) — costo per agente, strumenti principali, scudi attivati, raggio di esplosione
Scansione retrospettiva
Questa è la mia macchina — 90 giorni mentre costruivo Node9. Punteggio 25/100, 5 file di credenziali che un agente AI potrebbe raggiungere ora.
npx node9-ai scan # before installation, runs in ~10s, nothing uploads
node9 scan # after installation, same output
Schermata del punteggio di Node9 scan
Scheda valutativa della postura di sicurezza
node9 posture valuta quanto questa macchina sia esposta a un agente compromesso — isolamento, uscita di rete, segreti su disco, supply chain, privilegi — e ti fornisce il comando esatto per risolvere ogni rilevamento.
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)
I rilevamenti sono raggruppati per chi può risolverli: 🔒 quelli che node9 riduce (basta eseguire il comando) e 🧱 quelli che solo tu puoi. Ogni rilevamento include una spiegazione in linguaggio semplice di cosa / perché / chi e una vera soluzione — ad esempio, il rilevamento "l'agente viene eseguito senza sandbox sull'host" punta direttamente a node9 sandbox run (sotto).
🛡️ 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
Scansiona un repository — sicurezza agente-CI
node9 scan-repo controlla qualsiasi repository (o cartella locale) per individuare modi in cui un agente AI collegato a GitHub Actions potrebbe essere dirottato da un esterno — flussi di lavoro iniettabili, segreti raggiungibili dall'agente, server MCP non bloccati, configurazione dell'agente troppo ampia e file di istruzioni avvelenati. Solo statico e di analisi: legge solo la configurazione committata, non esegue mai il codice del repository. Nessuna installazione o token necessari per repository pubblici.
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
Cosa controlla:
| Check | Flags |
|---|---|
| CI-1 | configurazione agente committata che pre-autorizza strumenti ampi o esegue hook remoti |
| CI-2 | flussi di lavoro agente iniettabili — un esterno può attivare l'agente e dirottarlo |
| CI-3 | server MCP non bloccati / @latest o credenziali inline (supply chain) |
| CI-4 | segreti che un agente iniettato potrebbe esfiltrare |
| CI-6 | istruzioni avvelenate o pericolose in CLAUDE.md / AGENTS.md / skills |
Blocca ogni PR — lo stesso motore di GitHub Action, in modo che una configurazione dirottabile non possa essere unita:
# .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
Monitoraggio in tempo reale
Dashboard di monitoraggio Node9
node9 monitor apre una dashboard interattiva nel terminale con due viste:
[1]In tempo reale — attività live, approvazioni, avvisi di sicurezza, punteggio di rischio corrente[2]Report — riepilogo per intervallo di tempo: costo, strumenti principali, scudi attivati, raggio di esplosione
Report
Premi [2] nel monitor per un riepilogo per intervallo di tempo. Cambia finestra con [T]oday · [W]eek · [M]onth · [N]inety — stessi pannelli della scansione sopra, basati sul log di audit post-installazione.
Node9 monitor [2] Report
node9 monitor # press [2] for Report view
node9 report --period 7d # CLI form, no TUI
Installazione
# 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
Richiede Node.js 18+.
Scudi — pacchetti di regole curati
Ogni scudo è un set di regole curato per un servizio o dominio. Abilita solo ciò di cui hai bisogno.
| Scudo | Cosa intercetta | Abilita |
|---|---|---|
project-jail | Blocca letture di ~/.ssh, ~/.aws, .env, credenziali tramite Bash e strumento Read | node9 shield enable project-jail |
bash-safe | curl | bash, rm -rf /, sovrascrittura disco, eval di remoto | node9 shield enable bash-safe |
postgres | DROP TABLE, TRUNCATE, DROP COLUMN, DELETE senza WHERE | node9 shield enable postgres |
mongodb | dropDatabase, drop(), deleteMany({}), eliminazione indici | node9 shield enable mongodb |
redis | FLUSHALL, FLUSHDB, CONFIG SET su un server live | node9 shield enable redis |
aws | Eliminazione S3, terminazione EC2, modifiche IAM, distruzione RDS | node9 shield enable aws |
k8s | Eliminazione namespace, helm uninstall, cancellazione ruoli cluster | node9 shield enable k8s |
docker | system prune, volume prune, rm -f contenitori | node9 shield enable docker |
github | gh repo delete, eliminazione ramo remoto, modifiche impostazioni | node9 shield enable github |
filesystem | chmod 777, scritture in /etc/, /boot/, /usr/ | node9 shield enable filesystem |
mcp-tool-gating | strumenti MCP non approvati che attivano silenziosamente nuove capacità | node9 shield enable mcp-tool-gating |
node9 shield list # show all shields + status
Sempre attivo — nessuna configurazione necessaria
- Git — intercetta
git push --force,git reset --hard,git clean -fd - SQL — intercetta
DELETE/UPDATEsenzaWHERE,DROP TABLE,TRUNCATE - Shell — intercetta
curl | bash,sudonon autorizzato - DLP — segnala chiavi AWS, token GitHub, chiavi Stripe, chiavi private PEM in qualsiasi argomento di strumento, contenuti di file o configurazioni di shell (
~/.zshrc,~/.bashrc) - Response DLP — scanner in background legge la cronologia delle conversazioni di Claude e ti avvisa se Claude ha scritto un segreto nel testo della risposta
- Auto-undo — snapshot git prima di ogni modifica file AI →
node9 undoper annullare - Skills pinning — verifica SHA-256 delle skills / plugin di Claude installati tra le sessioni
Prompt di revisione — approva in linea, nel tuo agente
Quando node9 segnala un'azione per la revisione (ad es. git push --force, un DROP TABLE), il prompt di approvazione/rifiuto viene visualizzato in linea nella conversazione dell'agente — nessuna sessione bloccata, nessun terminale separato, nessuna corsa al timeout dell'hook. node9 esegue comunque il valutatore completo e prende la decisione; solo la superficie del prompt si sposta sull'agente.
- Attivo per impostazione predefinita per Claude Code e GitHub Copilot CLI — gli agenti il cui contratto hook onora un
asknativo. Tutti gli altri agenti (Codex, Gemini, Antigravity, Hermes, Cursor, OpenCode, Pi) usano il proprio approvatore di node9. - Controllalo con
reviewChannelin~/.node9/config.json(o--no-asksull'hook):
{
"settings": {
"reviewChannel": "ask", // "ask" = inline agent prompt (default) | "approver" = node9's own approver
},
}
- Configurazioni di team: quando è configurato un approvatore cloud/team (
approvers.cloud: true), le revisioni vengono indirizzate a quell'approvatore invece — node9 non permetterà a un'auto-approvazione in linea di bypassare l'approvazione instradata/di seconda parte.
Sandbox — esegui un agente in un carcere
Quando osservare non basta, node9 sandbox esegue l'agente all'interno di un contenitore usa e getta con una lista di permessi di uscita di rete applicata a livello kernel e mount con ambito limitato — mentre gli hook di node9 governano e controllano ogni chiamata strumento all'interno della scatola. La versione hard della protezione: l'agente può toccare solo la cartella che monti e raggiungere gli host che permetti; tutto il resto viene bloccato a livello kernel.
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
- Usa e getta — il contenitore viene distrutto all'uscita; le modifiche al progetto finiscono sul tuo disco reale, nient'altro sopravvive.
- Stessa policy — i tuoi scudi / regole di uscita / approvazioni esistenti si applicano all'interno della scatola, trasmessi allo stesso log di audit e dashboard.
- Chiude il ciclo della postura — eseguendolo, i rilevamenti di Isolamento / Uscita diventano verdi.
Ambito onesto (Fase 1): singolo contenitore, Claude prima (Codex dopo); l'agente mantiene ancora le proprie credenziali proprie nella scatola (il muro di uscita le confina agli host consentiti) — "l'agente non possiede mai un segreto" è la fase di credential-broker sulla roadmap. Richiede Docker.
Gateway MCP
Avvolgi qualsiasi server MCP in modo trasparente. L'agente vede lo stesso server — Node9 intercetta ogni chiamata strumento.
{
"mcpServers": {
"postgres": {
"command": "node9",
"args": ["mcp", "--upstream", "npx -y @modelcontextprotocol/server-postgres postgresql://..."]
}
}
}
Oppure esegui semplicemente node9 init — avvolge automaticamente i tuoi server MCP esistenti.
🔐 Blocco degli strumenti MCP — difesa contro attacchi rug-pull
I server MCP possono cambiare le definizioni degli strumenti tra le sessioni. Un server compromesso o malintenzionato potrebbe aggiungere, rimuovere o modificare strumenti silenziosamente dopo che lo hai inizialmente fidato — un attacco rug pull.
Node9 blocca le definizioni degli strumenti al primo utilizzo:
- Prima connessione — il gateway registra un hash SHA-256 di nome, descrizione e schema di ogni strumento
- Connessioni successive — l'hash viene confrontato; se gli strumenti sono cambiati, la sessione viene messa in quarantena e ogni chiamata strumento viene bloccata finché un umano non rivede e approva la modifica
- Stato del blocco corrotto — fallisce chiuso (blocca), non si fida mai silenziosamente di nuovo
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
Altri comandi
Oltre ai tre comandi di flusso precedenti (scan / monitor / report):
| Comando | Cosa mostra | Quando usarlo |
|---|---|---|
node9 blast | Cosa un agente AI può raggiungere ora — file, credenziali, env | Prima cosa da eseguire su qualsiasi macchina |
node9 tail | Flusso live di ogni chiamata strumento (solo testo, nessuna TUI) | Pipe verso altri strumenti, CI, log |
node9 sessions | Cronologia delle sessioni con prompt, traccia strumenti, costo, snapshot | Per rivedere un passaggio di consegne o lavoro passato |
node9 dlp | Rilevamenti di fughe di credenziali nel testo di risposta di Claude | Ogni volta che scatta un alert desktop DLP |
node9 mask | Oscura segreti in chiaro dai file di cronologia delle sessioni locali | Dopo un rilevamento DLP — pulisce il disco locale |
Inoltre un HUD live nella riga di stato di 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
Leggere i dati — cosa significano i numeri
Node9 mette in evidenza il segnale. Ecco i pattern che vale la pena conoscere:
| Segnale | Significato probabile |
|---|---|
Would have blocked ≥ 5 in una settimana | L'agente sta tentando operazioni ad alto impatto; vale la pena rivedere gli scudi |
Una singola regola review-git-push >50% dei rilevamenti | La tua regola sta funzionando come previsto — non è un rischio, solo supervisione |
Rilevamento DLP nello strumento user-prompt | Hai incollato un segreto nel tuo prompt — ruota la chiave |
| Agent Loop ×50+ sullo stesso file | Agente bloccato in un ciclo edit/test/fix — controlla il contesto o rallenta |
| Disallineamento blocco strumento MCP | Il server ha cambiato i suoi strumenti — rivedi prima di fidarti di nuovo |
| Avviso risposta MCP grande | Quel server sta gonfiando la tua finestra di contesto per ogni turno successivo |
Allarme Response DLP | Claude ha scritto un segreto nel testo di risposta — non bloccato, ruota immediatamente |
Rilevamento DLP in tool-result | Claude ha letto un file contenente un segreto (.env, credenziali) — ruota la chiave ed esegui node9 mask |
Rilevamento DLP in [Shell] | Segreto in chiaro in ~/.zshrc o ~/.bashrc — ogni sessione AI può vederlo |
Segnali una tantum sono normali; i pattern persistenti sono su cui agire.
SDK Python — governa qualsiasi agente Python
from node9 import configure, protect
configure(agent_name="my-agent", policy="require_approval")
@protect("bash")
def run_command(cmd: str) -> str:
...
SDK Python → · Esempio di agente di revisione del codice CI →
Sotto il cofano
- Scan legge la cronologia grezza dell'agente da
~/.claude/projects/,~/.gemini/tmp/,~/.gemini/antigravity-*/brain/,~/.copilot/session-state/,~/.codex/sessions/— nessuna chiamata API, completamente offline - Runtime intercetta le chiamate strumento tramite hook pre-esecuzione (Claude Code, Codex, Antigravity, GitHub Copilot CLI, Gemini CLI, Opencode, Pi) o tramite il gateway MCP (Cursor, Windsurf, VSCode, Claude Desktop). Tutte le decisioni vengono salvate atomicamente in
~/.node9/audit.log. - Gateway MCP è un proxy stdio; intercetta
tools/list+tools/callJSON-RPC, inoltra il resto - Motore delle policy usa mvdan-sh per l'analisi AST di bash — sconfigge l'offuscamento tramite escaping con backslash, sostituzione di variabili, eval di download remoto
- Repo ombra per auto-undo si trova in
~/.node9/snapshots/<hash16>/— non tocca mai il tuo.git - Sandbox genera un Dockerfile + entrypoint che sigillano un muro di uscita
ipset/iptablescon negazione predefinita, poi scende a un agente non root con il demone e gli hook di node9 in esecuzione all'interno; solo il file delle credenziali dell'agente viene montato, mai tutto il tuo~/.claude
Documentazione completa
Riferimento configurazione, regole intelligenti, regole con stato, host fidati, modalità di approvazione, riferimento CLI — su node9.ai/docs.
Progetti correlati
- node9-python — SDK Python
- node9-pr-agent — Azione GitHub che revisiona le PR tramite Node9
Enterprise
Node9 Pro aggiunge blocco di governance, SAML/SSO, esportazione audit centralizzata e distribuzione VPC. Vedi node9.ai.
Licenza
Apache-2.0
Realizzato con ☕ e sana paranoia.