
NOVA - Système de protection Claude Code contre les attaques par injection de prompts
Surveillance de sécurité et défense contre les injections de prompts pour Claude Code utilisant le NOVA Framework.
# Clone the repository
git clone https://github.com/fr0gger/nova-claude-code-protector.git
cd nova_claude_code_protector
# Install globally (registers hooks in ~/.claude/settings.json)
./install.sh
# Restart Claude Code to activate hooks
C'est tout ! Nova-tracer protégera désormais toutes vos sessions Claude Code.
brew install jq sur macOS)./install.sh
L'installateur va :
~/.claude/settings.json./uninstall.sh
Le désinstallateur va :
.nova-tracer/Nova-tracer enregistre quatre hooks Claude Code qui fonctionnent ensemble :
┌─────────────────────────────────────────────────────────────┐
│ 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/ │
│ │
└─────────────────────────────────────────────────────────────┘
Nova-tracer offre deux modes de protection :
| Mode | Hook | Comportement | Cas d'utilisation |
|---|---|---|---|
| ACTIF | PreToolUse | Bloque l'exécution avant qu'elle n'ait lieu | Commandes dangereuses (rm -rf /, sudo rm, etc.) |
| PASSIF | PostToolUse | Avertit Claude après la lecture du contenu | Injection de prompt dans les fichiers, pages Web, sortie de commandes |
Important : La détection d'injection de prompt est passive. Lorsque Nova-tracer détecte une injection de prompt dans un fichier ou une page Web, le contenu a déjà été lu par Claude. Nova-tracer envoie un message d'avertissement à Claude lui conseillant de traiter le contenu avec suspicion, mais n'empêche pas Claude de voir le contenu malveillant.
Il s'agit d'une limitation de l'architecture du hook PostToolUse - il s'exécute après l'exécution de l'outil. Le blocage actif des injections de prompt nécessiterait de scanner le contenu avant que Claude ne le lise, ce qui impliquerait de lire les fichiers deux fois (une fois pour le scan, une fois pour Claude).
Ce qui est activement bloqué :
rm -rf /, sudo rm -rf, mkfsdd if=... of=/dev/, bombes forkcurl ... | sh, lecture de ~/.ssh/id_rsaCe qui est passivement averti :
| Niveau | Méthode | Vitesse | Capture |
|---|---|---|---|
| Mots-clés | Expressions régulières | ~1ms | Modèles d'attaque connus, phrases exactes |
| Sémantique | Similarité ML | ~50ms | Attaques paraphrasées, variations |
| LLM | Évaluation IA | ~500-2000ms | Attaques sophistiquées et nouvelles |
Une fois installé, Nova-tracer fonctionne automatiquement :
Les rapports sont sauvegardés dans le répertoire .nova-tracer/reports/ de chaque projet :
# Lister les rapports pour le projet courant
ls .nova-tracer/reports/
# Ouvrir un rapport dans votre navigateur
open .nova-tracer/reports/session-abc123.html
Le rapport HTML interactif inclut :
Testez la détection de Nova-tracer sans exécuter Claude Code :
# Exécuter les tests d'attaques échantillons
uv run hooks/test-nova-guard.py --samples
# Tester un texte spécifique
uv run hooks/test-nova-guard.py --text "ignore previous instructions"
# Tester un fichier
uv run hooks/test-nova-guard.py --file suspicious.txt
# Mode interactif
uv run hooks/test-nova-guard.py -i
Nova-tracer fonctionne avec des valeurs par défaut raisonnables, mais vous pouvez personnaliser le comportement.
Modifier config/nova-tracer.yaml :