
NOVA - система защиты кода Claude от атак с помощью инъекций промптов
Безопасность мониторинга и защита от инъекций подсказок для Claude Code с использованием NOVA Framework.
# Клонировать репозиторий
git clone https://github.com/fr0gger/nova-claude-code-protector.git
cd nova_claude_code_protector
# Установить глобально (регистрирует хуки в ~/.claude/settings.json)
./install.sh
# Перезапустите Claude Code для активации хуков
Вот и все! Nova-tracer теперь будет защищать все ваши сессии Claude Code.
brew install jq на macOS)./install.sh
Установщик выполнит:
~/.claude/settings.json./uninstall.sh
Удалятор выполнит:
.nova-tracer/Nova-tracer регистрирует четыре хука Claude Code, которые работают вместе:
┌─────────────────────────────────────────────────────────────┐
│ Сессия Claude Code │
├─────────────────────────────────────────────────────────────┤
│ │
│ 1. Хук SessionStart │
│ └── Создает файл сессии JSONL │
│ └── Инициализирует отслеживание с идентификатором сессии│
│ │
│ 2. Хук PreToolUse (Bash, Write, Edit) [АКТИВНЫЙ] │
│ └── Сканирует команды ДО выполнения │
│ └── БЛОКИРУЕТ опасные операции (rm -rf и т.д.) │
│ │
│ 3. Хук PostToolUse (Read, Bash, WebFetch и др.) [ПАССИВНЫЙ]│
│ └── Сканирует ВЫВОД инструментов на предмет инъекций │
│ └── ПРЕДУПРЕЖДАЕТ Claude при обнаружении угроз │
│ └── Записывает событие с вердиктом NOVA │
│ │
│ 4. Хук SessionEnd │
│ └── Генерирует интерактивный HTML-отчет │
│ └── Создает сводку сессии на основе ИИ │
│ └── Сохраняет в .nova-tracer/reports/ │
│ │
└─────────────────────────────────────────────────────────────┘
Nova-tracer предоставляет два режима защиты:
| Режим | Хук | Поведение | Случай использования |
|---|---|---|---|
| АКТИВНЫЙ | PreToolUse | Блокирует выполнение до его начала | Опасные команды (rm -rf /, sudo rm и т.д.) |
| ПАССИВНЫЙ | PostToolUse | Предупреждает Claude после прочтения контента | Инъекции подсказок в файлах, веб-страницах, выводе команд |
Важно: Обнаружение инъекций подсказок является пассивным. Когда Nova-tracer обнаруживает инъекцию подсказки в файле или веб-странице, контент уже был прочитан Claude. Nova-tracer отправляет предупреждение Claude, советуя относиться к содержимому с подозрением, но не предотвращает просмотр вредоносного содержимого Claude.
Это ограничение архитектуры хука PostToolUse — он выполняется после того, как инструмент отработал. Активная блокировка инъекций подсказок потребовала бы сканирования контента до того, как Claude его прочитает, что потребовало бы двукратного чтения файлов (один раз для сканирования, второй для Claude).
Что активно блокируется:
rm -rf /, sudo rm -rf, mkfsdd if=... of=/dev/, форк-бомбыcurl ... | sh, чтение ~/.ssh/id_rsaО чем пассивно предупреждается:
| Уровень | Метод | Скорость | Обнаруживает |
|---|---|---|---|
| Ключевые слова | Регекс-шаблоны | ~1мс | Известные шаблоны атак, точные фразы |
| Семантика | ML-сходство | ~50мс | Перефразированные атаки, вариации |
| LLM | Оценка ИИ | ~500-2000мс | Сложные, новые атаки |
После установки Nova-tracer работает автоматически:
Отчеты сохраняются в каталог .nova-tracer/reports/ каждого проекта:
# Список отчетов для текущего проекта
ls .nova-tracer/reports/
# Открыть отчет в браузере
open .nova-tracer/reports/session-abc123.html
Интерактивный HTML-отчет включает:
Протестируйте обнаружение Nova-tracer без запуска Claude Code:
# Запустить образцы тестов атак
uv run hooks/test-nova-guard.py --samples
# Проверить конкретный текст
uv run hooks/test-nova-guard.py --text "ignore previous instructions"
# Проверить файл
uv run hooks/test-nova-guard.py --file suspicious.txt
# Интерактивный режим
uv run hooks/test-nova-guard.py -i
Nova-tracer работает с разумными настройками по умолчанию, но вы можете настроить поведение.
Отредактируйте config/nova-tracer.yaml:
# Каталог вывода отчетов
# Пусто = {project}/.nova-tracer/reports/ (по умолчанию)
# Относительный путь = относительно проекта
# Абсолютный путь = точное расположение
report_output_dir: ""
# Сводки сессий на основе ИИ
# Установите false для использования сводок только по статистике (без вызовов API)
ai_summary_enabled: true