Новости безопасности и искусственного интеллекта

Утёкшие учётные данные и ключи API · Автор FireAI Security & Research Team · Опубликовано

Truffle Security нашла в публичных репозиториях GitHub 543 699 учётных данных, которые всё ещё проходят аутентификацию

Truffle Security проверила учётные данные из 224 миллионов публичных репозиториев и сообщает о 543 699 действующих, при медианном сроке раскрытия 784 дня. Что это значит для разработчиков на Mac.

A key icon beside the FireAI activity mascot, illustrating Truffle Security finding 543,699 credentials in public GitHub repositories that still authenticate.

Truffle Security сообщает, что нашла в публичных репозиториях GitHub 543 699 уникальных учётных данных, которые по-прежнему проходили аутентификацию при проверке 27 и 28 июля 2026 года [1]. BleepingComputer сообщил о результатах 30 сентября 2026 года [2]. В подсчёт вошли облачные ключи, строки подключения к базам данных и ключи ИИ-сервисов [1].

Предыстория

GitHub включил push protection для всех пользователей в феврале 2024 года, но эта защита охватывает не все форматы учётных данных [1] [2]. Анализ Truffle Security ставит иной вопрос, чем сканирование новых коммитов: какие учётные данные в существующем публичном корпусе всё ещё действуют и как долго они оставались публичными [1].

Результаты

Корпус составили 224 553 295 репозиториев и 58 467 468 698 файлов из набора данных The Stack v3. Truffle Security проверила каждого кандидата на сервисе, который выдал учётные данные, и учитывала их по значению, поэтому один ключ, найденный в 62 репозиториях, считается один раз [1]. Обход охватывал только ветку по умолчанию и завершился 7 августа 2025 года [1].

Медианный возраст действующих учётных данных в публичном репозитории составил 784 дня, а 90-й процентиль — 6,3 года; самые старые были закоммичены в 2009 году и всё ещё работают [1]. Среди действующих учётных данных сервисных аккаунтов Google Cloud было 69 041, ключей Google API — 33 343, ключей Gemini — 31 374, а 51 067 строк подключения к MongoDB относились к категории, которую push protection не блокирует [1].

Выживаемость различалась по поставщикам. Из 101 886 закоммиченных токенов npm действовал 1, из 73 048 закоммиченных токенов GitHub — 260; из строк подключения к Postgres действовали 11 465 из 12 985, то есть 88 из каждых 100 [1]. Вывод Truffle Security состоит в том, что их различает наличие у поставщика конвейера, который берёт утёкший токен и аннулирует его [1].

О push protection в отчёте говорится, что чуть менее 200 000 действующих учётных данных были отправлены уже после её включения по умолчанию, что 51,8 из каждых 100 действующих учётных данных относятся к категориям, которые защита не распознаёт, и что защищённая группа сократилась на 53 из 100, а незащищённая — на 7 из 100 [1] [2].

Выводы для пользователей Mac

Данные описывают репозитории, а не компьютеры, и источники не говорят, какими операционными системами пользовались разработчики. Для пользователя Mac важны сами учётные данные: ключ, лежащий в публичном репозитории, можно использовать откуда угодно, независимо от устройства, на котором он был создан. Число ключей Gemini — пример ключей ИИ-сервисов, оказавшихся в тех же данных, что и облачные ключи [1].

Методология также ограничивает то, что показывают цифры. Всё, что было удалено принудительной отправкой, перенесено в ветку не по умолчанию или закоммичено и отменено до августа 2025 года, методу не видно, поэтому цифра — это число найденного, а не всего раскрытого [1].

Рекомендации

  1. Считайте закоммиченные учётные данные скомпрометированными с момента коммита, отметило их что-нибудь или нет, сначала меняйте их, а историю очищайте потом, как советует отчёт [1].
  2. Меняйте любой ключ, который когда-либо был закоммичен, в том числе в старых ветках и в репозиториях, позднее ставших приватными, поскольку медианный возраст действующих учётных данных в публичном доступе составлял 784 дня [1].
  3. Отдавайте предпочтение учётным данным с автоматическим истечением срока; в материале BleepingComputer автоматическое истечение срока действующих секретов названо среди мер [2].
  4. Храните ключи в хранилище секретов или в переменных окружения вне репозитория и проверяйте историю репозитория, прежде чем делать его публичным.

Какое отношение это имеет к FireAI

FireAI — межсетевой экран для одного Mac. Он определяет приложение по подписи кода или пути и применяет правила для приложений к соединениям, которые это приложение открывает, а страница «Активность» перечисляет, какие приложения выходили в сеть и куда. Это помогает пользователю увидеть, какие программы на Mac обращаются к облачному или ИИ-сервису, и написать правило, чтобы доступ к нему имело только нужное приложение.

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

Ограничения

Цифры получены по собственной методологии и набору данных Truffle Security. Два источника описывают распределение по возрасту разными словами: BleepingComputer пишет, что около десятой части работающих учётных данных старше 6,3 года, а Truffle Security — что 90-й процентиль равен 6,3 года [1] [2]. Дата коммита файла — единственные часы на файл, которые даёт корпус, поэтому возраст приблизителен [1].

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

Попробуйте FireAI от HisnLabs бесплатно 17 дней.

Источники

  1. Truffle Security: 543,699 credentials in public GitHub repos still work, and nobody revoked them
  2. BleepingComputer, 30 September 2026: Over 543,000 valid credentials exposed in public GitHub repositories