ChainDrop: самораспространяющийся червь атакует npm через доверенную цепочку поставок
4 августа 2026 года экосистема npm подверглась масштабной атаке с использованием вредоносного ПО нового типа. ChainDrop — самораспространяющийся червь, проникший в инфраструктуру через скомпрометированную учетную запись разработчика популярного пакета keyv. Эта вариация ранее известного Mini Shai-Hulud, связываемая с хакерской группировкой TeamPCP, использует смарт-контракт Ethereum для управления своей C2-инфраструктурой. Такой подход позволяет злоумышленникам легко ротировать домены, обходя традиционные защитные механизмы, основанные на блокировке доменов.
Вектор атаки: от скомпрометированного репозитория до легитимных артефактов
Атака началась с компрометации GitHub-аккаунта одного из сопровождающих проекта. Получив контроль над исходным репозиторием, злоумышленники внедрили вредоносный код, который был автоматически собран и опубликован через скомпрометированный конвейер GitHub Actions. В результате были выпущены отравленные версии сразу нескольких пакетов:
- keyv
- cacheable
- flat-cache
- file-entry-cache
Особую опасность представляет тот факт, что выпущенная версия keyv@6.0.0 включала легитимные аттестации происхождения Supply Chain Levels for Software Artifacts (SLSA). Это делало вредоносные пакеты внешне заслуживающими доверия, вводя в заблуждение как разработчиков, так и автоматизированные системы проверки.
Технические уловки и обход средств обнаружения
Одной из ключевых особенностей ChainDrop является способность эксплуатировать доверенную инфраструктуру сборки. Благодаря полному контролю над исходным репозиторием злоумышленник сумел опубликовать действительные доказательства происхождения SLSA Build Level 3 — высокого уровня гарантии целостности цепочки поставок. Это стало возможным именно из-за компрометации самого источника, а не за счёт подделки сертификатов.
При запуске червь выполняет проверку операционной системы и языковых настроек, после чего активирует свою полезную нагрузку с использованием среды выполнения JavaScript Bun. Такой выбор не случаен: большинство инструментов мониторинга ориентированы на процессы Node.js, что позволяет вредоносу оставаться незамеченным.
Вредоносная нагрузка реализована в два этапа:
- Загрузчик (файл setup.mjs) — подготавливает систему к заражению;
- Вторичный скрипт (файл Math_Symbol.js) — выполняет кражу учётных данных и дальнейшее распространение червя.
Масштаб распространения и похищаемые данные
Всего за короткое время червю удалось заразить более 400 пакетов. Он распространяется путём захвата токенов npm и повторной публикации заражённых версий уже существующих пакетов, что делает атаку чрезвычайно живучей и трудно отслеживаемой.
ChainDrop нацелен на широкий спектр конфиденциальной информации, включая:
- токены GitHub;
- учётные данные AWS;
- учётные данные Google Cloud;
- другие критически важные секреты и токены доступа.
Поскольку отравленные пакеты устанавливаются разработчиками в их конвейеры непрерывной интеграции (CI), под угрозой оказываются не только отдельные машины, но и целые организации, использующие скомпрометированные компоненты в производственных средах.
Инновационные механизмы закрепления через инструменты на базе ИИ
Особую тревогу вызывает использование ChainDrop современных средств разработки с искусственным интеллектом для закрепления в системе. Вредонос устанавливает хуки выполнения в таких популярных средах, как:
- Claude Code;
- Visual Studio Code.
Эти хуки обеспечивают повторный запуск вредоносного кода каждый раз, когда разработчик открывает свой проект или начинает сеанс работы с ИИ-инструментами. Таким образом, даже после ручного удаления основных компонентов червь способен восстановить своё присутствие, сохраняя персистентность и продолжая эксфильтрацию данных.
Инцидент с ChainDrop в очередной раз показывает, что компрометация доверенной цепочки поставок и использование легитимных механизмов аттестации делают традиционные защитные меры недостаточными. Безопасность экосистемы open-source требует не только технических решений, но и пересмотра моделей доверия на всех этапах разработки и распространения ПО.
Отчет получен из сервиса CTT Report Hub. Права на отчет принадлежат его владельцу.
Ознакомиться подробнее с отчетом можно по ссылке.



