В 2025 году на публичный GitHub попало 28,65 млн новых секретов — на 34% больше, чем годом ранее. Это крупнейший годовой прирост за пять лет наблюдений GitGuardian. Разбираем, откуда берётся рост, почему каждый третий новый разработчик начинает с утечки и что сделать, чтобы ваш ключ не оказался в этой статистике.
Что это
Утечка секретов — попадание конфиденциальных данных в место, откуда их может прочитать посторонний: публичный коммит, лог сборки, MCP-конфиг или frontend-код. Секретом считается любая строка, дающая доступ к API, базе данных или инфраструктуре — от OpenAI API key до строки подключения PostgreSQL.
GitGuardian в отчёте State of Secrets Sprawl 2026 (5-е издание, март 2026) проанализировал публичные коммиты GitHub за 2025 год и зафиксировал 28,65 млн новых захардкоженных секретов. Всего с 2021 года рост составил 152%: с 11 млн до 29 млн в год. При этом публичных коммитов стало 1,94 млрд (+43% за год), а активных разработчиков — 22,8 млн (+33%), причём 54% из них сделали первый коммит именно в 2025 году.
Данные собираются автоматическими детекторами в момент пуша: GitGuardian, GitHub Secret Scanning и боты злоумышленников находят ключ за 1–90 секунд. Дальше ключ проверяют на доступ за минуты, а последствия наступают часами. Поэтому даже случайно запушенный файл.env в истории коммитов остаётся доступным, пока ключ не перевыпущен.
Ключевое правило: удаление ключа из текущего файла не удаляет его из истории git. Пока ключ не отозван, он считается скомпрометированным.
Зачем нужно
Понимать масштаб, чтобы не считать утечку редким случаем:
- Рост быстрее — секреты утекают в 1,6 раза быстрее, чем растёт число разработчиков. В 2025 утечек стало на 34% больше при росте аудитории на 33%.
- AI-сервисы лидируют — 1 275 105 секретов AI-сервисов, +81% за год. 8 из 10 самых быстрорастущих детекторов связаны с AI. Инфраструктура LLM (оркестрация, RAG, векторные БД) утекает в 5 раз быстрее, чем ключи самих моделей.
- Новички в зоне риска — каждый второй активный разработчик в 2025 — новичок. Коммиты с помощью Claude Code утекают в 2 раза чаще (3,2% против 1,5% базового уровня), но виноват не инструмент, а отсутствие проверки человеком.
- Проблема шире публичного GitHub — внутренние репозитории содержат секреты в 6 раз чаще (32,2% против 5,6%). Каждый четвёртый инцидент (28%) происходит вне репозиториев — в Slack, Jira и Confluence, и такие утечки на 13 п.п. чаще критичны.
- Исправляют годами — 64% секретов, признанных валидными в 2022 году, всё ещё активны в январе 2026. Почти половина критичных секретов (46%) вообще не имеет валидатора и выпадает из приоритизации.
Как устроено
Разработка в 2025 ускорилась: AI-ассистенты стали повседневным инструментом. Число AI-ассистированных коммитов выросло от 1,3 тыс. в октябре 2024 до 3,5 млн в октябре 2025. Вместе с этим выросло число мест, где хранятся учётные данные: токены, ключи, строки подключения. Когда создание обгоняет управление, секреты расползаются по всей системе.
Яркий пример — Model Context Protocol (MCP), ставший в 2025 стандартом подключения LLM к внешним данным. GitGuardian нашёл 24 008 уникальных секретов в MCP-конфигах, из них 2 117 валидных (8,8%). Лидеры — Google API Key (19,2%), PostgreSQL connection string (14%), Firecrawl и Perplexity. Причина — официальные гайды сами советуют вставлять ключи прямо в конфиг или командную строку.
На машине разработчика картина ещё плотнее. Анализ Supply-chain атаки Shai-Hulud 2 на 6 943 скомпрометированных машинах показал 294 842 вхождения секретов (33 185 уникальных). У 44% машин было больше 10 секретов, у 5% — больше 100. Причём 59% машин — это CI/CD-раннеры, а не личные ноутбуки. Когда агент получает доступ к терминалу, файлам и env-переменным, ноутбук сам становится периметром.
| Этап утечки | Что происходит | Время |
|---|---|---|
Коммит с ключом | Разработчик пушит.env или вставляет ключ в код | 0 |
Сканирование | GitGuardian, GitHub Scanning и боты находят строку | 1–90 сек |
Проверка доступа | Автоботы пробуют ключ на реальном API | 2–5 мин |
Эксплуатация | Списание средств, чтение данных, закрепление | Часы |
Типы утечек в 2025 сместились в сторону AI: OpenRouter вырос в 48 раз, DeepSeek — в 23 раза, Brave Search — в 13,5 раза. На машине же чаще всего находят generic-токены и ключи без валидатора — именно они дают 46% критичных инцидентов, которые пропускает приоритизация только по валидации.
Работать с репозиториями безопасно помогает базовое понимание платформы. Если вы только заводите проект, посмотрите гайд по GitHub с нуля — там разобраны создание репозитория, ветки и подключение к Codex.
Для инфраструктуры с AI-агентами пригодится разбор VPS для AI и подключение AI к почте без потери безопасности.
Когда использовать
| Ситуация | Решение | Почему |
|---|---|---|
Личный проект на GitHub | .env в.gitignore + бесплатный GitGuardian | Закрывает базовый риск за 5 минут |
Команда 2–5 человек | Pre-commit хуки + GitHub Secret Scanning | Ловит ключ до попадания в историю |
Production с AI-интеграцией | Все уровни + scoped tokens + ротация каждые 90 дней | AI-ключи утекают быстрее всего (+81% за год) |
Open-source библиотека | .env.example + CI-сканеры + honeytokens | Шаблон без значений + ловушка для проверки сканеров |
MCP-сервер или AI-агент | Переменные окружения или vault, не конфиг-файл | 24 тыс. утечек в MCP-конфигах в 2025 |
Внутренний репозиторий | Те же правила, что для публичного | Внутри секретов в 6 раз больше — это резерв для будущей утечки |
Бесплатные песочницы вроде Google Colab и Replit не подходят для production-ключей — они видны другим пользователям и администраторам. API-ключ в JS на фронтенде виден через DevTools любому посетителю, нужен прокси-сервер. Доверять только.gitignore нельзя — проверяйте git status перед коммитом, а скриншотами кода не делитесь: ключи читаются OCR.
Пример
Настройка защиты за 5 минут — от исключения файла до проверки хука.
# 1. Исключить .env из git
echo ".env" >> .gitignore
echo ".env.local" >> .gitignore
git check-ignore .env # должен ответить .env
# 2. Pre-commit хук (вариант на pre-commit)
pip install pre-commit
pre-commit install
# .pre-commit-config.yaml — пример с gitleaks
# repos:
# - repo: https://github.com/gitleaks/gitleaks
# rev: v8.21.0
# hooks: [{id: gitleaks}]
# 3. Шаблон без реальных значений
cat > .env.example <<'EOF'
OPENAI_API_KEY=sk-your-key-here
ANTHROPIC_API_KEY=sk-ant-your-key
DATABASE_URL=postgresql://user:pass@host/db
EOF
# 4. Проверка перед пушем
git secrets --scan # или gitleaks detect --source .
# 5. Если ключ уже утек — перевыпустить, а не только удалить
# git filter-repo не отменяет компрометацию — ротируйте ключ сразу
Подключите GitGuardian бесплатно для публичных репозиториев или GitHub Secret Scanning в настройках репозитория — уведомление приходит в течение минуты. Для MCP не копируйте примеры из документации с ключом в строке — вынесите ключ в переменную окружения. И помните: 64% валидных секретов 2022 года до сих пор работают — без ротации детекция не спасает.
Секреты расползаются не потому, что AI пишет плохой код, а потому, что скорость создания обогнала управление доступом. В 2025 каждый второй разработчик был новичком, а AI-инфраструктура обрастала новыми ключами без готовых правил хранения. Закройте базу —.gitignore, хук, шаблон и сканер — и добавьте владение ключами: кто отвечает, что ключ открывает и когда он истекает. Без этого даже найденная утечка останется активной годами.
Ссылки
- Документация: GitGuardian State of Secrets Sprawl 2026
- Репозиторий: awslabs/git-secrets
- Репозиторий: trufflesecurity/truffleHog
- Документация: GitHub Secret Scanning


