
NOVA - Claude Code-Schutzsystem gegen Prompt-Injection-Angriffe
Sicherheitsüberwachung und Prompt-Injection-Abwehr für Claude Code unter Verwendung des NOVA Frameworks.
# Repository klonen
git clone https://github.com/fr0gger/nova-claude-code-protector.git
cd nova_claude_code_protector
# Global installieren (registriert Hooks in ~/.claude/settings.json)
./install.sh
# Claude Code neu starten, um die Hooks zu aktivieren
Das war's! Nova-tracer schützt nun alle Ihre Claude-Code-Sitzungen.
brew install jq)./install.sh
Das Installationsskript wird:
~/.claude/settings.json registrieren./uninstall.sh
Das Deinstallationsskript wird:
.nova-tracer/-Verzeichnisse bereinigenNova-tracer registriert vier Claude-Code-Hooks, die zusammenarbeiten:
┌─────────────────────────────────────────────────────────────┐
│ Claude Code Session │
├─────────────────────────────────────────────────────────────┤
│ │
│ 1. SessionStart Hook │
│ └── Erstellt JSONL-Datei für Sitzung │
│ └── Initialisiert Verfolgung mit Sitzungs-ID │
│ │
│ 2. PreToolUse Hook (Bash, Write, Edit) [AKTIV] │
│ └── Scannt Befehle VOR der Ausführung │
│ └── BLOCKIERT gefährliche Operationen (rm -rf, usw.) │
│ │
│ 3. PostToolUse Hook (Read, Bash, WebFetch, etc.) [PASSIV] │
│ └── Scannt Werkzeug-AUSGABE auf Prompt Injection │
│ └── WARNT Claude, falls Bedrohungen erkannt │
│ └── Zeichnet Ereignis mit NOVA-Beurteilung auf │
│ │
│ 4. SessionEnd Hook │
│ └── Erzeugt interaktiven HTML-Bericht │
│ └── Erstellt KI-gestützte Sitzungszusammenfassung │
│ └── Speichert in .nova-tracer/reports/ │
│ │
└─────────────────────────────────────────────────────────────┘
Nova-tracer bietet zwei Schutzmodi:
| Modus | Hook | Verhalten | Anwendungsfall |
|---|---|---|---|
| AKTIV | PreToolUse | Blockiert Ausführung, bevor sie stattfindet | Gefährliche Befehle (rm -rf /, sudo rm, usw.) |
| PASSIV | PostToolUse | Warnt Claude, nachdem Inhalt gelesen wurde | Prompt Injection in Dateien, Webseiten, Befehlsausgaben |
Wichtig: Die Prompt-Injection-Erkennung ist passiv. Wenn Nova-tracer eine Prompt Injection in einer Datei oder Webseite erkennt, wurde der Inhalt bereits von Claude gelesen. Nova-tracer sendet eine Warnmeldung an Claude, die empfiehlt, den Inhalt mit Misstrauen zu behandeln, verhindert jedoch nicht, dass Claude den schädlichen Inhalt sieht.
Dies ist eine Einschränkung der PostToolUse-Hook-Architektur – sie wird nach der Ausführung des Werkzeugs ausgeführt. Eine aktive Blockierung von Prompt Injections würde erfordern, dass der Inhalt vor dem Lesen durch Claude gescannt wird, was ein zweimaliges Lesen der Dateien erfordern würde (einmal zum Scannen, einmal für Claude).
Was aktiv blockiert wird:
rm -rf /, sudo rm -rf, mkfsdd if=... of=/dev/, Fork-Bombencurl ... | sh, Lesen von ~/.ssh/id_rsaWas passiv gewarnt wird:
| Stufe | Methode | Geschwindigkeit | Erfasst |
|---|---|---|---|
| Schlüsselwörter | Regex-Muster | ~1ms | Bekannte Angriffsmuster, exakte Phrasen |
| Semantik | ML-Ähnlichkeit | ~50ms | Paraphrasierte Angriffe, Variationen |
| LLM | KI-Bewertung | ~500-2000ms | Raffinierte, neuartige Angriffe |
Nach der Installation arbeitet Nova-tracer automatisch:
Berichte werden im Verzeichnis .nova-tracer/reports/ jedes Projekts gespeichert:
# Berichte des aktuellen Projekts auflisten
ls .nova-tracer/reports/
# Einen Bericht im Browser öffnen
open .nova-tracer/reports/session-abc123.html
Der interaktive HTML-Bericht umfasst:
Testen Sie die Nova-tracer-Erkennung ohne Ausführung von Claude Code:
# Beispiel-Angriffstests ausführen
uv run hooks/test-nova-guard.py --samples
# Spezifischen Text testen
uv run hooks/test-nova-guard.py --text "ignoriere vorherige Anweisungen"
# Datei testen
uv run hooks/test-nova-guard.py --file suspicious.txt
# Interaktiver Modus
uv run hooks/test-nova-guard.py -i
Nova-tracer arbeitet mit sinnvollen Standardeinstellungen, Sie können das Verhalten jedoch anpassen.
Bearbeiten Sie config/nova-tracer.yaml:
# Bericht-Ausgabeverzeichnis
# Leer = {Projekt}/.nova-tracer/reports/ (Standard)
# Relativer Pfad = relativ zum Projekt
# Absoluter Pfad = genauer Speicherort
report_output_dir: ""