Node9-Proxy

A Camada de Segurança de Execução para a Era dos Agentes. Fornecendo governança "Sudo" determinística e logs de auditoria para agentes de IA autônomos.

Documentação

Translated Markdown

🛡️ Node9

O que seu agente de IA realmente fez? Descubra.

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

O Node9 fica entre o seu agente de IA e as ferramentas que ele pode usar — descubra o que ele já fez, proteja contra ações arriscadas em tempo real e revise o que aconteceu em qualquer período.

Funciona com Claude Code · Codex CLI · Antigravity (agy) · GitHub Copilot CLI · Gemini CLI · Cursor · Windsurf · VSCode · Claude Desktop · Opencode · Pi · Hermes Agent · qualquer servidor MCP.

O que o Node9 faz

  • 🔍 Descubra — examine todas as sessões de IA passadas em busca de vazamentos de credenciais, loops de agente, operações bloqueadas e todos os segredos no disco que um agente pode alcançar agora
  • 🛡 Proteja — revise ou bloqueie comandos arriscados antes de executá-los — rm -rf, git push --force, DROP TABLE, leituras de credenciais, curl | bash, vazamentos de chaves AWS/GitHub/Stripe
  • 📊 Revise — relatório por período (hoje / semana / mês / 90 dias) — custo por agente, ferramentas mais usadas, escudos acionados, raio de impacto

Verificação retrospectiva

Este é minha própria máquina — 90 dias enquanto construía o Node9. Pontuação 25/100, 5 arquivos de credenciais que um agente de IA pode alcançar agora.

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

Node9 scan scorecard

Painel de pontuação de postura de segurança

node9 posture avalia o quão exposta esta máquina está a um agente comprometido — isolamento, saída de rede, segredos no disco, cadeia de suprimentos, privilégio — e entrega o comando exato para corrigir cada descoberta.

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)

As descobertas são agrupadas por quem pode corrigi-las: 🔒 as que o node9 reduz (basta executar o comando) e 🧱 as que só você pode. Cada uma traz um o quê / porquê / quem em linguagem simples e uma correção real — por exemplo, a descoberta "agente roda sem sandbox no host" aponta diretamente para node9 sandbox run (abaixo).

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

Verificar um repositório — segurança de agente em CI

node9 scan-repo verifica qualquer repositório (ou uma pasta local) em busca de maneiras pelas quais um agente de IA conectado ao GitHub Actions poderia ser sequestrado por um terceiro — workflows injetáveis, segredos acessíveis ao agente, servidores MCP não fixados, configuração de agente excessivamente ampla e arquivos de instrução envenenados. Estático e somente leitura: lê apenas configuração commitada, nunca executa código do repositório. Não é necessária instalação ou token para repositórios públicos.

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

O que ele verifica:

VerificaçãoSinaliza
CI-1configuração de agente commitada que pré-autoriza ferramentas amplas ou executa ganchos remotos
CI-2workflows de agente injetáveis — um terceiro pode acionar o agente e sequestrá-lo
CI-3servidores MCP não fixados / @latest ou credenciais inline (cadeia de suprimentos)
CI-4segredos que um agente injetado poderia exfiltrar
CI-6instruções envenenadas ou perigosas em CLAUDE.md / AGENTS.md / skills

Bloqueie cada PR — o mesmo mecanismo de uma GitHub Action, para que uma configuração sequestrável não possa ser mesclada:

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

Marketplace: node9 Verificação de Segurança de Agente

Monitoramento ao vivo

Node9 monitor dashboard

node9 monitor abre um painel de terminal interativo com duas visões:

  • [1] Tempo real — atividade ao vivo, aprovações, alertas de segurança, pontuação de risco atual
  • [2] Relatório — resumo por período: custo, ferramentas mais usadas, escudos acionados, raio de impacto

Relatório

Pressione [2] no monitor para um resumo por período. Alterne a janela com [T]oday · [W]eek · [M]onth · [N]inety — mesmos painéis da verificação acima, alimentados pelo seu log de auditoria pós-instalação.

Node9 monitor [2] Report

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

Instalação

# 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

Requer Node.js 18+.

Escudos — pacotes de regras curados

Cada escudo é um conjunto de regras curado para um serviço ou domínio. Ative apenas o que você precisa.

