Voltar às atualizações
New releaseSep 5, 2026

node9-proxy v2.8.3

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.

Compartilhar

🛡️ Node9

O que o seu agente de IA realmente fez? Descubra.

npm version monthly downloads License: Apache 2.0 Documentation OpenSSF Best Practices node9 self-scanned

O Node9 fica entre o seu agente de IA e as ferramentas que ele pode usar — descubra o que ele já vem fazendo, proteja contra ações arriscadas em tempo real e revise o que aconteceu em qualquer janela 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 — examine todas as sessões de IA passadas em busca de vazamentos de credenciais, loops de agente, operações bloqueadas e todos os segredos em disco que um agente poderia alcançar agora
  • 🛡 Proteja — revise ou bloqueie comandos arriscados antes que sejam executados — rm -rf, git push --force, DROP TABLE, leituras de credenciais, curl | bash, vazamentos de chaves AWS/GitHub/Stripe
  • 📊 Revise — relatório por janela de período (hoje / semana / mês / 90 dias) — custo por agente, principais ferramentas, escudos acionados, raio de impacto

Varredura retrospectiva

Esta é a 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 alcançar agora.```bash npx node9-ai scan # before installation, runs in ~10s, nothing uploads node9 scan # after installation, same output

<p align="center">
  Node9 scan scorecard
</p>

## Scorecard de postura de segurança

`node9 posture` avalia o quão exposta esta máquina está a um agente comprometido — isolamento, egress, segredos em disco, supply chain, privilégio — e fornece o comando exato para corrigir cada descoberta.```bash
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)

Os achados são agrupados por quem pode corrigi-los: 🔒 os que o node9 reduz (basta executar o comando) e 🧱 os que só você pode. Cada um traz um o quê / porquê / quem em linguagem simples e uma remediação real — por exemplo, o achado "agente roda sem sandbox no host" aponta diretamente para node9 sandbox run (abaixo).```text 🛡️ 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 — 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

## Analisar 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 acessíveis ao agente, servidores MCP sem pinagem, configuração de agente excessivamente ampla e arquivos de instrução envenenados. Estático e apenas de análise: ele lê somente a configuração commitada, nunca executa o código do repositório. Nenhuma instalação ou token é necessário para repositórios públicos.```bash
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

I need the actual content of chunk 9 to translate it. Please provide the Markdown text you want translated.```text 🛡️ 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ção | Sinaliza                                                                     |
| ----------- | ---------------------------------------------------------------------------- |
| **CI-1**    | config de agente commitada que pré-autoriza ferramentas amplas ou executa hooks remotos |
| **CI-2**    | fluxos de trabalho de agente injetáveis — um outsider pode acionar o agente e sequestrá-lo |
| **CI-3**    | servidores MCP sem pin / `@latest` ou credenciais inline (cadeia de suprimentos) |
| **CI-4**    | segredos que um agente injetado poderia exfiltrar                            |
| **CI-6**    | instruções envenenadas ou perigosas em `CLAUDE.md` / `AGENTS.md` / skills    |

**Proteja cada PR** — o mesmo mecanismo de uma GitHub Action, para que uma config sequestrável não possa ser mesclada:```yaml
# .github/workflows/agent-security.yml
- uses: node9-ai/node9-proxy@v2
  with:
    fail-on: high # or 'never' to just comment

Marketplace: node9 Agent Security

Está a executá-lo? Adicione o scanned by node9 badge ao seu README.

Monitorização em tempo real

Node9 monitor dashboard

node9 monitor abre um painel interativo de terminal com duas vistas:

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

Relatório

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

Node9 monitor [2] Report

```bash node9 monitor # press [2] for Report view node9 report --period 7d # CLI form, no TUI ``` ## Instalação```bash # macOS / Linux brew tap node9-ai/node9 && brew install node9

or via npm (any platform)

npm install -g node9-ai

I need the actual content of chunk 17 to translate it. Please provide the Markdown text you want translated.```bash
node9 init       # auto-wires all detected agents + MCP servers
node9 login      # connect this machine to your workspace (approve it in the browser)
node9 doctor     # verify everything is wired and reporting

Requer Node.js 18+.

init por si só dá-te aplicação local completa: regras, shields, DLP e aprovações funcionam todos offline, nesta máquina.

login é o que coloca a máquina no teu dashboard. Imprime um código, abre o navegador, e aprovas a máquina aí; se ainda não tiveres uma conta, registar-te a meio do fluxo devolve-te à mesma aprovação com o código intacto. Até o executares, tudo é aplicado localmente mas nada chega ao Mission Control, por isso o dashboard fica vazio.

node9 logout desliga uma máquina novamente. Revoga a chave dessa máquina; a aplicação local continua a funcionar.

Shields — pacotes de regras curados

Cada shield é um conjunto de regras curado para um serviço ou domínio. Ativa apenas o que precisas.

ShieldO que detetaAtivar
project-jailBloqueia leituras de ~/.ssh, ~/.aws, .env, credenciais via Bash e Read toolnode9 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 índicesnode9 shield enable mongodb
redisFLUSHALL, FLUSHDB, CONFIG SET num servidor ativonode9 shield enable redis
awsEliminação S3, terminação EC2, alterações IAM, destruição RDSnode9 shield enable aws
k8seliminação de namespace, helm uninstall, limpezas de cluster rolenode9 shield enable k8s
dockersystem prune, volume prune, rm -f de contentoresnode9 shield enable docker
githubgh repo delete, eliminação de branch remota, alterações de definiçõesnode9 shield enable github
filesystemchmod 777, escritas em /etc/, /boot/, /usr/node9 shield enable filesystem
mcp-tool-gatingferramentas MCP não aprovadas a ativar silenciosamente novas capacidadesnode9 shield enable mcp-tool-gating
node9 shield list # show all shields + status
## Sempre ativo — sem necessidade de configuração

- **Git** — detecta `git push --force`, `git reset --hard`, `git clean -fd`
- **SQL** — detecta `DELETE` / `UPDATE` sem `WHERE`, `DROP TABLE`, `TRUNCATE`
- **Shell** — detecta `curl | bash`, `sudo` não autorizado
- **DLP** — sinaliza chaves AWS, tokens do 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** — o scanner em segundo plano lê o histórico de conversas do Claude e alerta você se o Claude _escreveu_ um segredo no texto da resposta
- **Fixação de skills** — verificação SHA-256 das skills/plugins do Claude instalados entre sessões

## Prompts de revisão — aproveite inline, no seu agente

Quando o node9 sinaliza uma ação para **revisão** (ex.: `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 suporta 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 hook):```jsonc
{
  "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 são roteadas para esse aprovador — o node9 não permite que uma autoaprovação inline contorne 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 saída 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 rígida 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.```bash 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 na saída; suas edições de projeto vão para o seu disco real, nada mais sobrevive.
