Коротко: Самораспространяющийся червь ChainDrop заразил более 440 npm-пакетов с совокупной аудиторией 2 миллиарда загрузок в месяц. Вредонос похищает GitHub-токены, SSH-ключи, учётные данные AWS и секреты Kubernetes, а затем использует их для заражения новых пакетов — без участия атакующего. Если вы разрабатываете проекты на Node.js, проверьте, не были ли скомпрометированы ваши зависимости.
Что произошло
4 августа 2026 года злоумышленники получили доступ к GitHub-аккаунту мейнтейнера пакета keyv — инструмента для кеширования с аудиторией более 600 миллионов загрузок в месяц. Они встроили вредоносный код в монорепозиторий и запустили уже существующие CI/CD-воркфлоу, после чего заражённые версии были автоматически опубликованы в npm с легитимными токенами подписи. За четыре часа червь распространился на более чем 440 пакетов и 2212 версий. Наш блог подробно разбирает атаки на цепочку поставок — одну из главных угроз года; ChainDrop стал их наглядным воплощением.
Как работает самораспространение
Попав в среду разработки, ChainDrop действует в три шага:
- Сбор секретов: вредонос сканирует переменные окружения, конфигурационные файлы и директорию
~/.sshв поисках npm-токенов, GitHub Personal Access Tokens, ключей AWS (включая Secrets Manager и SSM Parameter Store), Kubernetes-конфигов, Vault-секретов HashiCorp и строк подключения к базам данных. - Распространение: с помощью найденных npm-токенов червь перечисляет все пакеты, доступные скомпрометированному аккаунту, добавляет вредоносный код, увеличивает номер версии и публикует обновления обратно в реестр.
- Передача данных: похищенные секреты шифруются и отправляются на командный сервер, адрес которого хранится не в коде, а в смарт-контракте Ethereum (техника EtherHiding) — это делает стандартные блокировки по доменам неэффективными.
Microsoft идентифицировала ChainDrop как вариант семейства Mini Shai-Hulud, исходный код которого был опубликован в открытом доступе ещё в мае 2026 года — это снизило порог входа для атакующих.
Что оказалось под угрозой
Наиболее популярные заражённые пакеты — keyv (600+ млн загрузок/мес.), flat-cache, cacheable-request, cacheable и cache-manager; суммарная аудитория превысила 2 миллиарда загрузок в месяц. Под угрозой оказался любой разработчик, чья CI/CD-сборка использовала эти пакеты и имела доступ к облачным учётным данным или API-токенам. Главная опасность — не прямая утечка данных пользователей, а компрометация инфраструктуры: похищенный ключ AWS открывает атакующему доступ к облачным хранилищам, базам данных и всему, что за ними стоит.
Как проверить свой проект и защититься
Microsoft и Elastic рекомендуют следующий порядок действий:
- Немедленно отозвать все npm и GitHub-токены, которые использовались в CI/CD-сборках с 4 по 7 августа 2026 года.
- Проверить историю npm-публикаций на предмет несанкционированных релизов на ваших аккаунтах.
- Очистить кэш пакетов и пересобрать проекты с нуля, используя актуальные версии из официального реестра.
- Включить двухфакторную аутентификацию на npm-аккаунтах и ограничить права токенов по принципу минимальных привилегий.
- При инсталляции новых зависимостей выдерживать паузу в 24–48 часов после публикации новой версии — большинство вредоносных релизов успевают быть обнаружены и отозваны за это время.
Защита среды разработки так же важна, как защита продакшна. LiMP VPN шифрует трафик между вашей машиной и внешними сервисами, снижая риск перехвата при работе из публичных сетей — это отдельный, но взаимодополняющий уровень защиты наряду с ротацией учётных данных.
