В экосистеме разработки программного обеспечения вновь зафиксирована крупная целенаправленная атака на доверие. Эксперты по информационной безопасности обнаружили продолжающуюся кампанию по распространению вредоносных пакетов через официальный реестр NPM (Node Package Manager), ключевой инструмент для миллионов разработчиков на JavaScript и Node.js. Угроза, получившая название Stardrop, маскируется под популярные библиотеки и инструменты для искусственного интеллекта, что делает её особенно опасной для быстрорастущего сообщества разработчиков AI. Это не единичный случай заражения, а масштабная и методичная операция, нацеленная на кражу критически важных учётных данных, включая API-ключи ведущих AI-сервисов, что может привести к значительным финансовым потерям и утечке интеллектуальной собственности.
Описание
Согласно данным исследовательской компании OpenSourceMalware, специализирующейся на анализе вредоносного открытого кода, с 9 апреля в реестр NPM было загружено более 200 вредоносных пакетов. Ежедневно появляется около 40 новых модулей, что свидетельствует о высокой активности злоумышленников. Пакеты носят названия, намеренно схожие с популярными инструментами и брендами, такими как "huggingface-cli", "webflow", "codeium" или "givenchy". Их объединяет обещание предоставить доступ к новому AI-агенту для написания кода под названием Stardrop, что и дало имя всей кампании. На первый взгляд ситуация находится под контролем, поскольку администрация NPM оперативно удаляет эти пакеты из основного реестра, и по ним даже не успевают создаваться официальные бюллетени об уязвимостях (OSV или GHSA). Однако главная опасность кроется в механизмах распространения. Большинство глобальных сетей доставки контента (CDN) и зеркал, включая европейские и китайские NPM-зеркала, уже успели кэшировать эти пакеты. Это означает, что разработчик, чья система настроена на использование одного из таких зеркал, может установить вредоносный код, даже если он уже удалён из центрального реестра, что сводит на нет усилия по быстрому реагированию.
Технический анализ пакетов, проведённый OpenSourceMalware, выявил несколько уникальных характеристик, которые, с одной стороны, служат сигнатурами для обнаружения, а с другой - являются частью тактики уклонения. Все пакеты используют нестандартную нумерацию версий по схеме "0.0.0-dev-202603281859", где цифры, вероятно, обозначают дату и время сборки. Однако ключевой механизм атаки заложен в структуру файла "package.json". Каждый вредоносный модуль объявляет так называемые опциональные зависимости (optionalDependencies) на 11 платформо-специфичных пакетов с именами вроде "stardrop-linux-x64" или "stardrop-darwin-arm64". Именно в этих зависимостях и скрыта основная полезная нагрузка. Фактически, основной пакет выступает в роли "дроппера" - установщика, который автоматически развернёт целевой вредоносный код в зависимости от операционной системы жертвы.
Механизм заражения состоит из трёх чётко выстроенных стадий, которые описали эксперты. На первом этапе разработчик устанавливает, казалось бы, безобидный пакет через команду "npm install". Файл "package.json" этого пакета содержит скрытую команду "postinstall", которая автоматически запускает скрипт "postinstall.mjs" после завершения установки. Этот скрипт, представляющий вторую стадию, выполняет детектирование окружения: определяет операционную систему (Linux, Windows, macOS) и архитектуру процессора, после чего находит в папке "node_modules" соответствующий бинарный пакет из списка опциональных зависимостей и делает его исполняемый файл доступным через системный PATH. Процесс спроектирован так, чтобы не вызывать подозрений, и даже в случае ошибки установки зависимостей выводит правдоподобные сообщения.
На третьей, самой опасной стадии, запускается бинарная полезная нагрузка. Проанализированные экспертами исполняемые файлы для Linux, Windows и macOS имеют значительный размер (до 150 МБ распакованными), что может указывать на использование сложных фреймворков или упаковку нескольких функций. При запуске на Linux и macOS бинарник отображает терминальное окно, которое имитирует легитимный процесс настройки AI-агента и запрашивает у пользователя информацию, а также API-ключи от таких сервисов, как OpenAI или Anthropic. Пока пользователь вводит данные, в фоновом режиме вредоносная программа уже начинает хищение учётных данных. Она ищет и копирует файлы с конфиденциальной информацией, например, "~/.local/share/stardrop/auth.json", а также сканирует систему на наличие облачных учётных данных, включая попытки обращения к сервисам метаданных AWS по стандартному внутреннему IP-адресу 169.254.169[.]254. На Windows поведение схожее: после первоначального сканирования программа загружает дополнительную библиотеку (DLL) во временную папку, что является классическим признаком многостадийной атаки, когда основной загрузчик получает с сервера злоумышленников более функциональный модуль.
Основная цель кампании Stardrop - кража учётных данных. Программа действует как классический инфостилер (информационный вор), но с чёткой специализацией на облачных и AI-ключах. Собранные данные сохраняются в локальном файле, например, "registration.json", и, по всей видимости, впоследствии передаются на серверы злоумышленников, возможно, использующие инфраструктуру Cloudflare R2. Последствия такой утечки выходят далеко за рамки компрометации одного аккаунта. Получив API-ключи, злоумышленники могут совершать от имени жертвы дорогостоящие запросы к платным AI-моделям, получать доступ к приватным корпоративным данным, загруженным в облачные хранилища, или даже использовать скомпрометированные облачные ресурсы для проведения дальнейших атак. Особую озабоченность вызывает тот факт, что наиболее полный набор вредоносных функций был обнаружен в версии для macOS, что может указывать на целевую аудиторию кампании - разработчиков, которые часто используют компьютеры Apple для работы с современными AI-стеком технологий. Данный инцидент наглядно демонстрирует, что цепочка поставок программного обеспечения остаётся одним из самых уязвимых мест в кибербезопасности, а доверие к публичным реестрам пакетов требует постоянной и тщательной валидации.
Индикаторы компрометации
Domains
- opncd.ai
- p9ia72yajp.us-east-1.awsapprunner.com
- stardrop.dev
MD5
- 29b31bb2a2c4fbe0c3cec2022562927c
- 43f446a86f1fbee74a486185c6dc1d51
- 823f13d45fe0dd05d2f1ac4344d8ae75
- d70e7e37dfa4cf501cbd0ef6a236c84b
SHA256
- 18e8742fb6fb5e70c0c91823d72f5d9074be1d1cba1cbfc0eca75b5427e544da
- 646f3904ff03e64229f938ac23fa8bb79ed1658ee5aa0bee4aa8909f38f763cd
- d780fe3b635ff099682677f3c93e42d789e572926fd0db076c27e775bb109b06
- f2248973be75ce70b96424edb405d5a9af3c1fbca378566bfff3c0a0994d6f48