API-ключи и другие секреты всё ещё лежат в открытом доступе прямо в коде сайтов. Исследователи из Stanford University, UC Davis и TU Delft проверили 10 млн веб-страниц и нашли 1 748 валидных учётных данных на почти 10 000 страниц.

Речь не про «старые токены из песочницы». По описанию авторов, часть находок открывала доступ к продакшн-сервисам: от облака и платежей до инструментов разработки.

Какие доступы утекали и почему это опаснее паролей

Найденные креды покрывают несколько типов сервисов, которые компании часто подключают к реальным системам. В выборке встречались ключи к облачным платформам, платежным провайдерам и девтулзам, которые используют в боевой среде.

Продолжение после рекламы

Нуруллах Демир, аспирант Stanford, описал картину прямо: «What we found were highly sensitive API credentials left publicly exposed on public webpages» — «Мы нашли высокочувствительные API-учётные данные, оставленные в открытом доступе на публичных веб-страницах».

И тут важный нюанс: API-учётные данные отличаются от логина и пароля. Они работают как токены доступа для приложений. Такой ключ может давать автоматический и постоянный доступ к внешнему сервису, часто без дополнительных проверок. Если ключу выдали широкие права, он открывает путь к базам данных, хранилищам и даже инфраструктуре управления ключами.

  • Облако: доступ к внутренним сервисам, данным, хранилищам
  • Платежи: операции и интеграции с платежными сервисами
  • Инструменты разработки: доступ к репозиториям и пайплайнам

84% утечек пришлись на JavaScript и сборки Webpack

Изображение к статье: Исследователи нашли 1 748 рабочих API-ключей в коде сайтов

Главный «разносчик» секретов — клиентский код. Около 84% подтверждённых учётных данных исследователи нашли в JavaScript-ресурсах, которые браузер скачивает для работы сайта.

Часто это были бандлы, собранные инструментами вроде Webpack. Сборка может утащить секреты в итоговый файл, если конфиги и переменные окружения настроили неаккуратно. В итоге ключ, который разработчик считал внутренним, уезжает к каждому посетителю вместе со скриптами.

Но JavaScript не единственный канал. Креды встречались в HTML и JSON. Некоторые попадались даже в CSS. Это намекает на системную проблему в подготовке и деплое ассетов, а не на одну конкретную ошибку «на этапе X».

Утечки жили месяцами и годами, но после уведомлений стало лучше

Отдельно неприятна «живучесть» таких утечек. По данным авторов, некоторые ключи оставались доступными несколько месяцев или даже несколько лет. Разработчики часто не знали о проблеме, пока им не писали исследователи.

Когда команда начала процесс раскрытия и уведомлений, число доступных наружу секретов снизилось примерно вдвое за две недели. Это хороший сигнал, но он же показывает, что без внешнего пинка многие утечки висят бесконечно долго.

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

Препринт исследования опубликован на arXiv, и в нём зафиксирована итоговая статистика: 10 млн проанализированных страниц, 1 748 валидных учётных данных и почти 10 000 страниц с экспозицией.

Продолжение после рекламы

Рейтинг: 0 / 5. Оценок: 0

Рекомендуем почитать

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

Перед оставлением комментария, пожалуйста, ознакомьтесь с правилами комментирования.