Масштабные фишинговые атаки компрометируют популярные npm-пакеты с миллионами загрузок

CyberSecureFox 🦊

Июль 2025 года ознаменовался серией координированных кибератак на экосистему открытого программного обеспечения. За последние полторы недели злоумышленники успешно скомпрометировали несколько критически важных npm-пакетов, общее количество еженедельных загрузок которых превышает 30 миллионов. Атаки были направлены против разработчиков популярных библиотек JavaScript и осуществлялись через целевые фишинговые кампании.

Компрометация инфраструктуры Toptal: масштабный взлом GitHub и npm

Наиболее резонансным инцидентом стала компрометация компании Toptal — известной биржи фрилансеров и поставщика инструментов разработки. 20 июля 2025 года кибепреступники получили несанкционированный доступ к GitHub-аккаунту компании, мгновенно сделав публичными все 73 корпоративных репозитория, включая конфиденциальные проекты и исходные коды.

Исследователи из компании Socket установили, что злоумышленники действовали по четко продуманному плану. После получения контроля над репозиториями они модифицировали исходный код дизайн-системы Picasso, внедрив в него вредоносные компоненты, а затем опубликовали 10 зараженных пакетов в реестре npm под видом легитимных обновлений.

Встроенная в пакеты малварь была спроектирована для выполнения двух критических функций: кражи токенов аутентификации GitHub через скрипт preinstall и последующего уничтожения данных в системах жертв посредством скрипта postinstall. До обнаружения угрозы зараженные пакеты были загружены приблизительно 5000 раз.

Фишинговые атаки на мейнтейнеров популярных JavaScript-библиотек

Параллельно с инцидентом Toptal развивалась еще более масштабная кампания, нацеленная на разработчиков широко используемых npm-пакетов. Основной мишенью стал мейнтейнер JounQin, ответственный за поддержку пакета eslint-config-prettier с более чем 30 миллионами еженедельных загрузок.

Атака осуществлялась через тщательно спланированное фишинговое письмо, отправленное с адреса, имитирующего официальную поддержку npm ([email protected]). Содержащаяся в послании ссылка перенаправляла на поддельный домен npnjs[.]com — искусно замаскированную копию официального сайта npmjs.com.

Результатом успешной атаки стала компрометация нескольких критически важных пакетов: eslint-plugin-prettier, synckit, @pkgr/core и napi-postinstall. Злоумышленники использовали похищенные учетные данные для публикации вредоносных версий, содержащих специализированную малварь для Windows-систем.

Технические детали вредоносного кода

Анализ зараженных пакетов выявил сложную схему заражения. Вредоносный скрипт install.js активировался немедленно после установки пакета и содержал функцию logDiskSpace(), которая, вопреки своему названию, запускала исполняемый файл node-gyp.dll через системный процесс rundll32. Этот механизм обеспечивал проникновение стилера Scavanger — троянской программы для кражи конфиденциальной информации.

Компрометация библиотеки is: кроссплатформенный бэкдор

Третьим значимым инцидентом стала атака на пакет is — легковесную JavaScript-библиотеку с 2,8 миллионами еженедельных загрузок. Разработчик Джордан Харбанд оперативно обнаружил компрометацию версий 3.3.1-5.0.0, которые были удалены из реестра через шесть часов после публикации.

В данном случае злоумышленники использовали тот же поддельный домен npnjs[.]com для кражи учетных данных мейнтейнера. Внедренный в библиотеку код представлял собой кроссплатформенный JavaScript-загрузчик, создающий WebSocket-соединение для удаленного управления зараженными системами.

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

Рекомендации по защите и восстановлению

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

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

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

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