Атака на цепочку поставок npm: компрометация популярных пакетов и риск для web3‑пользователей

CyberSecureFox 🦊

Исследователи сообщили о, вероятно, крупнейшей на сегодня атаке на цепочку поставок в экосистеме JavaScript. В результате фишинговой кампании был скомпрометирован аккаунт мейнтейнера Josh Junon (Qix), а в ряд чрезвычайно популярных npm‑пакетов (включая chalk и strip-ansi) попал вредоносный код. Эти пакеты суммарно генерируют более 2,6 млрд загрузок еженедельно, что создает потенциально колоссальный радиус поражения через транзитивные зависимости.

Что произошло: фишинг против мейнтейнера npm

8 сентября 2025 года Qix подтвердил захват своих аккаунтов после целенаправленной фишинговой рассылки. Письма приходили с адреса support@npmjs[.]help — домена, зарегистрированного 5 сентября 2025 года и стилизованного под легитимный ресурс npmjs.com. Сообщения убеждали срочно «обновить 2ФА», угрожая временной блокировкой после 10 сентября.

По данным BleepingComputer, форма входа на npmjs[.]help отправляла введенные учетные данные на внешний ресурс по URL вида https://websocket-api2[.]publicvm[.]com/…, что указывает на типовую схему кражи токенов и паролей. После инцидента мейнтейнер принес извинения и сообщил, что предпринимает восстановительные меры.

Масштаб и затронутые пакеты

Команда npm оперативно удалила вредоносные релизы, выпущенные злоумышленниками от имени скомпрометированного аккаунта. По оценке компании Socket, компрометация Qix дала атакующим возможность распространять зараженные версии зависимостей, от которых косвенно зависят «бесчисленные приложения, библиотеки и фреймворки». Именно транзитивность npm‑экосистемы усиливает последствия подобных инцидентов.

Как работает вредоносный код в браузере

Исследователи Aikido Security сообщают, что в index.js было добавлено порядка 280 строк вредоносной логики‑перехватчика. Малварь активируется на клиентской стороне и нацелена на пользователей, взаимодействующих с приложениями через браузер. Цель — отслеживание и подмена криптокошельков и транзакций.

По наблюдениям исследователей, вредонос перехватывает ключевые JavaScript‑механизмы и web3‑интерфейсы, включая fetch, XMLHttpRequest, а также API кошельков (window.ethereum, Solana и др.). Под удар попадают переводы Ethereum, Bitcoin, Solana, Tron, Litecoin, Bitcoin Cash: адрес получателя подменяется на подконтрольный атакующим до подписи операции, что затрудняет выявление подмены на уровне UI.

Почему ущерб оказался ограниченным

Несмотря на масштаб кампании, эксперты Security Alliance (SEAL) и VXUnderground оценивают фактическую «выручку» злоумышленников в диапазоне от нескольких центов до $50. Причина — ошибка в коде: вместо адресов кошельков атакующие нередко подставляли реквизиты Uniswap и других swap‑контрактов. Иными словами, часть потенциально похищенных средств уходила «в никуда».

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

Рекомендации по снижению рисков

Для разработчиков и команд DevSecOps

— Срочно пересоберите и заново задеплойте фронтенды после удаления скомпрометированных зависимостей; фиксируйте версии, используйте lock‑файлы и проверяйте хэши артефактов.
— Включите обязательную 2ФА для npm/GitHub, используйте токены с ограниченными правами и SSO, регулярно ревокуйте старые токены.
— Внедрите проверку цепочки поставок: мониторинг целостности, SCA/Dependency Review, подписывание артефактов (например, Sigstore), политики одобрения для релизов мейнтейнеров.
— Настройте Content Security Policy (CSP) и Subresource Integrity (SRI) для снижения риска исполнения подмененного JS.

Для пользователей и криптоинвесторов

— Используйте аппаратные кошельки и всегда сверяйте адрес получателя на экране устройства перед подписью. По рекомендации CTO Ledger Шарля Гийеме, при отсутствии «железа» временно воздержитесь от on‑chain‑транзакций.
— Избегайте переходов по ссылкам из писем о «срочной проверке 2ФА»; открывайте учетные записи через закладки или вручную набранные URL.
— Обновите скомпрометированные приложения и расширения, очистите кэш/Service Workers, проверьте автозаполняемые скрипты и расширения браузера.

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

Оставьте комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.