Пакет для улучшения кода начал тайно внедрять вредоносные участки в проекты пользователей

Даже одно фишинговое письмо способно обрушить безопасность целой экосистемы.


hqn6nr8x1dtumjd956gfaocuddzssvgr.jpg


В экосистеме npm произошёл громкий инцидент: популярный пакет eslint-config-prettier внезапно обновился без каких-либо изменений на GitHub. Разработчики быстро заподозрили неладное — и не зря. Автор пакета признался, что стал жертвой фишинга, а его учётная запись была взломана.

Взломщики воспользовались доступом, чтобы опубликовать заражённые версии не только eslint-config-prettier, но и других широко используемых пакетов: eslint-plugin-prettier, snyckit, @pkgr/core и napi-postinstall. Все они встраивались в цепочки сборки множества проектов, что сделало атаку особенно опасной — код попадал в системы автоматически при установке зависимостей.

Вредонос был внедрён через скрипт install.js, который запускал DLL-файл с вредоносной нагрузкой. Эта программа, получившая имя Scavenger , была создана с упором на скрытность и активное сопротивление анализу. Она проверяла, не запущена ли в виртуальной машине, искала признаки отладчиков и песочниц, маскировала системные вызовы и шифровала внутренние строки. Всё это делало её крайне труднообнаружимой даже для продвинутых антивирусов и систем мониторинга.

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

Особое внимание привлекли артефакты сборки — внутри заражённых версий обнаружились имена папок и отладочные пути с упоминанием слова «SCVNGR», а также криво реализованные вызовы системных утилит. Это указывает на спешку или недостаточный уровень подготовки, несмотря на сложность самого вредоносного кода.

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

Событие стало очередным напоминанием: даже самые проверенные библиотеки в любой момент могут превратиться в точку входа для атаки.