Кампания Ghost: как поддельные npm-пакеты и фальшивые репозитории крадут криптокошельки разработчиков

В начале 2026 года исследователи из ReversingLabs обнаружили семь подозрительных npm-пакетов, которые на первый взгляд выглядели как обычные утилиты для React и торговые боты. Это оказалась верхушка масштабной вредоносной кампании, получившей название Ghost. За прошедшие месяцы к расследованию подключились JFrog (документировавшие кластер под именем GhostClaw), Jamf Threat Labs и аналитики из Panther. Картина, которая сложилась в итоге, оказалась сложнее и изощрённее, чем кто-либо предполагал на старте.
Кампания Ghost: как поддельные npm-пакеты и фальшивые репозитории крадут криптокошельки разработчиков
Изображение носит иллюстративный характер

За кампанией стоит злоумышленник (или группа), действующий под псевдонимом «mikilanjillo». На его счету как минимум 11 вредоносных npm-пакетов: react-performance-suite, react-state-optimizer-core, react-fast-utilsa, ai-fast-auto-trader, pkgnewfefame1, carbon-mac-copy-cloner, coinbase-desktop-sdk, react-query-core-utils, react-state-optimizer, react-fast-utils и darkslash. Названия подобраны не случайно — каждое имитирует что-то знакомое разработчику: SDK от Coinbase, утилиты для оптимизации React-приложений, инструменты для автоматической торговли. Целевые системы — macOS и Linux, то есть именно те платформы, на которых работает большинство разработчиков.
Но тайпсквоттинг (подделка названий) здесь далеко не главная уловка. Исследователь из Jamf Threat Labs Тийс Хафлер обнаружил, что атакующие использовали GitHub-репозитории, которые накапливали сотни звёзд, создавая видимость популярного и проверенного проекта. Репозитории поначалу содержали безобидный код и оставались в таком виде долгое время — иногда месяцами. Это своего рода «спящие агенты»: сначала набрать доверие, а потом тихо добавить вредоносный компонент. Расчёт на то, что разработчик, увидевший проект с кучей звёзд и длинной историей коммитов, не станет вчитываться в каждый скрипт.
Цепочка заражения устроена многоступенчато и с хорошей долей социальной инженерии. На первом этапе вредонос показывает поддельные логи установки npm — с задержками, прогресс-барами, словом, всё выглядит как нормальный процесс. Потом появляется фиктивное сообщение об ошибке: якобы нет прав на запись в /usr/local/lib/node_modules. Пользователю предлагают ввести sudo-пароль. Это ключевой момент — получив пароль администратора, малварь переходит ко второму этапу.
Второй этап управляется через переменную окружения GHOST_PASSWORD_ONLY. При значении 0 жертва видит полный «интерактивный» процесс установки с индикаторами прогресса. При значении 1 всё проще — только сбор учётных данных, без лишней мишуры. Код запускается через node scripts/setup.js и node scripts/postinstall.js. Дальше загрузчик обращается к Telegram-каналу или странице на , замаскированной под блокчейн-документацию, чтобы получить ключи расшифровки и URL финальной полезной нагрузки. Тут есть определённая элегантность: командная инфраструктура спрятана за легитимными платформами, что сильно затрудняет блокировку.
Финальная полезная нагрузка — троян удалённого доступа (RAT), именуемый GhostLoader. Его интересует всё ценное на машине разработчика: криптовалютные кошельки, учётные данные из браузеров, SSH-ключи, конфигурации облачных провайдеров, токены для инструментов разработки. Украденные данные уходят через Telegram-ботов, привязанных к конкретным партнёрам. Это, собственно, намекает на партнёрскую модель распространения.
Модель монетизации двойная. Первый канал дохода — прямая кража учётных данных и, соответственно, средств из криптокошельков. Второй — партнёрские URL-редиректы. Алессандра Риццо, исследователь безопасности из Panther, обнаружила ещё один примечательный элемент: малварь использует смарт-контракт в сети Binance Smart Chain (BSC) для хранения и обновления конфигурации. Это означает, что атакующим не нужно модифицировать сам вредоносный код, чтобы сменить адреса серверов или учётные данные — достаточно обновить запись в блокчейне. Подход практически неубиваемый с точки зрения инфраструктуры.
Отдельная ветка кампании нацелена на разработчиков, работающих с ИИ-инструментами. Атакующие эксплуатируют рабочие процессы вроде OpenClaw, подсовывая файл SKILL.md, который побуждает пользователя установить вредоносные «внешние навыки». Учитывая, как быстро растёт популярность ИИ-ассистентов для написания кода, этот вектор атаки может оказаться чрезвычайно эффективным — разработчик в потоке работы с ИИ-помощником скорее доверится предложенной зависимости.
Люция Валентич из ReversingLabs первой обратила внимание на аномальные пакеты ещё в январе-феврале 2026 года. К середине 2026-го JFrog, Jamf и Panther опубликовали детальные разборы, связавшие разрозненные инциденты в единую кампанию. Хронология показывает: Ghost — не одноразовая акция, а продуманная операция с длительной подготовкой. «Спящие» репозитории, постепенное наращивание доверия, распределённая инфраструктура — всё указывает на то, что за псевдонимом «mikilanjillo» стоят люди с хорошим пониманием и экосистемы open-source, и психологии разработчиков.
Ghost фактически эксплуатирует доверие к экосистеме. Разработчики привыкли ставить пакеты из npm, проверять звёзды на GitHub и следовать инструкциям по установке. Кампания бьёт именно в эти привычки. Проверка названий пакетов, аудит postinstall-скриптов, осторожность с sudo-запросами при установке зависимостей — всё это теперь из рекомендательного переходит в категорию необходимого. Особенно если вы работаете с криптовалютами или храните на рабочей машине SSH-ключи и облачные конфиги.


Новое на сайте

19641OpenAI залатала две дыры: как через ChatGPT и Codex утекали данные пользователей 19640Утечки секретов ускоряются быстрее, чем индустрия успевает их затыкать 19639Метавселенная всё-таки умерла? 19638Почему люди до сих пор верят, что пришельцы создали древние цивилизации? 19637Растения у Колорадо крадут подземные воды, усугубляя засуху в и без того истощённом... 19636Уязвимость ShadowPrompt: как любой сайт мог молча захватить браузер через расширение... 19635Может ли война с Ираном оставить голодными 363 миллиона человек по всему миру? 19634Зачем роботам терять конечности, если ИИ научился собирать их заново за секунды? 19633Шахматы по телеграфу — первый в истории киберспорт? 19632Почему фреймворки LangChain и LangGraph ставят под удар файлы, секреты и базы данных... 19631Почему кошки приручили нас, а не мы их? 19630Что нашли дайверы на дне эгейского моря в бриге лорда Элгина? 19629Почему 65 000 лет назад в Европе выжила только одна линия неандертальцев? 19628DeepLoad: как поддельное окно Windows крадёт пароли и расползается по флешкам 19627Почему три китайские хакерские группировки одновременно атаковали одно правительство в...
Ссылка