Компания Aqua Security опубликовала результаты исследования наличия конфиденциальных данных в сборочных логах, публично доступных в системе непрерывной интеграции
Travis CI. Исследователи нашли способ извлечения 770 млн логов различных проектов. При тестовой загрузке 8 млн логов в полученных данных было выявлено около 73 тысяч токенов, учётных данных и ключей доступа, связанных с различными популярными сервисами, включая GitHub, AWS и Docker Hub. Выявленная информация позволяет скомпрометировать инфраструктуру многих открытых проектов, например, похожая утечка недавно привела к взлому инфраструктуры проекта NPM.
Утечка связана с возможностью получения доступа к логам пользователей бесплатного сервиса Travis CI через штатный API (например, сборочный лог можно загрузить через URL вида “https://api.travis-ci.org/v3/job/5248126/log.txt”, где число 5248126 – идентификатор лога). Для определения диапазона возможных идентификаторов логов был использован ещё один API (“https://api.travis-ci.org/logs/6976822”), обеспечивающий перенаправление на загрузку лога по порядковому номеру. Методом перебора в ходе исследования удалось без аутентификации определить около 770 млн логов, созданных с 2013 по май 2022 года в ходе сборки проектов, подпадающих под бесплатный тарифный план.
Анализ тестовой выборки показал, что во многих случаях в логе в открытом виде отражаются параметры доступа к репозиториям, API и хранилищам, достаточные для обращения к приватным репозиториям, внесения изменений в код или подключения к облачным окружениям, используемым в инфраструктуре. Например, в логах были найдены токены для подключения к репозиториям в GitHub, пароли для размещения сборок в Docker Hub, ключи для доступа к окружениям Amazon Web Services (AWS), параметры подключения к СУБД MySQL и PostgreSQL.
Примечательно, что похожие утечки через API фиксировались исследователями в 2015 и 2019 годах. После прошлых инцидентов компания Travis добавила определённые ограничения для затруднения массовой загрузки данных и урезала доступ к API, но данные ограничения удалось обойти. Кроме того, компанией Travis была предпринята попытка чистки конфиденциальных данных в логах, но данные были очищены лишь частично.
Утечка главным образом затронула пользователей открытых проектов, которым Travis предоставляет бесплатный доступ к своему сервису непрерывной интеграции. В ходе проверки, проведённой некоторыми сервис-провайдерами, было подтверждено, что около половины из выделенных из логов токенов и ключей остаются рабочими. Всем пользователям бесплатного сервиса Travis CI рекомендуется срочно поменять ключи доступа, а также настроить удаление сборочных логов.