Как утечка токена SpotBugs привела к масштабовой атаке GitHub?

Атака цепочки поставок началась с утечки персонального токена доступа (PAT) из проекта SpotBugs, инструмента для статического анализа кода, и быстро переросла в угрозу для пользователей GitHub Action "tj-actions/changed-files" и компании Coinbase. Проблема заключалась в том, что компрометация токена позволила злоумышленникам получить доступ ко многим репозиториям и инструментам.
Как утечка токена SpotBugs привела к масштабовой атаке GitHub?
Изображение носит иллюстративный характер

Первые шаги атаки осуществлялись путем эксплуатации workflow GitHub Actions в проекте SpotBugs. Злоумышленники перемещались между репозиториями SpotBugs до тех пор, пока не получили доступ к репозиторию reviewdog, что подтверждено данными исследования Palo Alto Networks Unit 42.

Ским токен успешно использовался для получения доступа к репозиториям "spotbugs/spotbugs" и "reviewdog/action-setup". Злоумышленники подменили содержимое workflow, после чего зависимость инструмента "tj-actions/changed-files" была заражена через "tj-actions/eslint-changed-files". Таким образом, корректная работа цепочки поставок значительно нарушилась.

Временные метки играют ключевую роль в понимании атаки. 28 ноября 2024 года в 09:45:13 UTC мейнтейнер SpotBugs изменил один из workflow в репозитории "spotbugs/sonar-findbugs", воспользовавшись персональным токеном из-за проблем с CI/CD. Затем 6 декабря 2024 года в 02:39:00 UTC злоумышленник отправил вредоносный pull request, используя триггер pull_request_target, который позволил рабочему процессу с форков получить доступ к секретам.

11 марта 2025 года под именем "jurkaofavak" злоумышленнику было предоставлено приглашение для доступа к репозиторию "spotbugs/spotbugs" от мейнтейнера проекта, а в последующие дни атака переросла в атаку на Coinbase. Кроме того, обнаружена активность другого имени – "randolzfow", под которым был создан форк "spotbugs/sonar-findbugs" и инициирован вредоносный pull request.

Злоумышленники получили возможность использовать пат для предоставления себе прав на запись, создания веток и доступа к секретам CI. Атака базировалась на использовании уязвимости pull_request_target, что вызвало эффект «отравления пайплайна» (PPE) и позволило вывести секретные данные в логи, тем самым усугубив ситуацию.

Мейнтейнер проекта подтвердил, что тот же PAT, использованный в workflow, был применен для приглашения пользователя "jurkaofavak". После обнаружения нарушений все токены были немедленно заменены, что помогло прекратить дальнейший доступ злоумышленников. Palo Alto Networks Unit 42 ведет детальное расследование, раскрывая временную последовательность, используемые уязвимости и методы атаки.

Наблюдается значительный интервал в три месяца между утечкой токена в конце ноября – начале декабря 2024 года и моментом активного использования в марте 2025 года. Возникают вопросы относительно того, зачем злоумышленники «выводили секреты в логи» после столь длительного наблюдения, а также почему именно проекты, зависящие от "tj-actions/changed-files", стали мишенью для атаки, в том числе с целью воздействия на высококлассную организацию, такую как Coinbase.


Новое на сайте

20900Искусственный интеллект стирает следы фишинга 20899Что может произойти, если злоумышленник доберётся до секретов Railway? 20898Ошибка Brotli открыла путь к RCE в Node.js, Bun и других системах 20897Миллионы компьютеров получили обновление, выключившее опасный Popcorn Time Updater 20896Как Bronze Sandcastle прячет бэкдоры в доверенных приложениях? 20895Вредоносный релиз LiteLLM мог раскрыть токены GitHub 20894Шесть уязвимостей под угрозой эксплуатации: CISA установила сроки обновления 20893Ошибка с QPACK: как небольшой запрос перегружает HTTP/3-сервер 20892Кто получил PHP2Shell до официального раскрытия уязвимостей? 20891Как ошибка в FortiSIEM открывает путь к удалённому запуску кода? 20890Как подключение Gmail к Gemini может повлиять на рекламу Google 20889Как ARTEX ускорил атаку через ConnectWise? 20888Кто следит за ИИ-агентом с доступом к корпоративным паролям? 20887Почему eMudhra уходит с мирового рынка SSL/TLS-сертификатов? 20886PHP2Shell: как пережить часы до исправления?
Ссылка