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

Исследователи Truffle Security выявили в публичных репозиториях GitHub 543 699 уникальных учётных данных, которые оставались действующими по состоянию на июль 2026 года. Медианный срок нахождения такого секрета в публичной основной ветке составил 784 дня, а самый старый работоспособный секрет был добавлен в репозиторий ещё в 2009 году.
Секреты остаются доступными годами
Под учётными данными в исследовании понимаются секреты, опубликованные в открытом коде и всё ещё пригодные для использования. Truffle Security отмечает, что почти 200 тысяч из обнаруженных действующих секретов были отправлены в GitHub уже после того, как защита Push Protection стала включаться по умолчанию.
Эта функция GitHub предназначена для предотвращения публикации распознаваемых секретов при отправке изменений. Однако результаты исследования показывают, что защитный механизм не исключает появления рабочих ключей и токенов в открытых проектах.
Риск определяется не только фактом публикации. Пока ключ, токен или иные данные доступа остаются действующими, их можно использовать для доступа к связанным сервисам. Длительное присутствие секретов в основной ветке означает, что проблему нельзя сводить только к проверке новых коммитов.
Проверять нужно и историю кода
Инциденты с цепочками поставки и открытыми зависимостями уже показывали, что цепочки поставки и открытые зависимости помогает увидеть, как обычные компоненты разработки могут стать частью атаки. В случае с утёкшими секретами аналогичный принцип действует для репозиториев: опубликованные артефакты требуют контроля не только в текущем состоянии, но и в накопленной истории.
Практическая задача для организаций — установить, какие ключи, токены и учётные данные используются командами и где они хранятся. Если секрет попал в публичный репозиторий, его удаление из файла не гарантирует устранения риска: необходима замена или отзыв скомпрометированных данных доступа.
Что означает исследование для команд
Автоматическую проверку при отправке кода стоит дополнять регулярным поиском секретов в существующих репозиториях и их истории. Отдельного внимания требуют публичные зеркала, тестовые проекты и основные ветки, где данные могут сохраняться длительное время.
Главный практический вывод прост: секреты следует считать скомпрометированными сразу после их публикации и оперативно отзывать. Контроль жизненного цикла учётных данных вместе со сканированием кода помогает уменьшить риск того, что старый коммит останется рабочей точкой доступа спустя годы.

