Как фальшивые GitHub Actions крадут секреты из тысяч репозиториев?

Кампания GhostAction превратила доверие к аккаунтам разработчиков в инструмент массовой кражи данных. Злоумышленники получили доступ как минимум к двум заметным аккаунтам мейнтейнеров, внедрили вредоносный GitHub Actions workflow в сотни репозиториев, а затем с помощью более чем 500 учетных записей распространили тот же код в десятки тысяч проектов. Атакующих интересуют секреты GitHub Actions, ключи облачных платформ и ИИ-сервисов, токены пакетных реестров, учетные данные исходных систем и доступы к инфраструктуре. В отдельных случаях скомпрометированные репозитории могли использоваться для майнинга криптовалюты.
Как фальшивые GitHub Actions крадут секреты из тысяч репозиториев?
Изображение носит иллюстративный характер

Первым из известных аккаунтов стал профиль Takashi Kitao, связанный с проектом pyxel, у которого около 18 400 звёзд GitHub. По данным StepSecurity, злоумышленники начали действовать с аккаунта Kitao в 13:20 UTC и отправили вредоносный workflow в 27 репозиториев. Второй целью оказался Henry Wu, владелец аккаунта henrywoo и первоначальный автор athenadriver компании Uber. С его аккаунта тот же workflow попал в 318 репозиториев за 16 минут, с 21:10 до 21:26 UTC. Эта операция началась примерно через восемь часов после атаки с аккаунтом Takashi Kitao. Вместе два профиля использовали для атаки как минимум 345 репозиториев.
По сведениям Socket, опубликованным 9 октября 2026 года, более 500 аккаунтов GitHub уже закоммитили вредоносный workflow, а зараженные файлы появились в десятках тысяч репозиториев. Новая волна активности наблюдалась с 7 октября 2026 года. Сама операция GhostAction стала известна ещё в сентябре 2025 года. В ходе ранее зафиксированной части кампании пострадали 817 репозиториев и 327 пользователей GitHub], а число похищенных секретов достигло 3325. Среди них были токены PyPI, npm и DockerHub.
Для маскировки использовались названия, похожие на инструменты проверки безопасности: Security Audit с файлом security-audit.yml и GitHub Actions Security с файлом github_actions_security.yml. Их помещали в ветку репозитория по умолчанию и коммитили от имени настоящего владельца или мейнтейнера. Из-за этого файл мог выглядеть как обычная защитная автоматизация, особенно в проектах, где workflow регулярно проверяют код и зависимости.
Запуск вредоносной задачи возможен вручную через workflow_dispatch, но опаснее неограниченное событие push. Оно срабатывает при отправке изменений в любую ветку или тег, поэтому обычный коммит способен активировать сбор данных. Workflow использует fetch-depth: 0: GitHub Actions загружает всю историю Git, а не только последний коммит. Удалённый из текущих файлов пароль или ключ при этом может сохраниться в старых версиях и попасть в поле зрения злоумышленников.
Внутри задачи с названием Audit выполняются четыре связанные операции: проверка файлов workflow, поиск секретов в рабочем дереве, просмотр полной истории Git и отправка найденного содержимого. Сценарий ищет данные в конфигурациях, исходном коде и старых коммитах. Затем встроенная нагрузка использует curl и передаёт результаты на сервер 193.32.204[.]199. Передача идёт по обычному HTTP, без шифрования HTTPS. Точка указана в отчётах с обозначением [.], чтобы не создавать прямую ссылку и не провоцировать случайное обращение к адресу.
Всего workflow распознаёт 2577 типов секретов. В перечень входят ключи доступа AWS, учетные данные Azure и Google Cloud, ключи Firebase и Cloudflare, FTP- и database-доступы. Проверяются учетные данные DockerHub, GitHub Container Registry (GHCR), npm и PyPI, токены GitHub и GitLab, приватные SSH-ключи, а также ключи Anthropic, OpenAI, OpenRouter и других ИИ-провайдеров. Под ударом оказываются токены ботов Telegram, Slack и Discord, именованные секреты GitHub Actions, CI/CD-учетные данные и прочие параметры автоматических сборок и развертываний. Отдельный поиск в самих workflow-файлах позволяет атакующим проверять, не оставлены ли ключи прямо в конфигурации CI.
Риск не ограничивается исходным репозиторием. В пространстве henrywoo насчитывается 279 форков, и, согласно опубликованным данным, в каждом присутствует вредоносный файл. Если GitHub Actions включён, последующий push в такой форк может снова запустить сборщик секретов. Заражение способно перейти в новые форки, зеркала и downstream-репозитории при создании копии, синхронизации с upstream или продолжении выполнения Actions после получения изменённого workflow. Частные репозитории особенно опасны: в них чаще хранятся рабочие ключи, а полный Git-история позволяет извлекать данные, которые владельцы давно удалили из актуальных файлов.
Workflow возвращает атакующим идентификатор репозитория даже в том случае, если секреты не найдены. Так злоумышленники проверяют доступность среды выполнения и формируют карту пригодных для запуска репозиториев. Такой механизм даёт им отдельный перечень активных и доступных окружений: репозиторий может оказаться полезным как вычислительная площадка или точка дальнейшего проникновения, даже если в нём нет подходящих ключей. Кража учетных данных здесь совмещена с разведкой GitHub-инфраструктуры.
30 августа 2026 года был зафиксирован ещё один сценарий использования доступа. В репозитории kuafuai/DevOpsGPT атакующие изменили проект и встроили майнер XMRig в Docker-образ. XMRig часто применяют для добычи криптовалют, включая ориентированный на приватность Monero. При этом на момент публикации исследователи не обнаружили вредоносных релизов пакетов, опубликованных с помощью украденных учетных данных. Сам факт отсутствия таких релизов не отменяет необходимости проверять npm, PyPI, DockerHub и другие реестры.
Искать подозрительные workflow следует начиная с 31 августа 2026 года. Наличие security-audit.yml или github_actions_security.yml нужно рассматривать как возможный признак компрометации. Сначала следует отозвать токен или другую учетную запись GitHub, затем заменить все потенциально доступные облачные ключи, токены реестров, API-ключи, CI/CD-секреты, SSH-ключи, пароли баз данных и токены коммуникационных сервисов. Вредоносный файл требуется удалить из ветки по умолчанию, остальных веток, тегов и других ссылок репозитория.
Проверка должна охватывать публичные и частные форки, зеркала и синхронизированные копии, прежде всего 279 форков в пространстве henrywoo. В истории Git нужно искать старые ключи, потому что fetch-depth: 0 открывает workflow полный набор коммитов. В журналах GitHub Actions стоит проверить неожиданные запуски, исходящие соединения и команды curl. Отдельно следует осмотреть Docker-образы и конфигурации сборки на наличие посторонних изменений, включая XMRig, а также сверить историю публикаций пакетов и контейнеров с журналами владельцев.


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

20820Почему CISA потребовала закрыть пять старых уязвимостей до 11 октября 2026 года? 20819AhsayCBS превратили в прикрытие для майнинга XMRig 20818Кто стоит за взломом портала FBI и почему аресты продолжаются? 20816Как фальшивые GitHub Actions крадут секреты из тысяч репозиториев? 20815Три удалённых взлома Pixel 10 на Pwn2Own Ireland 20814Как Anthropic собирается искать уязвимости в открытом коде? 20813Claude лишили живого интернета после серии несанкционированных действий 20812Почему безопасность отстаёт от скорости искусственного интеллекта? 20811Как AnyPwn получает root-доступ в AnyDesk до подтверждения подключения? 20810Критическая уязвимость LMCache открывает удалённое выполнение кода 20809SonicWall устраняет критические уязвимости в SMA1000 20808Что действительно доказывает автономный пентест и где он останавливается? 20807Киберриск переместился внутрь рабочего процесса 20806Как китайская хакерская сеть превратила украденную почту в доступный другим сервис?
Ссылка