Torna agli aggiornamenti
New releaseJul 24, 2026

node9-proxy v1.64.0

Il livello di sicurezza dell'esecuzione per l'era degli agenti. Fornisce una governance deterministica "Sudo" e registri di audit per agenti AI autonomi.

Condividi

🛡️ Node9

Cosa ha fatto realmente il tuo agente AI? Scoprilo.

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

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:

CheckFlags
CI-1configurazione agente committata che pre-autorizza strumenti ampi o esegue hook remoti
CI-2flussi di lavoro agente iniettabili — un esterno può attivare l'agente e dirottarlo
CI-3server MCP non bloccati / @latest o credenziali inline (supply chain)
CI-4segreti che un agente iniettato potrebbe esfiltrare
CI-6istruzioni 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.

ScudoCosa intercettaAbilita
project-jailBlocca letture di ~/.ssh, ~/.aws, .env, credenziali tramite Bash e strumento Readnode9 shield enable project-jail
bash-safecurl | bash, rm -rf /, sovrascrittura disco, eval di remotonode9 shield enable bash-safe
postgresDROP TABLE, TRUNCATE, DROP COLUMN, DELETE senza WHEREnode9 shield enable postgres
mongodbdropDatabase, drop(), deleteMany({}), eliminazione indicinode9 shield enable mongodb
redisFLUSHALL, FLUSHDB, CONFIG SET su un server livenode9 shield enable redis
awsEliminazione S3, terminazione EC2, modifiche IAM, distruzione RDSnode9 shield enable aws
k8sEliminazione namespace, helm uninstall, cancellazione ruoli clusternode9 shield enable k8s
dockersystem prune, volume prune, rm -f contenitorinode9 shield enable docker
githubgh repo delete, eliminazione ramo remoto, modifiche impostazioninode9 shield enable github
filesystemchmod 777, scritture in /etc/, /boot/, /usr/node9 shield enable filesystem
mcp-tool-gatingstrumenti 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 / UPDATE senza WHERE, DROP TABLE, TRUNCATE
  • Shell — intercetta curl | bash, sudo non 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 undo per 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 ask nativo. Tutti gli altri agenti (Codex, Gemini, Antigravity, Hermes, Cursor, OpenCode, Pi) usano il proprio approvatore di node9.
  • Controllalo con reviewChannel in ~/.node9/config.json (o --no-ask sull'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:

  1. Prima connessione — il gateway registra un hash SHA-256 di nome, descrizione e schema di ogni strumento
  2. 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
  3. 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):

ComandoCosa mostraQuando usarlo
node9 blastCosa un agente AI può raggiungere ora — file, credenziali, envPrima cosa da eseguire su qualsiasi macchina
node9 tailFlusso live di ogni chiamata strumento (solo testo, nessuna TUI)Pipe verso altri strumenti, CI, log
node9 sessionsCronologia delle sessioni con prompt, traccia strumenti, costo, snapshotPer rivedere un passaggio di consegne o lavoro passato
node9 dlpRilevamenti di fughe di credenziali nel testo di risposta di ClaudeOgni volta che scatta un alert desktop DLP
node9 maskOscura segreti in chiaro dai file di cronologia delle sessioni localiDopo 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:

SegnaleSignificato probabile
Would have blocked ≥ 5 in una settimanaL'agente sta tentando operazioni ad alto impatto; vale la pena rivedere gli scudi
Una singola regola review-git-push >50% dei rilevamentiLa tua regola sta funzionando come previsto — non è un rischio, solo supervisione
Rilevamento DLP nello strumento user-promptHai incollato un segreto nel tuo prompt — ruota la chiave
Agent Loop ×50+ sullo stesso fileAgente bloccato in un ciclo edit/test/fix — controlla il contesto o rallenta
Disallineamento blocco strumento MCPIl server ha cambiato i suoi strumenti — rivedi prima di fidarti di nuovo
Avviso risposta MCP grandeQuel server sta gonfiando la tua finestra di contesto per ogni turno successivo
Allarme Response DLPClaude ha scritto un segreto nel testo di risposta — non bloccato, ruota immediatamente
Rilevamento DLP in tool-resultClaude 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/call JSON-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/iptables con 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

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.

Categorie