Следите за новостями по этой теме!
Подписаться на «Рифы и пачки / Твоя культура»Несколько популярных пакетов npm, которые еженедельно скачивают миллионы пользователей, были захвачены злоумышленниками и использованы для рассылки вредоносного программного обеспечения. Всё началось с того, что создатель пакетов по имени JounQin, отвечающий за такие известные инструменты, как eslint-config-prettier, eslint-plugin-prettier, synckit, @pkgr/core и napi-postinstall, стал жертвой фишинговой атаки.
Эти пакеты широко применяются для интеграции и настройки автоматического форматирования кода с помощью инструментов Prettier и ESLint. Для справки: Prettier — это инструмент, который автоматически приводит исходный код к единому стилю, а ESLint — популярный анализатор кода на JavaScript и TypeScript, который находит ошибки, проблемы со стилем и потенциальные уязвимости до запуска программы. Synckit отвечает за синхронизацию процессов в Node.js, napi-postinstall — за установку нативных бинарных файлов, @pkgr/core — поддерживает основные рабочие процессы при сборке проектов.
JounQin получил электронное письмо, якобы от службы поддержки npmjs.com, с просьбой "верифицировать" его аккаунт. В результате автор, поверив письму, переслал злоумышленникам свои учётные данные.
Добравшись до управления учётной записью, хакеры быстро опубликовали вредоносные версии следующих пакетов: eslint-config-prettier (версии 8.10.1, 9.1.1, 10.1.6 и 10.1.7), eslint-plugin-prettier (версии 4.2.2 и 4.2.3), synckit (версия 0.11.9), @pkgr/core (версия 0.2.8), napi-postinstall (версия 0.3.1).
Пользователи заметили подозрительную активность и незамедлительно сообщили об этом разработчику. Анализ показал: вредоносный код запускается в момент установки — специальный postinstall-скрипт пытается запустить вредоносный DLL-файл при помощи процесса rundll32, стандартного системного инструмента Windows. Этот файл уже определяют некоторые антивирусы как троян, однако большая часть антивирусных решений пока не реагирует на угрозу: лишь 19 из 72 движков распознают файл как вредоносный.
Сам JounQin отреагировал быстро: "Я удалил этот токен npm и скоро опубликую новую версию. Спасибо за поддержку и прошу прощения за свою неосторожность!"
Эксперты рекомендуют незамедлительно удалить и не использовать следующие версии с вредоносным кодом:
— eslint-config-prettier: 8.10.1, 9.1.1, 10.1.6, 10.1.7
— eslint-plugin-prettier: 4.2.2, 4.2.3
— synckit: 0.11.9
— @pkgr/core: 0.2.8
— napi-postinstall: 0.3.1
Классическая схема: разработчик становится жертвой фишинговой рассылки, передаёт свои учётные данные атакующим, те немедленно превращают популярные npm-пакеты в разносчиков троянов. В этой комедии ошибок антивирусы действуют как сонные мухи, а пользователи вновь убеждаются: никакой email не слишком подозрителен, если его отправитель — админ. Вдобавок, некая часть npm-сообщества убеждается, что автоматизация разработки — отличное подспорье для массовых атак, если только кто-то где-то не забыл проверить ящик на подлинность письма. Вывод прост: чем крупнее платформа, тем громче провал и тем изощреннее попытки замести следы. А куда деваться программисту? Привыкай к жизни под лозунгом «обнови и молись».