TeamPCP атакует npm-червем через GitHub Actions и SLSA
TeamPCP атаковала npm supply chain через GitHub Actions: червь Mini Shai-Hulud распространял вредоносные пакеты с SLSA Build Level 3 аттестацией
Группировка TeamPCP провела сложную supply chain-атаку с самораспространением, используя червя Mini Shai-Hulud для компрометации легитимных пакетов npm, прежде всего в экосистеме TanStack. Инцидент выделяется тем, что злоумышленники задействовали перехваченные workflow в GitHub Actions и украденные OIDC tokens для публикации вредоносных версий пакетов, снабжённых действительными аттестациями происхождения SLSA Build Level 3.
По сути, это первый документально подтвержденный случай, когда червь в экосистеме npm распространяет вредоносное ПО, которое при этом выглядит легитимно аттестованным.
Как работала атака
Схема заражения строилась по многоэтапному сценарию. Сначала вредоносный payload размещался в ответвлении GitHub, затем внедрялся в npm-пакеты, после чего атакующие использовали CI/CD-pipeline для публикации скомпрометированных версий.
Червь проникал в конвейер разработки для кражи учетных данных, а затем автономно распространялся на других сопровождающих, публикуя заражённые версии пакетов. Такая модель делает атаку не просто точечной компрометацией, а механизмом самораспространения внутри доверенной цепочки поставок.
Что делал вредоносный payload
Размер вредоносной нагрузки составлял около 2,3 МБ. Она напрямую читала память процесса GitHub Actions Runner, чтобы извлекать секреты и конфиденциальные данные из различных сервисов.
Отдельное внимание злоумышленники уделили широте охвата. Payload был нацелен более чем на 100 путей к файлам в облачных провайдерах, cryptowallets и платформах обмена сообщениями. Кроме того, он устанавливал механизмы закрепления в инструментах разработчика, включая Claude Code и VS Code.
В состав вредоносной функциональности входили:
- кража секретов из исполнителя GitHub Actions;
- таргетированное извлечение учетных данных с облачных вычислительных инстансов и машин разработчиков;
- вторичный шифр для обфускации учетных данных;
- расширенное сканирование памяти для поиска скрытых секретов;
- механизмы уклонения от обнаружения за счёт запуска в среде выполнения JavaScript, менее контролируемой, чем стандартная Node.js.
Признаки компрометации и цели атаки
По данным отчета, скомпрометированные пакеты имели нетипичный размер — около 900 КБ вместо обычных 190 КБ. Это считалось одним из индикаторов заражения.
Среди целей в инфраструктуре были отмечены:
- службы метаданных AWS EC2;
- локальные конечные точки HashiCorp Vault;
- каналы управления для связи через зашифрованные каналы.
Отдельно подчеркивается, что эксплуатация workflow в GitHub CI/CD демонстрирует серьёзные слабости модели доверия по умолчанию в операциях CI/CD.
Что рекомендуют специалистам
В ответ на инцидент эксперты призывают к усилению контроля и быстрому реагированию. В числе ключевых мер:
- ротация учетных данных;
- проверка активности в репозиториях GitHub на предмет аномалий после компрометации;
- аудит токенов доступа npm;
- развертывание инструментов мониторинга, включая решения StepSecurity, для выявления вредоносной активности в реальном времени.
Как следует из отчета, защита сред разработки сегодня требует не только формального контроля доступа, но и постоянного наблюдения за цепочками поставок, workflow и поведением пакетов в экосистеме open source.
Отчет получен из сервиса CTT Report Hub. Права на отчет принадлежат его владельцу.
Ознакомиться подробнее с отчетом можно по ссылке.



