Вредоносные npm-пакеты обходят защиту, прячась в обычном коде библиотеки
Исследователи компании Checkmarx описали продолжающуюся кампанию во вредоносными пакетами npm, авторы которой научились обходить свежие механизмы защиты цепочки поставок. Ключевой пример — пакет indexed-btree, выдающий себя за легитимную библиотеку sorted-btree. Он уже набрал два миллиона загрузок в неделю.
Как обходят защиту
В июне 2026 года GitHub представил набор мер безопасности для npm — ответ на череду атак на open-source-экосистему, начавшуюся в конце 2025 года. Среди прочего блокируются скрипты жизненного цикла зависимостей (preinstall, install, postinstall), если они не одобрены явно, а также запрещена автоматическая загрузка зависимостей из Git-репозиториев и по внешним URL без разрешения.
Авторы indexed-btree обошли эти ограничения, вовсе отказавшись от скриптов установки. Вредоносный загрузчик спрятан внутри метода BTree.prototype.set() — той самой функции, которую приложение постоянно вызывает во время работы. При установке пакет выглядит чистым и не запускает ни один из механизмов одобрения npm. По словам Checkmarx, приём хорошо продуман: он позволяет проскользнуть мимо стандартных инструментов анализа заражения и большинства статических сканеров.
Что делает вредонос
Вызов метода с определённым значением ключа запускает обфусцированную первую стадию. Она собирает данные о системе — архитектуру, имя хоста, процессор, объём памяти, время работы — и передаёт их через жёстко прописанные каналы Slack и Telegram. Дальше вредонос обращается к смарт-контракту Ethereum в тестовой сети Sepolia за командами C2: с помощью обмена ключами X25519 выводится ключ AES и расшифровывается вторая стадия, хранящаяся в контракте. Завершая атаку, операторы могут удалить файлы и вырезать вредоносный триггер из кода пакета, заметая следы.
Злоумышленники тщательно маскировались: создали правдоподобный репозиторий на GitHub, наполнили историю коммитов и оформили аккаунт разработчика. По данным Checkmarx, их кошелёк содержит 109 ETH, хотя отчёт не утверждает, что эти средства получены от кражи криптовалюты.
Не только один пакет
Checkmarx обнаружила и удалила из npm ещё девять связанных пакетов, каждый с сотнями тысяч загрузок, а btree-core — почти два миллиона. Среди них ordered-kv-index, btree-leaderboard, priority-slot-queue, btree-range-store, btree-time-index, btree-lru-cache, neighbor-key-map и sliding-score-window.
Специалисты советуют не полагаться только на проверку при установке и добавить поведенческий анализ во время выполнения. Тем, кто установил любой из перечисленных пакетов, рекомендуют сменить все секреты и восстановить рабочее окружение из безопасной резервной копии.
Источник: Bleeping Computer
Комментарии
Войдите, чтобы комментировать.