Вредоносный npm-пакет использует смарт-контракт для управления ВПО
Продолжающаяся кампания в экосистеме npm использует вредоносные пакеты, которые запускают полезную нагрузку во время работы приложения, а не через сценарии жизненного цикла preinstall или postinstall. Основной образец, indexed-btree, маскируется под легитимный пакет sorted-btree и, по имеющимся сообщениям, достиг почти двух миллионов загрузок в неделю.
Метаданные пакета не содержат установочного сценария, поэтому одна только установка не запускает вредоносное ПО. Код встроен в метод BTree.prototype.set, который относится к основным функциям библиотеки и с высокой вероятностью вызывается приложениями. Вызов метода загружает обфусцированный компонент первого этапа sharedLoad.min.js.
Вредоносное ПО собирает сведения об архитектуре операционной системы, имени хоста, процессоре, объёме оперативной памяти и времени непрерывной работы системы. Собранные данные отправляются на адреса в Slack и Telegram, которыми управляют злоумышленники.
Управление через блокчейн
Для управления вредоносное ПО использует смарт-контракт, развернутый в тестовой сети Sepolia Ethereum. Оно не обращается к традиционному домену или фиксированному IP-адресу, а опрашивает функции получения и изменения данных контракта. Через блокчейн злоумышленник может обновлять ссылки на инфраструктуру.
Смарт-контракт также участвует в доставке полезной нагрузки второго этапа. Загрузчик генерирует пару ключей X25519 и получает из контракта публичный ключ X25519 атакующего. Затем он вычисляет общий секрет ECDH, использует полученный материал для генерации ключа AES и расшифровывает два шифротекста, хранящихся в блокчейне. После объединения расшифрованные блоки образуют полезную нагрузку второго этапа.
Сокрытие выполнения и очистка
Вредоносное ПО содержит функции очистки, предназначенные для снижения обнаружения и закрепления кампании. Оно может удалять связанные файлы, а также код запуска из основной функции прототипа пакета.
Кампания использует выполнение кода, встроенного в обычные функции библиотеки. Поэтому блокировка сценариев жизненного цикла npm не предотвращает запуск вредоносных пакетов, если их полезная нагрузка активируется при импорте или использовании библиотеки во время работы приложения.
Отчет получен из сервиса CTT Report Hub. Права на отчет принадлежат его владельцу.
Ознакомиться подробнее с отчетом можно по ссылке.