EscudoO que capturaAtivar
project-jailBloqueia leituras de ~/.ssh, ~/.aws, .env, credenciais via ferramenta Bash e Readnode9 shield enable project-jail
bash-safecurl | bash, rm -rf /, sobrescrita de disco, eval de remotonode9 shield enable bash-safe
postgresDROP TABLE, TRUNCATE, DROP COLUMN, DELETE sem WHEREnode9 shield enable postgres
mongodbdropDatabase, drop(), deleteMany({}), remoções de índicenode9 shield enable mongodb
redisFLUSHALL, FLUSHDB, CONFIG SET em um servidor ao vivonode9 shield enable redis
awsExclusão S3, encerramento EC2, alterações IAM, destruição RDSnode9 shield enable aws
k8sexclusão de namespace, helm uninstall, limpeza de papéis de clusternode9 shield enable k8s
dockersystem prune, volume prune, rm -f contêineresnode9 shield enable docker
githubgh repo delete, exclusão de branch remoto, alterações de configuraçõesnode9 shield enable github
filesystemchmod 777, gravações sob /etc/, /boot/, /usr/node9 shield enable filesystem
mcp-tool-gatingferramentas MCP não aprovadas ativando silenciosamente novas capacidadesnode9 shield enable mcp-tool-gating
node9 shield list    # show all shields + status

Sempre ativo — sem necessidade de configuração

  • Git — captura git push --force, git reset --hard, git clean -fd
  • SQL — captura DELETE / UPDATE sem WHERE, DROP TABLE, TRUNCATE
  • Shell — captura curl | bash, sudo não autorizado
  • DLP — sinaliza chaves AWS, tokens GitHub, chaves Stripe, chaves privadas PEM em qualquer argumento de ferramenta, conteúdo de arquivo ou configuração de shell (~/.zshrc, ~/.bashrc)
  • DLP de resposta — scanner em segundo plano lê o histórico de conversa do Claude e alerta você se o Claude escreveu um segredo no texto da resposta
  • Auto-desfazer — instantâneo git antes de cada edição de arquivo por IA → node9 undo para reverter
  • Fixação de skills — verificação SHA-256 de skills / plugins do Claude instalados entre sessões

Prompts de revisão — aprove inline, em seu agente

Quando o node9 sinaliza uma ação para revisão (por exemplo, git push --force, um DROP TABLE), o prompt de aprovar/negar é renderizado inline na conversa do agente — sem sessão congelada, sem terminal separado, sem corrida de timeout de gancho. O node9 ainda executa o avaliador completo e toma a decisão; apenas a superfície do prompt vai para o agente.

  • Ativado por padrão para Claude Code e GitHub Copilot CLI — os agentes cujo contrato de gancho honra um ask nativo. Todos os outros agentes (Codex, Gemini, Antigravity, Hermes, Cursor, OpenCode, Pi) usam o próprio aprovador do node9.
  • Controle isso com reviewChannel em ~/.node9/config.json (ou --no-ask no gancho):
{
  "settings": {
    "reviewChannel": "ask", // "ask" = inline agent prompt (default) | "approver" = node9's own approver
  },
}
  • Configurações de equipe: quando um aprovador de nuvem/equipe está configurado (approvers.cloud: true), as revisões roteiam para esse aprovador — o node9 não permitirá que uma auto-aprovação inline ignore a aprovação roteada/segunda parte.

Sandbox — execute um agente em uma jaula

Quando observar não é suficiente, node9 sandbox executa o agente dentro de um contêiner descartável com uma lista de permissões de saída imposta pelo kernel e montagens com escopo — enquanto os ganchos do node9 governam e auditam cada chamada de ferramenta dentro da caixa. A versão dura da proteção: o agente só pode tocar a pasta que você monta e alcançar os hosts que você permite; tudo o mais é descartado no 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
  • Descartável — o contêiner é destruído ao sair; suas edições de projeto caem no disco real, nada mais sobrevive.
  • Mesma política — seus escudos / regras de saída / aprovações existentes se aplicam dentro da caixa, transmitidos para o mesmo log de auditoria e painel.
  • Fecha o loop de postura — executá-lo deixa as descobertas de Isolamento / Saída verdes.

Escopo honesto (Fase 1): contêiner único, Claude primeiro (Codex em seguida); o agente ainda mantém suas próprias credenciais na caixa (a parede de saída as confina aos hosts permitidos) — "o agente nunca mantém um segredo" é a fase de corretor de credenciais no roteiro. Requer Docker.

Gateway MCP

Empacote qualquer servidor MCP de forma transparente. O agente vê o mesmo servidor — o Node9 intercepta cada chamada de ferramenta.

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

Ou basta executar node9 init — ele empacota seus servidores MCP existentes automaticamente.

🔐 Fixação de ferramentas MCP — defesa contra rug pull

Servidores MCP podem alterar suas definições de ferramentas entre sessões. Um servidor comprometido ou malicioso poderia silenciosamente adicionar, remover ou modificar ferramentas depois que você o confiou pela primeira vez — um ataque de rug pull.

