
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.
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.
rm -rf, git push --force, DROP TABLE, leituras de credenciais, curl | bash, vazamentos de chaves AWS/GitHub/StripeEsta é 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
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
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:
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
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ãoPressione [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
# 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+.
Cada escudo é um conjunto de regras selecionado para um serviço ou domínio. Ative apenas o que precisar.
node9 shield list # mostra todos os escudos + status
git push --force, git reset --hard, git clean -fdDELETE / UPDATE sem WHERE, DROP TABLE, TRUNCATEcurl | bash, sudo não autorizado~/.zshrc, ~/.bashrc)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.
ask nativo. Todos os outros agentes (Codex, Gemini, Antigravity, Hermes, Cursor, OpenCode, Pi) usam o próprio aprovador do node9.reviewChannel em ~/.node9/config.json (ou --no-ask no hook):{
"settings": {
"reviewChannel": "ask", // "ask" = prompt inline do agente (padrão) | "approver" = aprovador próprio do node9
},
}
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.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
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.
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.
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:
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
Além dos três comandos de fluxo acima (scan / monitor / report):
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 →
~/.claude/projects/, ~/.gemini/tmp/, ~/.gemini/antigravity-*/brain/, ~/.copilot/session-state/, ~/.codex/sessions/ — sem chamadas de API, totalmente offline~/.node9/audit.log atomicamente.tools/list + tools/call JSON-RPC, encaminha o resto~/.node9/snapshots/<hash16>/ — nunca toca no seu .gitReferência de configuração, regras inteligentes, regras com estado, hosts confiáveis, modos de aprovação, referência CLI — em node9.ai/docs.
Node9 Pro adiciona bloqueio de governança, SAML/SSO, exportação central de auditoria e implantação VPC. Veja node9.ai.
Apache-2.0
Construído com ☕ e paranoia saudável.
| 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 |
| 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 undo| 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 |
ipset/iptables com 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