Червь ChainDrop, крадущий учётные данные, заразил более 400 npm-пакетов

Npm Chaindrop кибербезопасность вредонос Keyv цепочка поставок csoonline.com

Червь ChainDrop заразил 444 npm-пакета с более чем 2 млрд ежемесячных загрузок. Атака началась с мейнтейнера Keyv и использует блокчейн Ethereum для управления. Узнайте, как вредонос ворует учетные данные через ИИ-ассистентов. Немедленно ротируйте токены и включите script gating.

Самораспространяющаяся червеобразная атака поражает реестр npm, заразив на данный момент 444 пакета от более чем дюжины издателей. Масштаб огромен: затронутые пакеты в сумме насчитывают более 2 миллиардов ежемесячных загрузок.

Атака началась с компрометации GitHub-аккаунта Джареда Рэя, который поддерживает Keyv — пакет с более чем 150 миллионами еженедельных загрузок, предоставляющий интерфейс для взаимодействия с key-value хранилищами в различных бэкендах. Версия 6.0.0, опубликованная около 9:00 UTC во вторник, содержала новую версию вредоносного ПО Shai-Hulud, похищающего учетные данные.

Скомпрометированный аккаунт также используется для поддержки ряда других популярных пакетов, включая cacheable, flat-cache, file-entry-cache, cacheable-request, cache-manager, ecto и другие. Все они также получили троянизированные версии.

Вскоре после этого атака вышла за пределы этого аккаунта, заразив пакеты других организаций в npm — @deliveroo/reevent, @or-sdk/invitations , @picsart/ai-sdk, @qlik/embed-runtime, picasso.js — и это лишь некоторые. По состоянию на 18:10 UTC компания StepSecurity обнаружила вредоносный код в 444 пакетах и 2212 версиях.

«Каждая отравленная версия несет одинаковый паттерн заражения: preinstall-дроппер, который загружает легитимный JavaScript-рантайм Bun, и 710-килобайтная обфусцированная вторая стадия, которая похищает учетные данные, публикует новые вредоносные пакеты и внедряется в ИИ-инструментарий разработчиков», — сообщили исследователи из StepSecurity.

Хотя код, по-видимому, является новой вариацией Shai-Hulud — червя, похищающего учетные данные в цепочках поставок, который с прошлого года в разных формах поражал реестры npm и PyPI, — исследователи решили назвать эту новую кампанию ChainDrop, поскольку эта версия использует блокчейн Ethereum для управления и контроля, что известно как техника EtherHiding.

«Компрометация была осуществлена путем отправки вредоносных файлов непосредственно в основную ветку с последующим немедленным созданием нового релиза, что означает: отравленные версии были опубликованы в npm с действительным provenance, подписанным GitHub Actions», — сообщили исследователи из Aikido Security в отчете.

Рэй подтвердил через X, что использует OpenID Connect (OIDC) с npm и одноразовые коды для GitHub, то есть не использовал долгосрочные статические токены. Разработчик восстановил доступ к своему GitHub-аккаунту около 20:00 UTC и заявил, что проводит полный аудит.

Вредоносное ПО заражает ИИ-ассистентов кода

Вредоносные файлы, добавляемые в пакеты, — это setup.mjs и Math_Symbol.js, в некоторых случаях переименованный в math_init.js. Они выполняются с помощью preinstall-скрипта в процессе установки пакетов через npm, после чего загружают и запускают на компьютере вторую обфусцированную нагрузку.

Вредоносное ПО ищет в локальной среде облачные учетные данные, секреты инфраструктуры, токены доступа разработчиков, файлы конфигурации, связанные с ИИ, и криптовалютные кошельки. Оно также обнаруживает CI/CD-пайплайны и билд-раннеры и пытается считать из их памяти временные секреты, внедряемые в процессе сборки.

Новым в этой вариации являются механизмы постоянного закрепления, развертываемые внутри редакторов кода, таких как VS Code, через tasks.json, и ИИ-ассистентов кода, таких как Claude Code, через хуки.

«Цели для кражи учетных данных расширены почти на 70%: добавлены хранилища учетных данных ИИ-агентов для Claude, OpenAI, Codex, Cursor и Gemini; хранилища ключей криптовалют для Foundry, Solana и Monero; секреты self-hosted CI и реестров, такие как master.key от Jenkins, Argo CD и Harbor; конфигурации CLI Alibaba Cloud и Tencent Cloud; а также системные файлы, включая /etc/shadow», — сообщили исследователи из компании Wiz в собственном анализе.

Меры защиты

К сожалению, корпоративным командам безопасности придется провести полный аудит машин разработчиков. Скомпрометированные пакеты являются транзитивными зависимостями для тысяч других, и если хотя бы одна из отравленных версий была установлена в период атаки, необходимо ротировать все возможные учетные данные, доступные на этой машине или на других машинах, доступных с нее.

«Ротируйте как минимум: npm-токены автоматизации, персональные токены доступа GitHub и SSH-ключи, учетные данные облачных провайдеров (~/.aws, ~/.config/gcloud, Azure), сервисные аккаунты Kubernetes и любые секреты в переменных окружения или .env-файлах, присутствовавшие на момент установки», — заявили исследователи StepSecurity. «Мейнтейнеры npm-пакетов должны считать свои учетные данные для публикации скомпрометированными. Вторая волна этой кампании как раз демонстрирует, почему: дополнительные аккаунты мейнтейнеров опубликовали идентичную нагрузку в течение того же часа».

Отчет StepSecurity включает индикаторы компрометации, список зараженных пакетов, а также рекомендации по многоуровневой защите для машин разработчиков и процессов, которые могли бы остановить эту компрометацию.

Использование флага -—ignore-scripts в CI-пайплайнах, известное как script gating, позволило бы проигнорировать preinstall-скрипт, доставляющий нагрузку. Менеджеры пакетов, такие как npm, pnpm, Yarn и Bun, теперь поддерживают политики минимального возраста релиза для установки пакетов. Настройка этого параметра на период от 3 до 7 дней дает пользователям время на случай, если недавно выпущенная версия окажется отравленной.

Компании в сфере безопасности постоянно сканируют и мониторят реестр npm, и новые компрометации цепочек поставок обычно обнаруживаются в течение минут или часов. В данном случае вредоносные версии начали удаляться командой npm в течение двух часов, но, будучи червем, атака продолжает распространяться через вновь скомпрометированные аккаунты разработчиков.

Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.

В тренде:


Похожие новости: