Вторая крупная атака на популярный инструмент безопасности для разработчиков вновь демонстрирует уязвимость цепочек поставок открытого программного обеспечения. На этот раз целью группы, известной как TeamPCP, стал сканер безопасности инфраструктуры как кода KICS, разрабатываемый компанией Checkmarx. Злоумышленникам удалось на несколько часов подменить официальный GitHub Action проекта вредоносным кодом, предназначенным для кражи учетных данных и закрепления в системе, что потенциально затронуло как публичные, так и частные репозитории, использующие этот сканер.
Описание
Инцидент произошел 23 марта 2026 года в промежуток между 12:58 и 16:50 по всемирному координированному времени (UTC). В течение этого периода пользователи, которые в своих рабочих процессах (workflows) использовали GitHub Action "checkmarx/kics-github-action" с привязкой к тегам (tag), а не к фиксированному хешу коммита (SHA), автоматически получали скомпрометированную версию. Репозиторий с действием был отключен в 16:50 UTC после того, как один из пользователей создал issue, уведомив сопроводителей о проблеме. Позже, около 19:24 UTC, репозиторий был восстановлен, а сопровождающие заявили, что проблема решена.
Однако масштаб атаки оказался шире. Как сообщили эксперты компании Wiz, помимо GitHub Action, были скомпрометированы два расширения для OpenVSX (открытого аналога магазина расширений VS Code): "cx-dev-assist" версии 1.7.0 и "ast-results" версии 2.53.0. Расширения в официальном магазине Visual Studio Code Marketplace затронуты не были. Аналитики также предполагают, что под удар мог попасть еще один инструмент - "ast-github-action". Эта цепочка атак стала уже второй для TeamPCP за пять дней, ранее аналогичным образом была атакована популярная утилита для сканирования уязвимостей Trivy.
Технический анализ показывает, что атака на KICS была проведена по схожему с Trivy сценарию. Злоумышленники скомпрометировали служебную учетную запись GitHub "cx-plugins-releases", что позволило им обновить все 35 тегов в репозитории, перенаправив их на коммиты в форке, содержащие вредоносный скрипт "setup.sh". Полезная нагрузка, доставляемая этим скриптом, функционально похожа на версию из атаки на Trivy, но содержит несколько значимых усовершенствований. Во-первых, для связи с командным сервером (C2) используется новый домен "checkmarx.zone". Во-вторых, в качестве резервного механизма на случай недоступности C2 вредонос создает в организации жертвы репозиторий с именем "docs-tpcp" для эксфильтрации данных. В-третьих, добавлен код, ориентированный на обеспечение постоянного присутствия в Kubernetes-средах, что указывает на адаптацию тактики под облачные инфраструктуры.
Расширения для OpenVSX содержали идентичную вредоносную логику. При их активации запускался скрипт, который проверял наличие у жертвы учетных данных облачных провайдеров. Если проверка проходила успешно, загружалась вторая стадия вредоноса - пакет "checkmarx-util-1.0.4.tgz". Этот пакет содержал комплексный сборщик учетных данных, способный работать с различными менеджерами пакетов JavaScript (npx, bunx и др.). Похищенные данные шифровались с использованием RSA-ключа, уже известного по предыдущим операциям TeamPCP, и отправлялись на сервер злоумышленников. На системах, не являющихся CI-серверами, вредонос также устанавливал службу systemd для пользователя, которая каждые 50 минут опрашивала C2 на предмет получения дополнительных команд, имея встроенный механизм самоуничтожения.
Последствия этой атаки носят двойственный характер. С одной стороны, прямое воздействие ограничено четырьмя часами активности вредоносного кода в основном репозитории и конкретными версиями расширений. С другой стороны, сам факт второй успешной атаки на инструмент класса DevSecOps от одной и той же группы в столь сжатые сроки свидетельствует о выработке злоумышленниками эффективной тактики, нацеленной на уязвимые звенья в процессах разработки. Компрометация инструментов безопасности, призванных повышать защищенность кода и инфраструктуры, подрывает базовое доверие к таким решениям и может привести к каскадным инцидентам, особенно если учетные данные, похищенные у разработчиков, предоставляли доступ к производственным средам.
Для специалистов по информационной безопасности, чьи команды используют KICS, критически важно провести аудит. Необходимо проверить все рабочие процессы, ссылающиеся на "kics-github-action", и убедиться, что они используют фиксированный SHA коммита, а не плавающий тег. Для workflows, которые использовали теги в период с 12:58 до 16:50 UTC 23 марта, следует тщательно изучить логи на предмет аномальной активности. Также необходимо провести поиск по своим организациям GitHub на наличие репозиториев с именем "docs-tpcp", создание которых является индикатором успешной работы вредоноса. Данный инцидент вновь подчеркивает, что безопасность цепочек поставок ПО требует не только сканирования зависимостей, но и строгих практик управления доступом к служебным аккаунтам, подписывания релизов и привязки к неизменяемым идентификаторам сборок.
Индикаторы компрометации
SHA256
- 0d66d8c7e02574ff0d3443de0585af19c903d12466d88573ed82ec788655975c
- 527f795a201a6bc114394c4cfd1c74dce97381989f51a4661aafbc93a4439e90
- 65bd72fcddaf938cefdf55b3323ad29f649a65d4ddd6aea09afa974dfc7f105d
- 744c9d61b66bcd2bb5474d9afeee6c00bb7e0cd32535781da188b80eb59383e0