543 699 действующих учётных данных нашли в открытых репозиториях GitHub

Исследователи Truffle Security проверили открытый код GitHub из набора данных для обучения больших языковых моделей.

Технологический фон с логотипом GitHub и текстом о данных

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

Для анализа взяли набор The Stack v3, собранный из 224 553 295 публичных репозиториев GitHub и более 58 млрд файлов. Его сбор завершился 7 августа 2025 года, почти за год до проверки учётных данных. Исследователи насчитали 1 103 438 случаев публикации секретов в файлах и репозиториях, включая копии в форках. После удаления повторов осталось 543 699 уникальных действующих учётных данных с пригодной для анализа датой.

За дату утечки исследователи приняли время последнего изменения файла, а для секрета с несколькими копиями выбрали самую раннюю дату. Медианный срок нахождения действующих учётных данных в открытом коде составил 784 дня. Самый старый найденный секрет находился в конфигурации веб-сервера на Erlang: файл последний раз меняли 13 июня 2009 года, но данные оставались действительными и спустя 16,1 года. Названия репозиториев с такими секретами исследователи не раскрыли.

Данных и защита GitHub учетных записях 543 699
Источник изображения: bleepingcomputer

Защита секретов в GitHub и их отзыв

GitHub постепенно расширял защиту публичных репозиториев. Бесплатные уведомления о найденных секретах стали доступны всем таким репозиториям 28 февраля 2023 года. В мае того же года общедоступной стала Push Protection, которая может остановить отправку кода с распознанным секретом. С 29 февраля 2024 года GitHub включает эту защиту по умолчанию, хотя разработчик может обойти блокировку.

Из действующих учётных данных 245 959 попали в репозитории до появления бесплатных уведомлений. Ещё 97 897 датированы периодом, когда уведомления уже были бесплатными, а защиту при отправке кода можно было включить самостоятельно. Остальные 199 843 относятся ко времени после включения Push Protection по умолчанию. Эти числа описывают дату изменения файла, а не полную историю публикации секрета: в наборе данных сохранена только основная ветка репозитория на момент сбора.

график статусов обновления файлов GitHub Live Credentials
Источник изображения: bleepingcomputer

В категориях, которые Push Protection распознаёт, частота появления учётных данных в открытом коде после включения защиты по умолчанию снизилась на 53% при сравнении двух двенадцатимесячных периодов. Для незащищённых категорий снижение составило 7%. При этом 51,8% всех найденных действующих секретов относятся к типам, которые настройка по умолчанию не блокирует. Среди них строки подключения к базам данных, ключи Google API и закрытые ключи.

Из 101 886 опубликованных токенов npm действовал один, а из 126 963 учётных данных сервисных аккаунтов Google Cloud работала 69 041. Программа GitHub может передать сведения об обнаруженном токене выпустившему его сервису, но не требует от него отзыва. Защита при отправке кода тоже не отключает секреты, опубликованные раньше.

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

Марта Баринова
Редактор новостного отдела, специализирующийся на аналитике программного обеспечения, стриминговых сервисов и изменениях в политике глобальных технологических платформ. В своих материалах Марта подробно освещает обновления Windows, функциональные изменения в Spotify и Google, а также исследует вопросы антимонопольного регулирования магазинов приложений. Автор более 140 публикаций, помогающих пользователям ориентироваться в быстро меняющемся ландшафте цифровых сервисов.

    Оставить комментарий