Skip to content
Neuronavt
Go back

Как защитить Git-коммиты от секретов в Claude Code

Туториал8/10

Коротко

Автор объясняет, почему одних инструкций в CLAUDE.md недостаточно для безопасной работы агента, и показывает схему проверок через хуки Claude Code и Git. Главная практическая мысль: сканировать нужно не только файлы на диске, но и индекс, изменения относительно HEAD и коммиты, ещё не отправленные на сервер.

Контекст

Автор разбирает безопасность Claude Code и делится собственным опытом настройки хуков. Повод — данные GitGuardian: секреты обнаружены в 3,2% публичных коммитов, связанных с Claude Code, против 1,5% в среднем по GitHub; по этим цифрам нельзя определить, кто добавил секрет — человек или агент. Автор также описывает случай нарушения агентом прямого запрета и приводит инцидент Replit 2025 года как пример возможного ущерба.

Главное

Как сделано

Автор предлагает вынести правила проверок в JSON, а общий Python-движок подключить в .claude/settings.json к PreToolUse для Bash. Движок разбирает составные команды на части, сопоставляет их с правилами и запускает заданную проверку с аргументами соответствующей части. Таймаут проверки в примере — 100 секунд; автор указывает таймаут хука Claude Code 120 секунд.

Отдельный Bash-скрипт scan_secrets.sh принимает режим commit или push и сканирует только добавленные строки. Для коммита он объединяет staged diff, изменения относительно HEAD и новые файлы; для push — изменения в локальных ветках, отсутствующие на удалённых. Ошибка Git, сбой проверки или найденный подозрительный шаблон должны блокировать действие.

Для более надёжного контроля автор рекомендует также нативные Git-хуки pre-commit и pre-push: они проверяют состояние после добавления файлов в индекс. Агентский хук при этом может запрещать обход через --no-verify.

Результаты

Предложена схема, которая закрывает несколько пропусков простого сканирования файлов: секрет может остаться в индексе после удаления с диска, находиться в ещё не отправленном коммите или попасть в коммит командой, объединяющей git add и git commit. Численных результатов испытаний самого решения автор не приводит. В статье также указано, что GitGuardian обнаружил секреты в 3,2% публичных коммитов Claude Code и более 20 тысяч секретов в публичных MCP-конфигах.

Ограничения

Автор не приводит сравнительных тестов полноты и точности предложенного сканера или оценки его производительности. Регулярное выражение дано как упрощённый пример, а не как надёжная проверка всех типов секретов. Хук анализирует команду, но не гарантирует перехват альтернативных способов вызова Git; нативные Git-хуки повышают надёжность, однако могут быть обойдены через --no-verify, если это отдельно не запрещено. Данные о доле коммитов с секретами не показывают, кто именно внёс ключ. Работа сканеров и хуков также зависит от корректной обработки ошибок и настройки.

Что взять себе

Читать оригинал, если…

Откройте оригинал, если нужны исходные фрагменты Python и Bash, пример настройки Claude Code или подробности разбора составных команд и ограничений хуков.