TeamPCP украли CI-ключи и атаковали GitHub Actions компании Checkmarx

Примерно 19 марта 2026 года, спустя четыре дня после взлома сканера уязвимостей Trivy от Aqua Security, исследователи из Sysdig и Wiz обнаружили, что облачная киберпреступная группировка TeamPCP добралась до рабочих процессов GitHub Actions компании Checkmarx. Checkmarx занимается безопасностью цепочек поставок программного обеспечения, что придаёт взлому особую иронию.
TeamPCP украли CI-ключи и атаковали GitHub Actions компании Checkmarx
Изображение носит иллюстративный характер

Механика атаки оказалась каскадной. TeamPCP воспользовались учётными данными, украденными ещё во время компрометации Trivy (инцидент получил идентификатор CVE-2026-33634 с критическим баллом CVSS 9.4). Конкретно был скомпрометирован сервисный аккаунт cx-plugins-releases, через который злоумышленники получили доступ к двум GitHub Actions: checkmarx/ast-github-action и checkmarx/kics-github-action. Метод заражения — принудительная перезапись тегов (force-push) на вредоносные коммиты. Тег выглядит как прежний, но указывает уже на отравленный код.
Исследователи Рами Маккарти, Джеймс Хогом и Бенджамин Рид из компании Wiz выяснили, что атака затронула и расширения на платформе Open VSX. Были троянизированы расширения ast-results (версия 2.53.0) и cx-dev-assist (версия 1.7.0). При этом версии тех же расширений в VS Code Marketplace остались чистыми — атакующие работали избирательно.
Вредонос, который исследователи назвали «TeamPCP Cloud Stealer», доставлялся через скрипт setup.sh, распаковывающий зашифрованный архив tpcp.tar.gz. Для запуска использовались различные менеджеры JavaScript-пакетов: npx, bunx, pnpx, yarn dlx. Список собираемых данных огромен: SSH-ключи, учётные данные Git, ключи Amazon Web Services, Google Cloud, Microsoft Azure, конфигурации Kubernetes и Docker, файлы .env, данные баз данных, VPN-конфигурации, настройки CI/CD-пайплайнов, криптовалютные кошельки, URL-адреса вебхуков Slack и Discord. Отдельно скрипт извлекал персональные токены доступа GitHub (PAT) прямо из памяти CI-раннера.
Украденные данные отправлялись на домен checkmarx[.]zone (IP-адрес 83.142.209[.]11, порт 443), а для расширений VSX использовался путь checkmarx[.]zone/vsx. Название домена — не случайность. Это целенаправленный тайпсквоттинг: в логах CI/CD-систем curl-запросы к такому адресу легко спутать с легитимным трафиком от самой Checkmarx. Хитрость простая, но в потоке тысяч строк лога она работает.
На случай если связь с сервером оборвётся, вредонос предусматривал запасной механизм. Используя переменную GITHUB_TOKEN жертвы, он создавал промежуточные репозитории для хранения украденных данных. В инциденте с Checkmarx такой репозиторий назывался docs-tpcp, в случае Trivy — tpcp-docs.
На системах, не связанных с CI (то есть обычных рабочих станциях или серверах), скрипт закреплялся через systemd user service. Далее он опрашивал адрес https://checkmarx[.]zone/raw каждые 50 минут, ожидая команд. Любопытная деталь: если ответ сервера содержал слово «youtube», скрипт немедленно прекращал работу. По состоянию на момент анализа эта ссылка вела на клип Queen «The Show Must Go On». То ли своеобразный kill switch, то ли чёрный юмор от авторов.
Checkmarx заявила, что ей «неизвестно о каком-либо воздействии на данные клиентов или production-окружения». Компания идентифицировала проблему и выпустила новые версии затронутых расширений VS Code, рекомендовав клиентам продолжать стандартные процедуры реагирования на инциденты, усилить мониторинг и проверить среды разработки и сборки.
Рекомендации по обнаружению и защите достаточно конкретны. Стоит проверить логи GitHub Actions раннеров на упоминания tpcp.tar.gz, scan.aquasecurity[.]org или checkmarx[.]zone. Нужно поискать в организациях GitHub репозитории с именами tpcp-docs и docs-tpcp. GitHub Actions необходимо привязывать к полным SHA-хешам коммитов, а не к тегам версий — теги можно перезаписать, хеши нет. Исходящие сетевые соединения с CI-раннеров нужно мониторить на предмет обращений к подозрительным доменам. Доступ к Instance М⃰data Service (IMDS) из контейнеров CI-раннеров лучше ограничить, перейдя на IMDSv2.
У TeamPCP есть и другая активность помимо атак на цепочки поставок. Группировка нацеливается на кластеры Kubernetes, используя вредоносный shell-скрипт, который полностью вайпит машины. Триггером служит обнаружение систем, настроенных на иранский часовой пояс и локаль. Зачем именно такой критерий — пока неясно, но это ещё один штрих к портрету группировки, действующей методично и с размахом.


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

19644Как хакеры маскируются под IRS и захватывают корпоративные сети 19643Зачем учёным понадобились алмазы шестиугольной формы? 19642Как охотники за киберпреступниками ловят мошенников на миллиарды долларов? 19641OpenAI залатала две дыры: как через ChatGPT и Codex утекали данные пользователей 19640Утечки секретов ускоряются быстрее, чем индустрия успевает их затыкать 19639Метавселенная всё-таки умерла? 19638Почему люди до сих пор верят, что пришельцы создали древние цивилизации? 19637Растения у Колорадо крадут подземные воды, усугубляя засуху в и без того истощённом... 19636Уязвимость ShadowPrompt: как любой сайт мог молча захватить браузер через расширение... 19635Может ли война с Ираном оставить голодными 363 миллиона человек по всему миру? 19634Зачем роботам терять конечности, если ИИ научился собирать их заново за секунды? 19633Шахматы по телеграфу — первый в истории киберспорт? 19632Почему фреймворки LangChain и LangGraph ставят под удар файлы, секреты и базы данных... 19631Почему кошки приручили нас, а не мы их? 19630Что нашли дайверы на дне эгейского моря в бриге лорда Элгина?
Ссылка