
node9-proxy v1.67.1
A Camada de Segurança de Execução para a Era dos Agentes. Fornecendo governança determinística "Sudo" e logs de auditoria para agentes de IA autônomos.
🛡️ Node9
O que seu agente de IA realmente fez? Descubra.
O Node9 fica entre seu agente de IA e as ferramentas que ele pode usar — descubra o que ele já andou fazendo, proteja-se contra ações arriscadas em tempo real e revise o que aconteceu em qualquer intervalo de tempo.
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 — escaneie cada sessão de IA passada em busca de vazamentos de credenciais, loops de agente, operações bloqueadas e todos os segredos no disco que um agente poderia acessar 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, principais ferramentas, escudos acionados, raio de explosão
Varredura retrospectiva
Esta é 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 poderia acessar agora.
npx node9-ai scan # antes da instalação, executa em ~10s, nada é enviado
node9 scan # após a instalação, mesma saída
Cartão de pontuação da varredura do Node9
Cartão de pontuação de postura de segurança
node9 posture classifica o quão exposta esta máquina está a um agente comprometido — isolamento, egresso, segredos no disco, cadeia de suprimentos, privilégio — e entrega o comando exato para corrigir cada descoberta.
node9 posture # cartão de pontuação com o #1 risco e uma correção para cada descoberta
node9 posture --ship # envia um instantâneo anonimizado para seu dashboard node9 (visão de frota)
As descobertas são agrupadas por quem pode corrigi-las: 🔒 aquelas que o node9 reduz (apenas execute o comando) e 🧱 aquelas que só você pode. Cada uma traz uma descrição em linguagem clara do que / por que / quem e uma correção real — por exemplo, a descoberta "agente executa sem sandbox no host" aponta diretamente para node9 sandbox run (abaixo).
🛡️ Node9 Posture — agente neste host Pontuação: 100/100 (Bom)
2 avisos abaixo não afetam a pontuação — exposição a nível de SO, você decide.
🟢 node9 já está protegendo você
✅ Segredos node9 DLP está bloqueando isso
✅ Egresso node9 egresso está exigindo aprovação para isso
✅ Portão de aprovação node9 está bloqueando isso
✅ Privilégio node9 está exigindo aprovação para isso
🔒 node9 reduz estes — execute o comando, o resto é com você
⚠️ Isolamento Executando diretamente no host — sem contêiner
O agente roda solto em toda a sua máquina, não em uma sandbox.
→ node9 sandbox run <agent> — isole: egresso no kernel + montagens com escopo + node9 dentro
→ node9 shield enable project-jail — ou reduza o raio de explosão, mantenha acesso ao host
⚠️ Exposição de rede 4 serviços em 0.0.0.0 (node :3000/:4000, PostgreSQL :5432, Redis :6379)
Acessível de toda a sua rede, não apenas deste laptop.
→ node9 shield enable postgres|redis — node9 bloqueia DROP TABLE / FLUSHALL
→ vincule a 127.0.0.1 / proteja a porta com firewall (sua parte)
✅ Cadeia de suprimentos nenhum problema encontrado
✅ Cobertura nenhum problema encontrado
Acompanhe isso em toda a sua frota e mantenha verde → node9.ai
Escaneie um repositório — segurança de agente-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 alcançáveis pelo agente, servidores MCP não fixados, configuração de agente excessivamente ampla e arquivos de instrução envenenados. Estático e apenas análise: lê apenas configuração commitada, nunca executa código do repositório. Nenhuma instalação ou token necessário para repositórios públicos.
npx node9-ai scan-repo <owner/repo> # qualquer repositório público, sem instalação
node9 scan-repo . # um checkout local — sem rede
node9 scan-repo <owner/repo> --json # legível por máquina
🛡️ node9 scan-repo · node9-ai/agent-security-demo · ⚠️ risco de segurança de agente encontrado
inspecionou 2 arquivo(s) de configuração, 2 descoberta(s)
🔴 CRÍTICO Workflow de agente injetável — entrada não confiável atinge um agente que usa ferramentas com segredos
.github/workflows/vulnerable-example.yml · CI-2
• executa com segredos do repositório base (pull_request_target)
• verifica a cabeça do PR não confiável na raiz do workspace
• allowed_non_write_users: "*" — qualquer usuário pode acionar o agente
• sem portão de autor efetivo
🔴 CRÍTICO Segredos exportáveis alcançáveis por um agente injetável
.github/workflows/vulnerable-example.yml · CI-4
• agente tem shell arbitrário (Bash puro) → pode ler env e exportar
O que verifica:
| Verificação | Sinalizadores |
|---|---|
| CI-1 | configuração de agente commitada que pré-autoriza ferramentas amplas ou executa hooks remotos |
| CI-2 | workflows de agente injetáveis — um terceiro pode acionar o agente e sequestrá-lo |
| CI-3 | servidores MCP não fixados / @latest ou credenciais inline (cadeia de suprimentos) |
| CI-4 | segredos que um agente injetado poderia exportar |
| CI-6 | instruções envenenadas ou perigosas em CLAUDE.md / AGENTS.md / skills |
Bloqueie cada PR — o mesmo mecanismo como 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 # ou 'never' para apenas comentar
Marketplace: node9 Agent Security Check
Monitoramento ao vivo
Dashboard de monitoramento do Node9
node9 monitor abre um dashboard interativo no terminal com duas visualizaçõ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, principais ferramentas, escudos acionados, raio de explosão
Relatório
Pressione [2] no monitor para um resumo por período. Alterne a janela com [H]oje · [S]emana · [M]ês · [N]oventa — mesmos painéis da varredura acima, baseados no seu log de auditoria pós-instalação.
Node9 monitor [2] Relatório
node9 monitor # pressione [2] para visualizar Relatório
node9 report --period 7d # formulário CLI, sem TUI
Instalação
# macOS / Linux
brew tap node9-ai/node9 && brew install node9
# ou via npm (qualquer plataforma)
npm install -g node9-ai
node9 init # conecta automaticamente todos os agentes detectados + servidores MCP
node9 doctor # verifique se tudo está conectado corretamente
Requer Node.js 18+.
Escudos — pacotes de regras selecionados
Cada escudo é um conjunto de regras selecionado para um serviço ou domínio. Ative apenas o que precisar.
| Escudo | O que detecta | Ativar |
|---|---|---|
project-jail | Bloqueia leituras de ~/.ssh, ~/.aws, .env, credenciais via ferramentas Bash e Read | node9 shield enable project-jail |
bash-safe | curl | bash, rm -rf /, sobrescrita de disco, eval de remoto | node9 shield enable bash-safe |
postgres | DROP TABLE, TRUNCATE, DROP COLUMN, DELETE sem WHERE | node9 shield enable postgres |
mongodb | dropDatabase, drop(), deleteMany({}), exclusão de índices | node9 shield enable mongodb |
redis | FLUSHALL, FLUSHDB, CONFIG SET em um servidor ativo | node9 shield enable redis |
aws | Exclusão S3, encerramento EC2, alterações IAM, destruição RDS | node9 shield enable aws |
k8s | Exclusão de namespace, helm uninstall, limpeza de papéis de cluster | node9 shield enable k8s |
docker | system prune, volume prune, rm -f de contêineres | node9 shield enable docker |
github | gh repo delete, exclusão de branch remoto, alterações de configurações | node9 shield enable github |
filesystem | chmod 777, escritas em /etc/, /boot/, /usr/ | node9 shield enable filesystem |
mcp-tool-gating | Ferramentas MCP não aprovadas ativando silenciosamente novas capacidades | node9 shield enable mcp-tool-gating |
node9 shield list # mostra todos os escudos + status
Sempre ativo — sem configuração necessária
- Git — detecta
git push --force,git reset --hard,git clean -fd - SQL — detecta
DELETE/UPDATEsemWHERE,DROP TABLE,TRUNCATE - Shell — detecta
curl | bash,sudonã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 de fundo lê o histórico de conversas do Claude e alerta se o Claude escreveu um segredo no texto de sua resposta
- Auto-desfazer — snapshot git antes de cada edição de arquivo pela IA →
node9 undopara reverter - Fixação de skills — verificação SHA-256 de skills/plugins Claude instalados entre sessões
Revisar prompts — aprove inline, no 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 hook. O node9 ainda executa o avaliador completo e toma a decisão; apenas a superfície do prompt se move para o agente.
- Ativado por padrão para Claude Code e GitHub Copilot CLI — os agentes cujo contrato de hook honra um
asknativo. Todos os outros agentes (Codex, Gemini, Antigravity, Hermes, Cursor, OpenCode, Pi) usam o próprio aprovador do node9. - Controle isso com
reviewChannelem~/.node9/config.json(ou--no-askno hook):
{
"settings": {
"reviewChannel": "ask", // "ask" = prompt inline do agente (padrão) | "approver" = aprovador próprio do node9
},
}
- Configurações de equipe: quando um aprovador em nuvem/equipe está configurado (
approvers.cloud: true), as revisões são roteadas para esse aprovador — o node9 não permitirá que uma auto-aprovação inline ignore a aprovação roteada/de segunda parte.
Sandbox — execute um agente em uma jaula
Quando apenas observar não é suficiente, node9 sandbox executa o agente dentro de um contêiner descartável com uma lista de permissões de egresso imposta pelo kernel e montagens com escopo — enquanto os hooks do node9 governam e auditam cada chamada de ferramenta dentro da caixa. A versão forte da proteção: o agente só pode tocar na pasta que você monta e alcançar os hosts que você permite; todo o resto é descartado no kernel.
cd ~/my-project
node9 sandbox new # escreve node9.sandbox.yaml — o que montar + quais hosts permitir
node9 sandbox run # constrói + inicia o agente na jaula (seu projeto em /workspace)
node9 sandbox tail # observe as ações do agente ao vivo, a partir do host
- Descartável — o contêiner é destruído ao sair; suas edições do projeto vão para o disco real, nada mais persiste.
- Mesma política — seus escudos / regras de egresso / aprovações existentes se aplicam dentro da caixa, transmitidos para o mesmo log de auditoria e dashboard.
- Fecha o ciclo de postura — executá-lo transforma as descobertas de Isolamento / Egresso em verde.
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 egresso as confina aos hosts permitidos) — "o agente nunca possui um segredo" é a fase do corretor de credenciais no roadmap. Requer Docker.
Gateway MCP
Envolva 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 apenas execute node9 init — ele envolve 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 adicionar, remover ou modificar silenciosamente ferramentas após você tê-lo confiado inicialmente — um ataque rug pull.
O Node9 fixa as definições de ferramentas no primeiro uso:
- Primeira conexão — o gateway registra um hash SHA-256 do nome, descrição e esquema de cada ferramenta
- Conexões subsequentes — o hash é comparado; se as ferramentas mudaram, a sessão é quarentenada e cada chamada de ferramenta é bloqueada até que um humano revise e aprove a alteração
- Estado de fixação corrompido — falha fechado (bloqueia), nunca confia novamente silenciosamente
node9 mcp pin list # mostra todos os servidores fixados e hashes
node9 mcp pin update <serverKey> # remove a fixação, refixa na próxima conexão
node9 mcp pin reset # limpa todas as fixações
Outros comandos
Além dos três comandos de fluxo acima (scan / monitor / report):
| Comando | O que mostra | Quando usar |
|---|---|---|
node9 blast | O que um agente de IA pode acessar agora — arquivos, creds, env | Primeira coisa a executar em qualquer máquina |
node9 tail | Fluxo ao vivo de cada chamada de ferramenta (apenas texto, sem TUI) | Canalizando para outras ferramentas, CI, logs |
node9 sessions | Histórico de sessões com prompt, rastreio de ferramentas, custo, snapshot | Revisando uma transferência ou trabalho passado |
node9 dlp | Descobertas de vazamento de credenciais no texto de resposta do Claude | Sempre que um alerta DLP de desktop disparar |
node9 mask | Anonimizar segredos em texto simples dos arquivos de histórico de sessão local | Após uma descoberta DLP — limpa o disco local |
Mais um HUD ao vivo na linha de status do seu Claude Code:
🛡 node9 | standard | [bash-safe] | ✅ 12 permitidos 🛑 2 bloqueados 🚨 0 dlp | ~$0.43
📊 claude-opus-4-7 | ctx [████████░░░] 54% | 5h [██░░░░░░░░] 12% | 7d [█░░░░░░░] 7%
🗂 2 CLAUDE.md | 8 regras | 3 MCPs | 4 hooks
## Lendo os dados — o que os números significam
O Node9 traz o sinal. Aqui estão os padrões que valem a pena conhecer:
| Sinal | Significado provável |
| --------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
| `Would have blocked` ≥ 5 em uma semana | Agente está tentando operações de alto impacto; vale a pena revisar os escudos |
| Regra única `review-git-push` >50% das descobertas | Sua própria regra está disparando conforme o esperado — não é um risco, apenas supervisão |
| Descoberta DLP na ferramenta `user-prompt` | Você colou um segredo no seu próprio prompt — rotacione a chave |
| Loop de agente ×50+ no mesmo arquivo | Agente preso em ciclo editar/testar/corrigir — verifique o contexto ou diminua a velocidade |
| Incompatibilidade de fixação de ferramenta MCP | Servidor alterou suas ferramentas — revise antes de confiar novamente |
| Aviso de resposta MCP grande | Esse servidor está inflando sua janela de contexto a cada turno subsequente |
| Alerta `Response DLP` | Claude escreveu um segredo no texto de sua resposta — não bloqueado, rotacione imediatamente |
| Descoberta DLP em `tool-result` | Claude leu um arquivo contendo um segredo (`.env`, credenciais) — rotacione a chave e execute `node9 mask` |
| Descoberta DLP em `[Shell]` | Segredo em texto simples em `~/.zshrc` ou `~/.bashrc` — toda sessão de IA pode vê-lo |
Sinais isolados são normais; padrões persistentes são o que você deve agir.
## Python SDK — governe qualquer agente Python
```python
from node9 import configure, protect
configure(agent_name="meu-agente", 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 vão para
~/.node9/audit.logatomicamente. - Gateway MCP é um proxy stdio; intercepta
tools/list+tools/callJSON-RPC, encaminha o resto - Motor de políticas usa mvdan-sh para análise AST de bash — derrota ofuscação via escaping com barra invertida, substituição de variáveis, eval de download remoto
- Repositório sombra para auto-desfazer fica em
~/.node9/snapshots/<hash16>/— nunca toca no seu.git - Sandbox gera um Dockerfile + entrypoint que selam uma parede de egresso
ipset/iptablescom negação por padrão, depois desce para um agente não-root com o daemon do node9 + hooks 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 CLI — em node9.ai/docs.
Projetos relacionados
- node9-python — SDK Python
- node9-pr-agent — GitHub Action que revisa PRs através do Node9
Enterprise
Node9 Pro adiciona bloqueio de governança, SAML/SSO, exportação central de auditoria e implantação VPC. Veja node9.ai.
Licença
Apache-2.0
Construído com ☕ e paranoia saudável.