Перейти к содержанию
Tech Threat Lab
TTL

npm-пакеты под видом Web3-акселератора устанавливали стилеры для Windows и macOS

npm-пакеты под видом Web3-акселератора устанавливали стилеры для Windows и macOS

Исследователи Elastic Security Labs обнаружили кампанию REF8801: злоумышленники выдавали себя за Web3-акселератор Apex Accelerator и распространяли через npm вредоносное ПО для Windows и macOS. Пакеты обещали криптостартапам бесплатные ИИ-кредиты для Anthropic Claude и Google Gemini, инструменты разработки и аудита безопасности, но устанавливали стилеры и бэкдоры.

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

Пакеты и легенда акселератора

В кампании использовались как минимум два npm-пакета для Windows и macOS:

  • @apexacc/cli — Apex Copilot CLI, представленный как ИИ-консультант для основателей Web3;
  • @apexacc/audit — Web3 Security Scanner, якобы включавший 18 инструментов для проверки токенов, кошельков и смарт-контрактов.

На момент исследования доступ к пакетам и связанным с ними репозиториям GitHub уже был закрыт. @apexacc/cli рекламировался как инструмент на базе моделей Claude Fable 5 и Gemini 2.5 Flash, а @apexacc/audit — как сервер Model Context Protocol (MCP) с 18 функциями безопасности.

Оба пакета опубликовал npm-пользователь apexaccelerator. Их связывали с GitHub-аккаунтом apexaccs и организацией Apex Foundation.

Это не первая активность под той же легендой. В конце июля 2026 года SafeDep сообщала еще о трех npm-пакетах, связанных с этой кампанией и доставлявших macOS-стилер Atomic Stealer, также известный как AMOS:

  • @apexfdn/apex;
  • @copilot-mcp/apex — с тем же описанием, что и @apexacc/cli;
  • @apexfdn/copilot-mcp — заявленный как сервер Apex Copilot и MCP для «проверки портфеля и инструментов оператора».

По данным Socket, с апреля 2026 года с Apex Foundation были связаны как минимум два домена: apexaccs[.]org и apexfdn[.]xyz. В архивной копии сайта от 19 марта 2026 года фонд заявлял об инвестициях, грантах и партнерских программах на сумму $235 000. Также он обещал знакомить проекты, не прошедшие его критерии, с венчурными фондами, бизнес-ангелами и частными инвестиционными фондами.

Публикации в X показывают, что предполагаемый акселератор обращался к разработчикам криптокошельков и сервисов рыночной аналитики для трейдеров. Им предлагали прямые инвестиции и инструмент для комплексной проверки — @apexacc/cli. В одном из описанных случаев пакет устанавливал зашифрованный загрузчик, замаскированный под приложение Apple с именем com.apple.system.loader.

Elastic также отметила попытки создать видимость легитимности через участие в TOKEN2049 в Сингапуре и других очных мероприятиях. По оценке исследователей, присутствие на крупных конференциях должно было повысить доверие к проекту.

Заявленные функции не выполнялись

После установки ни один из пакетов не предоставлял заявленной функциональности. Все 18 «инструментов безопасности» в @apexacc/audit возвращали поддельные результаты, а тест оценки в @apexacc/cli выдавал неподтвержденную оценку вымышленного проекта.

Фактической задачей пакетов была доставка macOS-бэкдора CloudSyncD и отдельного Windows-стилера. Данные, собранные Windows-вредоносом, передавались через Telegram. Исполняемые файлы для обеих платформ извлекались из релизов GitHub-проектов.

Пакеты определяли ОС и отправляли POST-запрос на vrf.apexaccs[.]org/api/v1/vrf, передавая параметр win32 либо darwin. После этого запускалась соответствующая цепочка заражения.

Цепочка заражения Windows

При выборе SIEM-платформы для централизованной корреляции журналов можно отдельно изучить Security Capsule SIEM и сопоставить её с требованиями своей инфраструктуры.

В Windows-ветке вредоносное ПО извлекало закодированную в Base64 команду PowerShell. Та обращалась к 0auth-chromium[.]com/APIService для получения второго PowerShell-скрипта — drop.ps1. Скрипт загружал исполняемый файл bludness.exe с ehegisnightmare[.]icu и запускал его в скрытом окне.

bludness.exe представлял собой загрузчик Python, упакованный PyInstaller. Он проверял, работает ли процесс с правами администратора. При наличии таких прав загрузчик получал следующий этап с ehegisnightmare[.]icu, сохранял его как %TEMP%\exegis.exe и запускал. Без административных прав программа пыталась обойти UAC через функцию ucmDebugObjectMethod() из библиотеки UACME.

