Ключ Claude в git: GitHub блокирует такой push по умолчанию

GitHub по умолчанию блокирует push с ключами Claude. Разбираем, как работает защита и как держать ключи LLM вне репозиториев и под лимитом.

  • Ключ модели работает как корпоративная карта
  • Что выпустил GitHub
  • Почему утёкший ключ модели стоит денег сразу
  • Как работает push protection

Ключ модели работает как корпоративная карта

13 октября GitHub начал по умолчанию блокировать push, в котором есть ключ Anthropic (GitHub Changelog). Secret scanning теперь также находит токены Salesforce и Cloudsmith. Компаниям, которые подключили Claude к разработке и интеграциям, стоит обратить внимание на эту новость. API-ключ модели работает как корпоративная карта, у которой нет лимита, если команда его не настроила.

Защищать ключ нужно до того, как он попадёт в репозиторий. Если ключ уже в репозитории, команда может только отозвать его и посчитать, сколько денег потеряно.

Что выпустил GitHub

12 и 13 октября GitHub выпустил три обновления.

Все три касаются того, как компания контролирует секреты и AI-инструменты в разработке. - Secret scanning теперь распознаёт новые типы секретов Anthropic, Salesforce и Cloudsmith.

Для ключей Anthropic push protection включена по умолчанию: сервер GitHub отклоняет `git push` с таким ключом, пока разработчик не удалит секрет или явно не обойдёт блокировку. Salesforce вошёл в партнёрскую программу.

Если GitHub найдёт токен `salesforce_marketing_cloud_api_oauth2_token` в публичном репозитории, он передаст его Salesforce, и Salesforce отзовёт или ротирует ключ. - Security overview показывает метрики AI Scan для pull requests: число новых и закрытых находок, remediation rate (долю исправленных находок), репозитории с наибольшим числом проблем и частоту, с которой разработчики принимают autofix. - Телеметрия Copilot получила настройку `telemetry.capture.identity`.

Она добавляет в данные OpenTelemetry три атрибута: `user.name` (логин GitHub), `process.user.name` (учётная запись ОС) и `host.name` (имя машины). Промпты, ответы и содержимое вызовов инструментов настройка не собирает. По умолчанию она выключена.

Почему утёкший ключ модели стоит денег сразу

  1. Утёкший пароль от тестовой базы создаёт риск, который может так и не реализоваться.

  2. Утёкший ключ к LLM API начинает расходовать деньги в тот момент, когда его находит посторонний. Боты, которые сканируют публичные коммиты в поисках ключей, работают давно.

  3. Найденный ключ к Claude или GPT их владельцы используют для генерации за ваш счёт.

  4. Если команда не настроила лимит расходов и алерты в консоли провайдера, перерасход заметят, когда придёт счёт или закончится баланс.

  5. Ключи чаще утекают по нескольким сценариям: разработчик коммитит `.env`, оставляет ключ в Jupyter-ноутбуке, в конфиге MCP-сервера или во временном скрипте, который потом попадает в общий репозиторий.

  6. Ещё один сценарий пока остаётся нашей гипотезой: AI-агент пишет код, видит ключ в контексте и подставляет его в код строкой, чтобы тест прошёл.

  7. Если гипотеза верна, то с ростом доли кода, написанного агентами, ключи будут чаще попадать в неожиданные места.

Как работает push protection

  1. Сервер GitHub сверяет содержимое push с шаблонами известных секретов.

  2. Для части провайдеров он также проверяет, действует ли найденный ключ.

  3. Ключевое свойство схемы - момент проверки: GitHub блокирует секрет до того, как тот попадёт в историю, поэтому вычищать его из git не придётся.

  4. Чистка истории обходится дорого: команда переписывает историю, делает force push, и все участники пересоздают локальные клоны.

  5. После этого ключ всё равно нужно ротировать, потому что его копии могли остаться в форках, локальных клонах и кэше CI.

  6. Партнёрская программа добавляет вторую линию защиты.

  7. Если ключ всё же попал в публичный репозиторий, GitHub сообщает об этом провайдеру, и провайдер отзывает ключ без участия вашей команды. У схемы есть ограничение: она работает только внутри GitHub.

  8. Многие российские компании держат код в self-hosted GitLab или Gitea.

  9. Там такую же проверку собирают из pre-receive hook на сервере и gitleaks или trufflehog в CI.

  10. По нашему опыту, базовая настройка занимает около дня.

  11. Это хороший пример TTU, времени до пользы: проверка начинает отсекать ключи со следующего push.

Оценить, где ИИ даст эффект в вашем процессе

Метрика, по которой видно результат

  1. Метрики AI Scan стоит читать внимательно.

  2. Число находок само по себе мало что говорит: сканер, нашедший 400 проблем, может просто завалить команду шумом.

  3. Руководителю нужны две цифры. Remediation rate показывает, какую долю находок команда закрыла.

  4. Доля принятых autofix показывает, соглашаются ли разработчики с правками, которые предлагает AI.

  5. Если remediation rate не растёт, бюджет на сканер ушёл на отчёты.

  6. Компания платит за сканер ради закрытых уязвимостей, и AI-сканер, который не двигает эту цифру, остаётся дорогой декорацией.

Атрибуция без слежки

  1. Настройка идентичности в телеметрии Copilot закрывает две управленческие задачи.

  2. Первая - распределение затрат: руководитель видит, какая команда и какой разработчик расходует модели, и при этом никто не читает чужие промпты.

  3. Вторая - расследование инцидентов: если ключ утёк с конкретной машины, `host.name` в телеметрии сужает поиск до одного устройства, и расследование может занять часы, а не дни.

  4. Администратор включает настройку в managed settings, по умолчанию она выключена.

Как мы закрываем это в проектах

  1. В проектах AI-native development и AI-native integration мы забираем ключи провайдеров у людей и агентов. Разработчики, n8n-сценарии и MCP-серверы обращаются к LLM & Security Gateway с внутренним токеном.

  2. Шлюз хранит ключи Anthropic Claude, OpenAI, Google Gemini, Sber GigaChat и YandexGPT, ставит лимиты расходов на команду и контролирует, какие данные уходят наружу.

  3. Если внутренний токен утечёт, его отзывают в одном месте, а ущерб ограничен лимитом, который назначили заранее.

  4. Поверх шлюза мы настраиваем стандартный конвейер: pre-commit-проверку у разработчика, серверную проверку в репозитории, хранение секретов в vault, передачу токенов в конфиги MCP через переменные окружения.

  5. Схема выглядит простой, но чтобы она заработала, нужно пройти по всем репозиториям, сервисам и привычкам команды.

  6. Эту часть работы компании обычно откладывают до первого инцидента.

Вывод

GitHub сделал разумный шаг: защита включена по умолчанию и отсекает ключ до записи в историю. Я бы прочитал эту новость как напоминание. Компания, которая подключает LLM к разработке, должна заранее решить, где хранятся ключи, кто за них отвечает и сколько денег она готова потерять при утечке. Если ответа на третий вопрос нет, сумму определит тот, кто найдёт ключ.

Источник

Обсудить статью: Ключ Claude в git: GitHub блокирует такой…

Укажите email или телефон, чтобы мы могли вам ответить.

Отправить через: