К содержанию

В публичных репозиториях с Claude Code нашли 2539 секретов

Исследование Apiiro выявило пароли, токены и облачные ключи в 1994 репозиториях GitHub.

В Telegram
Окно Claude Code с командой npm test и выбранным разрешением больше не запрашивать подтверждение, рядом файл .claude/settings.local.json.
Постоянное разрешение Claude Code сохраняется в локальном файле настроек проекта вместе с правилом для Bash-команды.

Компания Apiiro, разрабатывающая инструменты защиты кода, 5 ноября сообщила о 2539 секретах в 1994 публичных репозиториях GitHub, связанных с использованием Claude Code. Среди находок были пароли от баз данных, токены доступа, SSH-данные и ключи облачных сервисов.

Основная выборка охватывала 104 185 файлов .claude/settings.local.json: в 1122 из них исследователи нашли 1379 секретов. Более крупная цифра 2539 также учитывает общие настройки команд, сохранённые диалоги с агентом и предыдущие версии файлов в истории Git. Исследование затронуло репозитории 63 организаций, хотя большинство обнаруженных файлов принадлежало отдельным разработчикам.

Как секреты попадали в настройки

Claude Code запрашивает разрешение перед запуском некоторых команд. Если разработчик выбирает вариант «Yes, and don’t ask again», постоянное разрешение для Bash-команды сохраняется в .claude/settings.local.json в папке проекта. Это поведение описано в официальной документации Claude Code.

Читайте также

Если правило содержит не общий шаблон, а полную команду, вместе с ней в файл может попасть пароль, токен или строка подключения. Например, это возможно при запуске curl с токеном в заголовке авторизации или клиента базы данных с паролем в самой команде. Значение сохраняется как обычный текст.

Claude Code добавляет локальный файл настроек в глобальные исключения Git на текущем компьютере. Но такая настройка не переносится вместе с репозиторием: защита может не сработать на другой машине, в контейнере, после копирования папки или в случае, если файл уже отслеживается Git. Поэтому локальная настройка способна оказаться в публичном репозитории, хотя изначально не предназначалась для публикации.

В 48,8% репозиториев с найденными секретами файл настроек менялся в коммите, где Claude был указан соавтором. Apiiro также воспроизвела сохранение команд с учётными данными и связала его с поведением приложения Claude Code, а не конкретной языковой модели.

Что означают найденные числа

Исследователи не пытались входить в сервисы с большинством найденных учётных данных. Значения отбирали по формату ключей, наличию адреса связанного публичного сервиса и дополнительной проверке моделью. Поэтому 2539 — число строк, классифицированных как реальные секреты, а не число доказанно действующих ключей.

Одна из уведомлённых организаций подтвердила, что обнаруженный ключ оставался активным. Ещё 734 секрета находились только в старых версиях файлов. Это важно: удаление текущего файла не устраняет данные из истории Git, форков и уже созданных копий репозитория.

Обычные сканеры также нашли не всё. Gitleaks обнаружил секреты в 564 из 1122 проблемных файлов, TruffleHog — в 643. Вместе они пропустили 215 файлов, или 19,2% выборки. Пароль внутри длинной команды сложнее распознать, чем API-ключ со стандартным префиксом и форматом.

Что проверить пользователям Claude Code

Разработчикам и командам стоит проверить локальные и общие настройки Claude Code — .claude/settings.local.json и .claude/settings.json, а также историю публичных репозиториев. Особое внимание нужно уделить разрешениям, в которых сохранены полные команды, строки подключения, заголовки авторизации и переменные окружения со значениями.

Если секрет уже попал в репозиторий, сначала следует отозвать его и выпустить новый. Простого удаления строки или файла недостаточно: прежнее значение может сохраниться в истории, форках и клонах. Для постоянных разрешений безопаснее использовать шаблоны команд без учётных данных, а сами секреты передавать через менеджер секретов или переменные окружения, не записывая значения в команду.

Исследование описывает не взлом GitHub и не уязвимость самой языковой модели. Риск возникает на пересечении поведения инструмента, постоянных разрешений и работы с Git. Для пользователей других программирующих агентов вывод шире конкретного продукта: файлы настроек и журналы агента следует проверять на секреты наравне с исходным кодом.

Похожее

Как процитировать этот материал

«В публичных репозиториях с Claude Code нашли 2539 секретов». hegai.media, 10 ноября 2026 г.. https://hegai.media/novosti/v-publichnyh-repozitoriyah-s-claude-code-nashli-2539-sekretov--88aac37e