Следующий файл, exegis.exe, также был упакован PyInstaller. Он собирал метаданные системы и сведения о запущенных процессах, проверял признаки виртуальной машины, затем расшифровывал и запускал встроенный загрузчик %TEMP%\updater_loader.exe.

Загрузчик на Go модифицировал механизмы AMSI и ETW, отключал обработку событий в ntdll.dll для обхода защитных средств на конечных устройствах и загружал в собственную память шелл-код следующей стадии.

Этот шелл-код был нативным модулем кражи данных. Перед сбором он проверял признаки предыдущего заражения. Затем модуль получал системные сведения, содержимое буфера обмена, список процессов, имена профилей Wi‑Fi и снимки экрана. Он также искал данные криптокошельков, браузерных расширений, мессенджеров, средств удаленного доступа, FTP- и VPN-клиентов, игровых клиентов и браузеров Google Chrome, Microsoft Edge, Mozilla Firefox и Yandex.

Стилер мог обходить Application-Bound Encryption (ABE) в Chrome для извлечения сохраненных паролей, сессионных cookie, истории посещений, сведений о загрузках и метаданных профиля. Собранные данные передавались через Telegram.

Ветка macOS и CloudSyncD

На macOS пакет загружал и запускал удаленно размещенный bash-скрипт. Скрипт скачивал GZIP-архив с verify.apexfdn[.]xyz/unix/, сохранял его во временном каталоге как package.tar.gz и извлекал содержимое.

В архиве находился дроппер CloudSyncD. Сначала он показывал поддельный запрос авторизации, чтобы получить пароль пользователя для входа в систему. Затем пароль использовался для запуска встроенной нагрузки с привилегиями sudo.

Нагрузка выполняла разведку хоста, собирала сведения об оборудовании и ОС, после чего связывалась с внешним сервером ccmihr[.]com. Сервер использовался для передачи данных и получения дальнейших задач, включая загрузку и запуск дополнительных вредоносных компонентов.

CloudSyncD впервые описала Jamf Threat Labs в конце сентября 2026 года. Тогда исследователи разобрали распространение вредоноса через поддельный установщик Zoom и сообщили, что обнаружили его в реальной среде в середине сентября 2026 года. По наблюдениям Jamf, CloudSyncD отражает развитие macOS-вредоносов в сторону нативных реализаций, защиты строк и цепочек выполнения, а также попыток не записывать полезную нагрузку на диск. Для получения привилегий он при этом использует давно известный прием — запрос пароля у пользователя.

Перехват запросов ИИ-агентов

Помимо доставки вредоносного ПО, пакеты могли перехватывать и перенаправлять трафик LLM через OpenRouter. Они также регистрировали контролируемый атакующими MCP-сервер в конфигурации ИИ-агента жертвы.

Как отмечают исследователи Elastic, подмена маршрута предоставляет подконтрольному API доступ к промптам, истории диалогов, фрагментам кода и результатам работы инструментов, включенным в запросы ИИ-агента. MCP-сервер атакующих способен передавать инструкции, которые добавляются к запросу агента вместе с названиями инструментов, их описаниями и допустимыми входными данными. Эти сведения помогают модели выбрать инструмент и способ его вызова. Следовательно, злоумышленники получают не только доступ к передаваемым данным, но и возможность влиять на дальнейшие действия агента.

Что проверить

В опубликованных данных нет сведений о подтвержденных атаках на организации в России или СНГ. Кампания, однако, затрагивает разработчиков, использующих npm, инструменты для Web3 и ИИ-агентов, поэтому проверка цепочки поставки актуальна и для локальных команд.

  • Проверить журналы npm-установок, репозитории и рабочие станции на наличие пакетов @apexacc/cli, @apexacc/audit, @apexfdn/apex, @copilot-mcp/apex и @apexfdn/copilot-mcp.
  • Проверить сетевые обращения к apexaccs[.]org, apexfdn[.]xyz, 0auth-chromium[.]com, ehegisnightmare[.]icu, verify.apexfdn[.]xyz и ccmihr[.]com, а также наличие имен com.apple.system.loader, bludness.exe, exegis.exe и updater_loader.exe.
  • Для пакетов, получающих доступ к ключам, кошелькам, кодовой базе либо конфигурации ИИ-агентов, отдельно проверять фактическое поведение при установке, сетевые обращения, а также изменения в настройках MCP и маршрутизации запросов к LLM.

Практический вывод: npm-пакет, предлагающий инвестиции, ИИ-кредиты или бесплатный аудит, нельзя считать безопасным лишь из-за GitHub-репозитория, публичного аккаунта или участия его авторов в конференциях.