O Node9 fixa definições de ferramentas no primeiro uso:

  1. Primeira conexão — o gateway registra um hash SHA-256 do nome, descrição e esquema de cada ferramenta
  2. Conexões subsequentes — o hash é comparado; se as ferramentas mudarem, a sessão é quarentenada e cada chamada de ferramenta é bloqueada até que um humano revise e aprove a mudança
  3. Estado de fixação corrompido — falha fechada (bloqueia), nunca re-confia silenciosamente
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

Outros comandos

Além dos três comandos de fluxo acima (scan / monitor / report):

ComandoO que mostraQuando usar
node9 blastO que um agente de IA pode alcançar agora — arquivos, creds, envPrimeira coisa a executar em qualquer máquina
node9 tailFluxo ao vivo de cada chamada de ferramenta (somente texto, sem TUI)Para enviar para outras ferramentas, CI, logs
node9 sessionsHistórico de sessão com prompt, rastreamento de ferramenta, custo, instantâneoRevisando uma entrega ou trabalho passado
node9 dlpDescobertas de vazamento de credenciais no texto de resposta do ClaudeQualquer vez que um alerta de desktop DLP disparar
node9 maskRedige segredos em texto puro de arquivos de histórico de sessão locaisApós uma descoberta DLP — limpa o disco local

Além de um HUD ao vivo na barra de status do seu 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

Lendo os dados — o que os números significam

O Node9 apresenta o sinal. Aqui estão os padrões que vale a pena conhecer:

SinalSignificado provável
Would have blocked ≥ 5 em uma semanaO agente está tentando operações de alto impacto; vale revisar os shields
Regra única de review-git-push >50% dos achadosSua própria regra está disparando como esperado — não é um risco, apenas supervisão
Achado de DLP na ferramenta user-promptVocê colou um segredo no seu próprio prompt — rotacione a chave
Agent Loop ×50+ no mesmo arquivoAgente preso no ciclo editar/testar/corrigir — verifique o contexto ou reduza a velocidade
Incompatibilidade de pin de ferramenta MCPO servidor mudou suas ferramentas — revise antes de confiar novamente
Aviso de resposta MCP grandeEsse servidor está inflando sua janela de contexto a cada turno subsequente
Alerta Response DLPClaude escreveu um segredo no texto da resposta — não foi bloqueado, rotacione imediatamente
Achado de DLP em tool-resultClaude leu um arquivo contendo um segredo (.env, credenciais) — rotacione a chave e execute node9 mask
Achado de DLP em [Shell]Segredo em texto puro em ~/.zshrc ou ~/.bashrc — toda sessão de IA pode vê-lo

Sinais isolados são normais; padrões persistentes são o que merecem ação.

Python SDK — governe qualquer agente Python

from node9 import configure, protect

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

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

Python SDK → · Exemplo de agente de revisão de código CI →

Por baixo dos panos

  • Scan lê o histórico bruto do agente de ~/.claude/projects/, ~/.gemini/tmp/, ~/.gemini/antigravity-*/brain/, ~/.copilot/session-state/, ~/.codex/sessions/ — sem chamadas de API, totalmente offline
  • Runtime intercepta chamadas de ferramentas via hooks de pré-execução (Claude Code, Codex, Antigravity, GitHub Copilot CLI, Gemini CLI, Opencode, Pi) ou via o gateway MCP (Cursor, Windsurf, VSCode, Claude Desktop). Todas as decisões são gravadas atomicamente em ~/.node9/audit.log.
  • MCP gateway é um proxy stdio; intercepta tools/list + tools/call JSON-RPC, encaminha o restante
  • Policy engine usa mvdan-sh para análise de AST bash — neutraliza ofuscação via escape com barra invertida, substituição de variáveis, eval de download remoto
  • Shadow repo para auto-desfazer fica em ~/.node9/snapshots/<hash16>/ — nunca toca no seu .git
  • Sandbox gera um Dockerfile + entrypoint que selam uma parede de egresso deny-by-default ipset/iptables, depois desce para um agente não-root com o daemon + hooks do node9 rodando dentro; apenas o arquivo de credenciais do agente é montado, nunca todo o seu ~/.claude

Documentação completa

Referência de configuração, regras inteligentes, regras com estado, hosts confiáveis, modos de aprovação, referência de CLI — em node9.ai/docs.

Projetos relacionados

Enterprise

Node9 Pro adiciona bloqueio de governança, SAML/SSO, exportação central de auditoria e implantação em VPC. Veja node9.ai.

Licença

Apache-2.0

Feito com ☕ e paranoia saudável.