30 секунд

Checkmarx обнаружила вредоносный npm-пакет indexed-btree, имитирующий sorted-btree. BleepingComputer 20 сентября сообщила, что загрузчик спрятан в BTree.prototype.set() и срабатывает во время работы приложения при определённом ключе. Это обход защиты, ограничивающей установочные сценарии: код запускается позже. Исследователи также описали сбор системных данных и получение следующей нагрузки через контракт в тестовой сети Ethereum; число загрузок не равно числу заражений.

Подробнее

Кампания indexed-btree использует обычное поведение библиотеки вместо установочных скриптов. По сообщению Checkmarx, пакет выдаёт себя за sorted-btree, но в метод BTree.prototype.set() помещён запуск загрузчика при специальном значении ключа. Для выполнения нужен вызов во время работы приложения, а не только установка зависимости.

Защита установки заканчивается до вызова

Описанные меры npm блокируют preinstall, install и postinstall без явного разрешения. Загрузчик indexed-btree избегает этих этапов и обращается к скрытому первому уровню кода из обычного метода. Затем собираются сведения об архитектуре, имени машины, CPU, памяти и времени работы.

Для получения управления используется контракт в тестовой сети Sepolia, а зашифрованная следующая нагрузка извлекается по описанной криптографической схеме. Исследователи отмечают подготовленный репозиторий и историю изменений, создающие впечатление нормального проекта. Внешняя аккуратность этой истории не подтверждает безопасное поведение исполняемого кода.

Разбор NewsAndNext

Что это значит

Момент выполнения — отдельная граница защиты

Случай indexed-btree показывает разницу между запретом установочного сценария и контролем работы установленной зависимости. Проверка первого момента не охватывает второй, если вредоносный путь спрятан в обычном методе. Поэтому отсутствие запуска при установке не означает, что библиотека никогда не выполнит скрытый код.

Репозиторий с историей изменений помогал имитировать легитимность проекта. Этот сигнал происхождения стоит отделять от результата анализа кода. Заявленные загрузки отражают обращение к пакету, но без проверки исполнения и специального триггера не становятся числом пострадавших систем.