- **Mesma política** — suas regras existentes de shields / egress / aprovações se aplicam dentro da caixa, transmitidas para o mesmo log de auditoria e painel.
- **Fecha o ciclo de postura** — executá-lo faz os achados de Isolation / Egress ficarem 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 egress as confina aos hosts permitidos) — _"o agente nunca detém um segredo"_ é a fase do broker 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.```json
{
  "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 silenciosamente adicionar, remover ou modificar ferramentas depois que você confiou nele pela primeira vez — um ataque de rug pull.

O Node9 fixa as 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 mudaram, a sessão é colocada em quarentena e toda chamada de ferramenta é bloqueada até que um humano revise e aprove a alteração
  3. Estado de fixação corrompido — falha de forma segura (bloqueia), nunca re-confia silenciosamente```bash node9 mcp pin list # show all pinned servers and hashes node9 mcp pin update # remove pin, re-pin on next connection node9 mcp pin reset # clear all pins
</details>

## 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 alcançar agora — arquivos, credenciais, env | Primeira coisa a executar em qualquer máquina |
| `node9 tail`     | Fluxo ao vivo de cada chamada de ferramenta (somente texto, sem TUI) | Para canalizar para outras ferramentas, CI, logs |
| `node9 sessions` | Histórico de sessões com prompt, rastreamento de ferramentas e custo | Para revisar uma transferência ou trabalho anterior |
| `node9 dlp`      | Descobertas de vazamento de credenciais no texto de resposta do Claude | Sempre que um alerta de desktop DLP disparar |
| `node9 mask`     | Redigir segredos em texto puro dos arquivos locais de histórico de sessão | Após uma descoberta de DLP — limpa o disco local |

Além disso, 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

Leitura dos dados — o que os números significam

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

SinalSignificado provável
Would have blocked ≥ 5 numa semanaO agente está a tentar operações de alto impacto; vale a pena rever os escudos
Regra única review-git-push >50% dos achadosA sua própria regra está a atuar como pretendido — não é um risco, apenas supervisão
Achado de DLP na ferramenta user-promptColou um segredo no seu próprio prompt — rode a chave
Agent Loop ×50+ no mesmo ficheiroAgente preso no ciclo editar/testar/corrigir — verifique o contexto ou abrande
Discrepância de pin da ferramenta MCPO servidor mudou as suas ferramentas — reveja antes de voltar a confiar
Aviso de resposta MCP grandeEsse servidor está a inflar a sua janela de contexto em cada turno subsequente
Alerta Response DLPO Claude escreveu um segredo no texto da sua resposta — não bloqueado, rode imediatamente
Achado de DLP em tool-resultO Claude leu um ficheiro que contém um segredo (.env, credenciais) — rode a chave e execute node9 mask
Achado de DLP em [Shell]Segredo em texto simples em ~/.zshrc ou ~/.bashrc — todas as sessões de IA o podem ver

Sinais isolados são normais; padrões persistentes são aquilo em que age.

SDK Python — governe qualquer agente Python```python

from node9 import configure, protect

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

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

**[Python SDK →](https://github.com/node9-ai/node9-python)** · **[Exemplo de agente de revisão de código para CI →](https://github.com/node9-ai/node9-pr-agent)**

## Por baixo dos panos

- **Scan** lê o histórico bruto do agente em `~/.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`.
- **Gateway MCP** é um proxy stdio; intercepta `tools/list` + `tools/call` JSON-RPC, encaminha o restante
- **Mecanismo de políticas** usa [mvdan-sh](https://github.com/mvdan/sh) para análise de AST bash — derrota ofuscação via escape com barras invertidas, substituição de variáveis, eval de download remoto
- **Sandbox** gera um Dockerfile + entrypoint que selam uma parede de egresso deny-by-default com `ipset`/`iptables`, e então fazem downgrade para um agente não-root com o daemon e hooks do node9 rodando internamente; 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 da CLI — em **[node9.ai/docs](https://node9.ai/docs)**.

## Projetos relacionados

- **[node9-python](https://github.com/node9-ai/node9-python)** — SDK Python
- **[node9-pr-agent](https://github.com/node9-ai/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 em VPC. Consulte [node9.ai](https://node9.ai).

## Licença

Apache-2.0

<p align="center">
  <sub>Feito com ☕ e paranoia saudável.</sub>
</p>

Categorias