Хакерство — это не преступление, а любознательность без границ. (автор не известен)

Вредоносные npm-пакеты обходят защиту скриптов установки во время выполнения


Вредоносные npm-пакеты обходят защиту скриптов установки во время выполнения

Продолжающаяся кампания по распространению вредоносных npm-пакетов, включающая пакет indexed-btree, показывает, как злоумышленники обходят защиту цепочки поставок, скрывая вредоносный код в обычном поведении пакета во время выполнения, а не в скриптах установки.

Пакет, обнаруженный исследователями Checkmarx, пытается выдать себя за легитимную библиотеку sorted-btree и уже скачан 2 миллиона раз за неделю.

Эта кампания могла принести злоумышленникам значительную прибыль, поскольку, по данным Checkmarx, они используют кошелек, на котором хранится 109 ETH. Однако в отчете не говорится, что эти средства были получены в результате кражи криптовалюты.

 

Обход новейших мер безопасности

В июне 2026 года GitHub анонсировал набор мер безопасности npm, призванных помочь предотвратить атаки на цепочки поставок, которые с конца 2025 года неоднократно сотрясали экосистемы с открытым исходным кодом.

Одна из ключевых мер безопасности — блокировка скриптов жизненного цикла зависимостей, таких как ‘preinstall’, ‘install ‘ и ‘postinstall,’ без явного разрешения.

Другие меры не позволяют npm автоматически извлекать зависимости из репозиториев Git или с удалённых URL-адресов без разрешения.

Вредоносный пакет indexed-btree обходит эти средства защиты, не используя установочные скрипты, а вместо этого скрывая свой загрузчик в методе BTree.prototype.set() пакета, который выполняется во время работы приложения, когда оно вызывает его с определенным значением ключа.

В результате установка выглядит чистой и не активирует ни один из механизмов проверки npm версии 12.

«Загрузчик вредоносного ПО скрыт в собственном методе библиотеки BTree.prototype.set, который является основной функцией, которую постоянно вызывает каждый пользователь», — объясняет Checkmarx.

«Это запускает»the» sharedLoad.min.js, который содержит скрытую первую стадию вредоносного ПО. Это хорошо продуманный способ обойти стандартные инструменты анализа заражений и большинство статических сканеров «.

Запуск вредоносного по во время выполнения.
Источник: Checkmarx

 

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

Вредоносная программа также опрашивает смарт-контракт Ethereum в тестовой сети Sepolia для получения командно-контрольной информации (C2). Она использует обмен ключами X25519 для получения ключа AES и расшифровки полезной нагрузки второго этапа, хранящейся в контракте.

Когда операторы решают прекратить атаку, вредоносная программа может удалить свои файлы и вредоносный триггер из кода пакета, чтобы замести следы.

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

Фальсифицированная история коммитов
Источник: Checkmarx

 

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

  1. ordered-kv-index (448,184 загрузок)
  2. btree-leaderboard (493,685 загрузок)
  3. priority-slot-queue (402,860 загрузок)
  4. btree-range-store (468,092 загрузок)
  5. btree-core (1,951,274 загрузок)
  6. btree-time-index (425,312 загрузок)
  7. btree-lru-cache (372,185 загрузок)
  8. neighbor-key-map (366,019 загрузок)
  9. sliding-score-window (448,024 загрузок)

 

Разработчикам рекомендуется не полагаться только на сканирование во время установки, а также использовать поведенческий анализ во время выполнения.

Тем, кто установил indexed-btree или любой из перечисленных выше пакетов, следует сменить все пароли и восстановить среду разработки из безопасной резервной копии.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Редактор: AndreyEx

Если статья понравилась, поделитесь ей в социальных сетях

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

19 + девять =

Это может быть вам интересно


Спасибо!

Теперь редакторы в курсе.

Прокрутить страницу до начала