Вредоносный npm ушёл из скриптов установки в среду выполнения
💀 Вредоносный npm ушёл из скриптов установки в среду выполнения
Пакет indexed-btree выдает себя за легитимную библиотеку sorted-btree и собирает около двух миллионов загрузок в неделю. По данным bleepingcomputer, Checkmarx вскрыла кампанию, которая обходит июньские меры GitHub: те блокируют preinstall, install и postinstall без явного одобрения.
Загрузчик находится в BTree.prototype.set() — главном методе, который пользователь вызывает постоянно. Обращение с определённым ключом загружает sharedLoad.min.js с обфусцированным первым этапом. Статический анализ и средства анализа распространения меток такой триггер пропускают, установка выглядит чистой.
Дальше — сбор архитектуры, имени хоста, CPU, памяти и времени работы системы с передачей данных через жёстко зашитые Slack и Telegram. C2 работает через смарт-контракт Ethereum в тестовой сети Sepolia: обмен ключами X25519, AES-расшифровка второго этапа. При завершении атаки малварь сама удаляет файлы и вычищает триггер из кода.
Кампания шире одного пакета: Checkmarx сняла с npm ещё девять, включая btree-core (1 951 274 загрузки), btree-leaderboard (493 685), btree-range-store (468 092), ordered-kv-index (448 184). У проекта — легитимный GitHub-репозиторий, связная история коммитов, развитый аккаунт разработчика.
Июньские меры GitHub сработали как сигнал: блокировка скриптов установки заставила малварь перейти в среду выполнения. Это не провал защиты — это адаптация. Проблема в том, что большинство команд до сих пор проверяют зависимости на этапе установки, а не в момент выполнения. Если вы установили indexed-btree или соседние пакеты — смените секреты и выполните чистую пересборку окружения разработки. И вопрос к AppSec: когда вы последний раз смотрели на поведение зависимостей во время выполнения, а не только на хуки установки?
#npm #supplychain #malware #Checkmarx #GitHub
Такие разборы выходят в канале каждый день — коротко и со ссылкой на первоисточник.