Проблема с 39 миллионами учетных данных
Отчет GitHub Octoverse 2024 зафиксировал 39 миллионов секретов, утекших на GitHub в течение года — 25% увеличение по сравнению с 2023 годом. Эти секреты включают API ключи, строки подключения к базам данных, токены аутентификации, частные сертификаты и учетные данные облачных провайдеров.
Источник этих утечек хорошо задокументирован: разработчики коммитят код, содержащий секреты — либо случайно (конфигурация отладки оставлена в коммите), либо из-за недостаточного управления секретами (закодированные учетные данные вместо переменных окружения). Масштаб в 39 миллионов отражает как рост GitHub как платформы разработки, так и настойчивость небезопасных практик разработки в масштабах.
Что данные Octoverse не полностью фиксируют, так это связанный и растущий вектор утечек: взаимодействия с AI помощниками по кодированию. Когда разработчики вставляют код в Claude, ChatGPT или другие AI инструменты для отладки, проверки или оптимизации, код, который они вставляют, часто содержит те же учетные данные, которые в конечном итоге оказываются в утечках секретов GitHub — строки подключения к базам данных, API ключи, внутренние URL сервисов и токены аутентификации.
Как использование AI разработчиками создает утечку учетных данных
Исследование GitGuardian 2025 года показало, что 67% разработчиков случайно раскрыли секреты в коде. Поведенческие паттерны, которые приводят к утечкам секретов на GitHub, совпадают с паттернами поведения, которые приводят к утечкам учетных данных в AI инструментах — но вектор AI инструмента менее заметен и его труднее обнаружить задним числом.
Разработчик, отлаживающий проблему подключения в производственной среде, вставляет трассировку стека, которая включает строку подключения к базе данных, использованную в сообщении об ошибке. AI модель обрабатывает строку подключения, потенциально сохраняет ее в истории разговоров и передает на серверы провайдера AI. Учетные данные теперь вне контроля разработчика.
Разработчик, просящий помощи в оптимизации конвейера данных, вставляет код конвейера, включая имя S3 бакета, AWS ключ доступа и секретный ключ, используемый для аутентификации. AI модель получает эти учетные данные как часть законной помощи в кодировании.
Разработчик, запрашивающий проверку кода, вставляет реализацию интеграции API, которая включает ключ партнера API. Запрос на проверку содержит учетные данные для живой производственной среды.
В каждом случае намерение разработчика является законным — им нужна помощь с технической проблемой. Утечка учетных данных является случайным следствием включения контекста отладки. Этот паттерн точно отражает, как секреты оказываются на GitHub: не злонамеренное раскрытие, а случайное включение.
Тенденция утечек в CI/CD конвейерах
Утечки PII и секретов разработчиков в CI/CD конвейерах увеличились на 34% в 2024 году, согласно данным отслеживания. Источник аналогичен: скрипты сборки, конфигурации развертывания и файлы инфраструктуры как кода все чаще проверяются с помощью AI инструментов. Эти файлы регулярно содержат ссылки на переменные окружения, учетные данные облачных провайдеров и токены сервисных аккаунтов.
С ростом использования AI инструментов в рабочих процессах разработки — разработчики используют AI для проверки кода, документации, отладки и оптимизации на протяжении всего жизненного цикла разработки — площадь для случайной утечки учетных данных растет пропорционально.
Решение архитектуры MCP
Для команд разработчиков, использующих Claude Desktop или Cursor IDE в качестве основных AI инструментов для кодирования, архитектура Model Context Protocol (MCP) предоставляет прозрачный уровень перехвата учетных данных.
Сервер MCP находится между AI клиентом разработчика и API модели AI. Весь текст, передаваемый через протокол MCP — включая вставленный код, трассировки стека, конфигурационные файлы и контекст отладки — проходит через движок анонимизации перед тем, как достичь модели AI.
Движок анонимизации обнаруживает паттерны, похожие на учетные данные: форматы API ключей, структуры строк подключения к базам данных, форматы токенов OAuth, заголовки частных ключей и пользовательские форматы учетных данных, настроенные командой безопасности. Эти паттерны заменяются структурированными токенами перед передачей.
Для разработчика, отлаживающего проблему подключения в производственной среде: трассировка стека, содержащая строку подключения к базе данных, поступает на сервер MCP. Строка подключения заменяется токеном ([DB_CONNECTION_1]). Модель AI получает трассировку стека с замененными учетными данными. Помощь в отладке предоставляется на основе анонимизированной версии. Разработчик получает ответ, который использует тот же токен — достаточно, чтобы понять техническую проблему. Фактические учетные данные никогда не покидали корпоративную сеть.
39 миллионов утечек секретов на GitHub отражают последствия недостаточного контроля над известным вектором утечек. Утечка учетных данных AI помощника по кодированию является тем же вектором утечек в менее контролируемом канале. Технический контроль, который решает обе проблемы, — это перехват учетных данных перед передачей.
Источники: