Клоны NPM-пакета с 8 млн загрузок в неделю добывают Monero и крадут пароли

Клоны NPM-пакета с 8 млн загрузок в неделю добывают Monero и крадут пароли

Клоны NPM-пакета с 8 млн загрузок в неделю добывают Monero и крадут пароли

Злоумышленники взломали npm-аккаунт автора проекта UAParser.js и опубликовали три вредоносных обновления, загружающих криптомайнер и крадущего пароли трояна. Чистые версии пакета уже доступны, замену рекомендуется произвести незамедлительно.

Библиотека с открытым исходным кодом UAParser.js, выполняющая разбор HTTP-заголовка User-Agent, очень популярна. Ее используют более 1200 проектов, в том числе продукты Microsoft, Amazon, Google, Facebook, Mozilla, Apple, Dell, IBM, Siemens, Oracle, HP, MongoDB, Slack и ProtonMail. Этот npm-пакет насчитывает около 8 млн загрузок в неделю; в октябре его уже скачали более 24 млн раз.

В конце прошлой недели в NPM появились три вредоносных обновления пакета UAParser.js — 0.7.29, 0.8.0 и 1.0.0. Автор проекта полагает, что его учетную запись в репозитории взломали, и сетует, что не смог отозвать публикацию опасных фальшивок из-за политик этого хранилища.

Проведенный в BleepingComputer анализ показал, что при установке на машину зараженной версии UAParser.js сценарий preinstall.js проверяет тип используемой ОС и запускает либо шелл-скрипт Linux, либо bat-файл Windows.

На Linux-устройствах зловред проверяет также местоположение жертвы; если она проживает в России, на Украине, в Белоруссии или Казахстане, выполнение сценария прекращается. В остальных случаях происходит загрузка и запуск майнера XMRig (файла jsextension), который во избежание обнаружения использует лишь 50% мощности CPU.

На Windows-машины тоже загружается криптомайнер (сохраняется под именем jsextension.exe). Кроме этого, bat-файл скачивает вредоносную библиотеку sdd.dll (сохраняется как create.dll) — трояна, способного красть пароли из браузеров, мессенджеров, клиентов email, FTP, VNC, а также диспетчера учетных данных Windows. По мнению экспертов, что это некий вариант хорошо известного DanaBot.

Разработчики UAParser.js за несколько часов вернули контроль над проектом и выпустили чистые версии 0.7.30, 0.8.1 и 1.0.1. Согласно алерту на сайте GitHub, тем, кто установил вредоносный пакет, рекомендуется как можно скорее произвести обновление и проверить систему на наличие подозрительной активности. Все пароли, ключи и сертификаты безопасности следует заменить, используя другой компьютер.

Исследователи полагают, что создатель вредоносных фальшивок — тот же человек, который неделей ранее выложил в NPM аналогичные клоны UAParser.js. Зловредные пакеты быстро обнаружили и удалили, а соответствующий аккаунт закрыли.

Вышла утилита RKN Block Checker для диагностики блокировок

Разработчик Дмитрий Виноградов представил утилиту RKN Block Checker с открытым исходным кодом. Она помогает понять, почему конкретный сайт не открывается: это обычная сетевая проблема или блокировка на стороне провайдера / регуляторной инфраструктуры.

Проект написан на Python и опубликован под лицензией MIT. Утилита работает из командной строки и проверяет соединение по цепочке DNS → TCP → TLS → HTTP.

Идея простая: не просто выдать вердикт, что сайт недоступен, а показать, на каком именно уровне всё сломалось. Например, если системный DNS не даёт нормальный ответ, а Cloudflare DoH возвращает корректный адрес, это может указывать на DNS-подмену. Если TCP-соединение на 443-й порт сбрасывается, речь может идти о блокировке на уровне IP.

Если TCP проходит, но соединение рвётся на TLS-рукопожатии с SNI, это уже похоже на работу DPI / ТСПУ. А если сайт открывается, но вместо страницы приходит заглушка провайдера или код 451, утилита фиксирует и такой сценарий.

 

Автор отдельно подчёркивает, что смысл RKN Block Checker не в том, чтобы заменить браузер. Браузер и так сообщает, что сайт не открылся. Здесь задача другая — разложить проблему по слоям и дать пользователю более понятную картину, где именно произошёл сбой и на что это похоже.

Утилита сравнивает ответы системного DNS и DNS over HTTPS через Cloudflare, проверяет обычное TCP-подключение, запускает TLS-handshake с SNI целевого домена и затем делает HTTP-запрос. Вердикт выставляется по первому уровню, на котором возникла ошибка.

 

У проекта есть и ограничения. Пока поддерживается только IPv4. Списки целей жёстко заданы в коде и включают около 20 сайтов на категорию, поэтому инструмент не поймает все частные случаи. Кроме того, это разовая проверка без повторов и долгосрочного мониторинга, хотя JSON-вывод можно использовать в cron для регулярных запусков.

RSS: Новости на портале Anti-Malware.ru