
NOVA - Claude Code Protection System contra ataques de injeção de prompt
Monitoramento de segurança e defesa contra injeção de prompt para Claude Code usando o NOVA Framework.
# Clone o repositório
git clone https://github.com/fr0gger/nova-claude-code-protector.git
cd nova_claude_code_protector
# Instale globalmente (registra hooks em ~/.claude/settings.json)
./install.sh
# Reinicie o Claude Code para ativar os hooks
É isso! O Nova-tracer agora protegerá todas as suas sessões do Claude Code.
brew install jq no macOS)./install.sh
O instalador irá:
~/.claude/settings.json./uninstall.sh
O desinstalador irá:
.nova-tracer/O Nova-tracer registra quatro hooks do Claude Code que funcionam juntos:
┌─────────────────────────────────────────────────────────────┐
│ Claude Code Session │
├─────────────────────────────────────────────────────────────┤
│ │
│ 1. SessionStart Hook │
│ └── Creates session JSONL file │
│ └── Initializes tracking with session ID │
│ │
│ 2. PreToolUse Hook (Bash, Write, Edit) [ACTIVE] │
│ └── Scans commands BEFORE execution │
│ └── BLOCKS dangerous operations (rm -rf, etc.) │
│ │
│ 3. PostToolUse Hook (Read, Bash, WebFetch, etc.) [PASSIVE] │
│ └── Scans tool OUTPUT for prompt injection │
│ └── WARNS Claude if threats detected │
│ └── Records event with NOVA verdict │
│ │
│ 4. SessionEnd Hook │
│ └── Generates interactive HTML report │
│ └── Creates AI-powered session summary │
│ └── Saves to .nova-tracer/reports/ │
│ │
└─────────────────────────────────────────────────────────────┘
O Nova-tracer fornece dois modos de proteção:
| Modo | Hook | Comportamento | Caso de Uso |
|---|---|---|---|
| ATIVO | PreToolUse | Bloqueia a execução antes que ocorra | Comandos perigosos (rm -rf /, sudo rm, etc.) |
| PASSIVO | PostToolUse | Avisa o Claude após a leitura do conteúdo | Injeção de prompt em arquivos, páginas web, saída de comandos |
Importante: A detecção de injeção de prompt é passiva. Quando o Nova-tracer detecta uma injeção de prompt em um arquivo ou página web, o conteúdo já foi lido pelo Claude. O Nova-tracer envia uma mensagem de aviso ao Claude aconselhando-o a tratar o conteúdo com suspeita, mas não impede que Claude veja o conteúdo malicioso.
Esta é uma limitação da arquitetura do hook PostToolUse - ele é executado após a ferramenta ser usada. O bloqueio ativo de injeções de prompt exigiria a varredura do conteúdo antes que Claude o lesse, o que envolveria ler os arquivos duas vezes (uma para varredura, outra para Claude).
O que é bloqueado ativamente:
rm -rf /, sudo rm -rf, mkfsdd if=... of=/dev/, fork bombscurl ... | sh, leitura de ~/.ssh/id_rsaO que é avisado passivamente:
| Nível | Método | Velocidade | Captura |
|---|---|---|---|
| Palavras-chave | Padrões regex | ~1ms | Padrões de ataque conhecidos, frases exatas |
| Semântica | Similaridade ML | ~50ms | Ataques parafraseados, variações |
| LLM | Avaliação de IA | ~500-2000ms | Ataques sofisticados e novos |
Uma vez instalado, o Nova-tracer funciona automaticamente:
Os relatórios são salvos no diretório .nova-tracer/reports/ de cada projeto:
# Liste os relatórios do projeto atual
ls .nova-tracer/reports/
# Abra um relatório no seu navegador
open .nova-tracer/reports/session-abc123.html
O relatório HTML interativo inclui:
Teste a detecção do Nova-tracer sem executar o Claude Code:
# Execute testes de ataque de exemplo
uv run hooks/test-nova-guard.py --samples
# Teste texto específico
uv run hooks/test-nova-guard.py --text "ignore previous instructions"
# Teste um arquivo
uv run hooks/test-nova-guard.py --file suspicious.txt
# Modo interativo
uv run hooks/test-nova-guard.py -i
O Nova-tracer funciona com padrões sensatos, mas você pode personalizar o comportamento.
Edite config/nova-tracer.yaml:
# Diretório de saída do relatório
# Vazio = {projeto}/.nova-tracer/reports/ (padrão)
# Caminho relativo = relativo ao projeto
# Caminho absoluto = local exato
report_output_dir: ""