Новости | ITSec.Ru

Взлом библиотеки JavaScript позволила злоумышленникам распространять взломанные пакеты среди разработчиков

Written by Komolov Rostislav | 28/07/25

Происшествие началось с фишинговой кампании, в ходе которой злоумышленники похитили учётные данные разработчиков, имеющих доступ к публикации пакетов на NPM. После получения доступа они незаметно сменили владельцев проекта и опубликовали вредоносные версии библиотеки — от 3.3.1 до 5.0.0. По словам Джона Харбанда, основного смотртеля, заражённые сборки находились в общем доступе около шести часов, и за это время могли быть скачаны тысячами разработчиков.

Особую тревогу, согласно Securitylab, вызывает масштаб распространения: «is» используется в большом количестве проектов — от систем сборки и CLI-инструментов до библиотек для тестирования. По данным NPM, еженедельно пакет загружают более 2,8 миллионов раз. Автоматические обновления и отсутствие блокировок версий (lockfiles) значительно увеличили шансы заражения конечных проектов, особенно в больших экосистемах.

Анализ, проведённый компанией Socket, показал, что вредоносный код в «is» представлял собой универсальный загрузчик на JavaScript. Он запускал обратное WebSocket-соединение, собирал данные о системе — имя хоста, тип операционной системы, архитектуру CPU и все переменные окружения — а затем пересылал их через динамически импортированную библиотеку ws. При этом каждое сообщение, поступающее через сокет, исполнялось как JavaScript-код, что фактически предоставляло атакующему интерактивный удалённый доступ к устройству.

В то же время другие пакеты, взломанные в рамках той же кампании, распространяли Windows-ориентированный вредонос под названием Scavanger. Это шпионское ПО собирало сохранённые пароли из браузеров и поддерживало скрытую связь с управляющим сервером. Среди его техник уклонения — использование косвенных системных вызовов и зашифрованные каналы C2. Однако в некоторых случаях Scavanger мог вызывать тревоги со стороны Chrome из-за попыток манипулировать его флагами безопасности.

В список затронутых пакетов, помимо «is», вошли: eslint-config-prettier, eslint-plugin-prettier, synckit, @pkgr/core, napi-postinstall и got-fetch. Все они получили вредоносные обновления между 18 и 19 июля 2025 года, что указывает на скоординированную атаку с заранее подготовленным сценарием. Центральной частью фишинговой кампании стал поддельный домен npnjs[.]com, с помощью которого злоумышленники выманивали логины и токены у легитимных разработчиков.

Эксперты предупреждают, что атака может не ограничиться уже известными случаями: вероятно, злоумышленники получили доступ и к другим учётным данным и вскоре могут начать распространение новых вредоносных сборок. Разработчикам настоятельно рекомендовано немедленно сбросить пароли и токены, отключить автоматическое обновление зависимостей, использовать lock-файлы и временно заморозить версии всех библиотек, опубликованных после 18 июля.