В популярный пакет rand-user-agent, который загружают более 45 000 раз в неделю, внедрили обфусцированный код. Малварь активирует троян удаленного доступа (RAT) в системе пользователя.

Rand-user-agent — это инструмент, предназначенный для генерирования рандомизированных строк user-agent, что часто применяется для скраппинга, автоматизированного тестирования и исследований в области ИБ.

Как сообщают аналитики компании Aikido, злоумышленники воспользовались тем, что пакет является полузаброшенным, хотя все еще популярен. В итоге в rand-user-agent внедрили вредоносный код, который, вероятно, попал и в другие проекты.

Исследователи обнаружили компрометацию 5 мая 2025 года в новой версии rand-user-agent —1.0.110. При более глубоком анализе был обнаружен обфусцированный код, скрытый в файле dist/index.js. При этом код можно было заметить только при горизонтальной прокрутке в режиме просмотра исходного кода.

Как показало последующее расследование, последней легитимной версией rand-user-agent была 2.0.82, выпущенная семь месяцев назад. То есть версии 2.0.83, 2.0.84 и упомянутая 1.0.110, являлись вредоносными и отсутствовали в GitHub-репозитории проекта.

Вредоносный код, встроенный в зараженные версии, создавал скрытый каталог в домашней папке пользователя (~/.node_modules) и расширял module.paths таким образом, чтобы этот кастомный путь можно было использовать для загрузки зависимостей, а именно axios и socket.io-client.

Затем он открывал постоянное сокет-соединение со своим управляющим сервером, расположенным по адресу http://85.239.62[.]36:3306, и передавал операторам информацию о зараженной машине, включая имя хоста, имя пользователя, тип ОС и сгенерированный UUID. После активации RAT ожидал получения последующих команд.

В настоящее время вредоносные версии пакета уже удалены из npm, поэтому последняя доступная версия безопасна, и ее можно использовать.

Всем, кто устанавливал версии 2.0.83, 2.0.84 и 1.0.110, рекомендуется провести полное сканирование системы на предмет обнаружения признаков компрометации. Подчеркивается, что обновление пакета до безопасной версии не удаляет RAT из системы.

Как сообщает компания-разработчик rand-user-agent — WebScrapingAPI, произошедшее было классической атакой на цепочку поставок. Расследование еще продолжается, но уже известно, что злоумышленник сумел получить устаревший токен автоматизации, принадлежавший одному из сотрудников, и использовал его для публикации релизов в npm.

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

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

«Мы приносим извинения всем разработчикам и организациям, которых затронул этот инцидент. Защита опенсорсной экосистемы — это обязанность, к которой мы относимся со всей серьезностью. Мы стремимся к полной прозрачности и устраняем все бреши, благодаря которым могла произойти эта атака», — заявили в WebScrapingAPI.

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Межтекстовые Отзывы
    Посмотреть все комментарии