Злоумышленники крадут секреты через GitHub Actions
GhostAction, продолжающаяся кампания против цепочки поставок GitHub Actions. Злоумышленники взламывают аккаунты разработчиков и внедряют рабочие процессы, замаскированные под проверки безопасности. 8 октября 2026 года аккаунты, связанные с игровым движком Pyxel и драйвером Uber Athena, использовали для добавления такого рабочего процесса в 345 репозиториев в течение двух автоматизированных временных окон. Ранее в рамках кампании злоумышленники похитили более 3 000 секретов из 817 репозиториев.
Как злоумышленники внедряют рабочий процесс
Атака начинается с кражи учётных данных сопровождающего репозитория в GitHub. Вероятно, это персональный токен доступа, полученный из журналов стиллера или дампов учётных данных. Злоумышленник изучает рабочие процессы репозитория и ищет ссылки на секреты, например ${{ secrets.NAME }}. Затем он встраивает найденные имена секретов во вредоносный рабочий процесс и коммитит его непосредственно в ветку по умолчанию. События Push, в том числе коммит с внедрённым рабочим процессом, запускают его.
Классический вариант рабочего процесса отправляет настроенные секреты GitHub Actions на адрес 193.32.204.199 HTTP-запросом POST. Октябрьская версия также собирает полную историю Git. Рабочий процесс переключается на ветви и теги репозитория, а затем выполняет команду git log -p --all. Она позволяет восстановить учётные данные, удалённые из текущего дерева исходного кода.
Полезная нагрузка ищет в репозитории следующие данные:
- ключи доступа и секретные ключи AWS;
- токены GitHub и GitLab;
- ключи Google/Firebase;
- учётные данные Slack и SendGrid;
- API-ключи Anthropic, OpenAI и OpenRouter.
Кроме того, полезная нагрузка собирает контекстные данные, чтобы связать идентификаторы ключей доступа AWS с соответствующими секретными ключами. Запросы содержат маркеры, например ?c=monami для репозиториев с именованными секретами и ?c=new для результатов анализа истории.
Подтверждённая активность и меры защиты
Наблюдаемая активность подтверждает успешную эксфильтрацию данных из затронутых репозиториев. Во время одного запуска рабочий процесс получил все 13 веток и 20 тегов репозитория athenadriver и отправил данные на сервер злоумышленника. Рабочий процесс Pyxel вручную запускали несколько раз из скомпрометированной сессии, что указывает на многократный сбор данных.
По состоянию на 9 октября вредоносный рабочий процесс находился примерно в 378 репозиториях. В 182 из них был маркер извлечения истории, а в 88 использовались шаблоны с именованными секретами.
Авторы отчёта рекомендуют защитникам отозвать скомпрометированные учётные данные GitHub и обновить все учётные данные, когда-либо зафиксированные в любой ветке, включая токены публикации. Также рекомендуется:
- удалить вредоносный рабочий процесс из всех веток;
- проверить историю запусков рабочих процессов;
- проинспектировать форки;
- потребовать подтверждения перед выполнением рабочего процесса.
Защита веток и ограничение исходящего трафика CI также могут предотвратить несанкционированные изменения рабочих процессов и исходящую эксфильтрацию.
Отчет получен из сервиса CTT Report Hub. Права на отчет принадлежат его владельцу.
Ознакомиться подробнее с отчетом можно по ссылке.
Об этом также писали: socket.dev.



