Исследование, проведенное Truffle Security, показало, что 543 699 уникальных учетных данных по-прежнему были действительными и открытыми в публичных репозиториях GitHub в течение июля, несмотря на инструменты платформы, призванные предотвращать случайную публикацию конфиденциальных секретов. Результаты были получены после анализа данных, охватывавших 224 миллиона репозиториев и более 58 миллиардов файлов, включая копии ответвленных репозиториев.
Проблема не ограничивалась недавно раскрытыми секретами: уникальные учетные данные оставались общедоступными в течение медианного периода продолжительностью 784 дня. Около 10% действующих учетных данных были старше 6,3 года, а самые старые действительные учетные данные, обнаруженные в исследовании, датировались 2009 годом.
Масштаб и тенденция раскрытия
Учетные данные, подсчитанные в исследовании, встречались более чем в 1,1 миллиона файлов и репозиториев. Анализ основывался на наборе данных, подготовленном для обучения больших языковых моделей, и на процессе сканирования, завершенном 7 августа 2025 года.
Truffle Security заявляет, что это число более чем вдвое превышает показатель, зафиксированный в августе при проверке платформы Hugging Face, где были обнаружены 221 303 действующих учетных данных. Плотность действующих секретов также выросла с 3,72 на миллион файлов в 2015 году до пикового значения 11,62 в 2025 году.
Что изменила Push Protection?
GitHub представила функцию Push Protection в апреле 2022 года для пользователей Advanced Security, затем сделала ее доступной для публичных репозиториев в мае 2023 года, а еще через год включила ее по умолчанию. Функция проверяет поступающий код на наличие известных шаблонов, таких как API-ключи и токены доступа, и блокирует загрузку при их обнаружении.
Однако функция не аннулирует и не деактивирует учетные данные, раскрытые до момента их обнаружения. Среди учетных данных, которые по-прежнему были действительными в июле, 199 843 были раскрыты после включения Push Protection для всех пользователей в феврале 2024 года, то есть около 36,8% от общего числа. Кроме того, 51,8% действующих учетных данных относились к категориям, которые не блокируются защитой по умолчанию, включая строки подключения к базам данных и ключи Google API.
Тем не менее функция оказалась эффективной в пределах своей области покрытия: после ее включения по умолчанию уровень раскрытия учетных данных в защищенных категориях снизился на 53%.
Почему эта новость важна?
Результаты показывают, что предотвращение загрузки нового секрета не устраняет весь риск. Секреты могут надолго оставаться в истории репозитория или его ответвленных копиях, а эффективность реагирования различается в зависимости от типа учетных данных и связанной с ними службы.
Например, действительным остался только один токен npm из 101 886 раскрытых токенов, тогда как 69 041 учетная запись из 126 963 учетных записей служб Google Cloud оставалась действительной на момент анализа. Truffle Security рекомендует немедленно обновлять раскрытые учетные данные, очищать репозитории, проверять историю изменений и настраивать автоматическое истечение срока действия активных секретов.
Исследование не определяет долю секретов, которые были фактически украдены или использованы в атаках, поэтому оно измеряет масштаб потенциально эксплуатируемого раскрытия, а не объем подтвержденного ущерба. Это по-прежнему один из открытых вопросов, который не следует смешивать с количеством обнаруженных действительных учетных данных.