GitHub расследует серию атак, в ходе которых злоумышленникам удалось организовать майнинг криптовалюты в облачном инфраструктуре GitHub, используя для запуска своего кода механизм GitHub Actions. Первые попытки использования GitHub Actions для майнинга ноябрём прошлого года.
GitHub Actions даёт возможность разработчикам кода прикреплять обработчики для автоматизации различных операций в GitHub. Например, при помощи GitHub Actions можно выполнить определённые проверки и тесты при совершении коммитов или автоматизировать обработку новых Issues. Для запуска майнинга атакующие создают форк репозитория, в котором используется GitHub Actions, добавляют в свою копию новый GitHub Actions и отправляют в оригинальный репозиторий pull-запрос, предлагающий замену существующих обработчиков GitHub Actions на новый обработчик “.github/workflows/ci.yml”.
Вредоносный pull-запрос порождает многократные попытки запуска обработчика GitHub Actions, который после 72 часов прерывается из-за таймаута, завершается сбоем и затем запускается вновь. Для атаки злоумышленнику достаточно лишь создать pull-запрос – обработчик запускается автоматически без какого-либо подтверждения или участия со стороны сопровождающих оригинального репозитория, которые лишь могут заменить подозрительную активность и остановить уже запущенные задания GitHub Actions.
В добавляемом атакующими обработчике ci.yml в параметре “run” [https://twitter.com/JustinPerdok/status/1377970934955573251 присутствует]] обфусицированный код в виде eval “$(echo ‘YXB0IHVwZGF0ZSAt…’ | base64 -d”, который при выполнении пытается загрузить и выполнить программу для майнинга. В первый вариантах атаки с разных репозиториев на GitHub и GitLab загружалась программа, названная npm.exe, но собранная в форме исполняемого ELF-файла для Alpine Linux (используется в образах Docker).
В более новых формах атаки загружается код типового майнера XMRig из официального репозитория проекта, который затем собирается с подстановкой адреса кошелька и серверов для отправки данных.