
В репозитории NPM обнаружены пакеты с скрытым вредоносным кодом
🔍 Киберпреступники используют все более сложные методы для размещения вредоносного кода в репозитории NPM. Хотя в 2023–2024 годах наблюдалось снижение числа вредоносных программ, в 2024 году эта тенденция не сохраняется.
Недавно исследователи безопасности выявили два пакета в NPM – ethers-provider2 и ethers-providerz. Эти пакеты искусно скрывают свои вредоносные намерения, используя методы, которые могут ввести разработчиков в заблуждение. Они позволяют злоумышленникам получить удаленный контроль над системой жертвы, создавая reverse shell (обратную оболочку) в локальном окружении пользователя.
Эти вредоносные пакеты нацелены на локально установленную библиотеку ethers. Их используют как загрузчики (downloaders), чтобы скачивать дополнительные вредоносные файлы и исполнять их на зараженной системе.
Заражение проходит в три основных этапа:
1️⃣ Загрузка вредоносного кода при установке – модифицированный install.js скачивает вторую вредоносную стадию с удаленного сервера и тут же удаляет себя, чтобы скрыть следы.
2️⃣ Модификация библиотеки ethers – файл provider-jsonrpc.js заменяется вредоносной версией, которая скачивает и запускает третий этап атаки. Также создается файл loader.js, который повторяет «заплатку» и обеспечивает постоянное выполнение вредоносного кода.
3️⃣ Создание обратной оболочки (reverse shell) – этот процесс позволяет атакующему удаленно управлять системой жертвы даже после удаления зараженного NPM-пакета.
ethers-provider2 – маскировка под ssh2
Пакет ethers-provider2 маскируется под популярный ssh2, но содержит вредоносный код в install.js. При установке он загружает вторую стадию вредоносного кода и модифицирует библиотеку ethers, добавляя туда вредоносные скрипты.
Самое опасное в этом пакете – он продолжает работать даже после удаления из системы, оставляя злоумышленникам полный доступ к устройству.
ethers-providerz – аналогичная угроза
Пакет ethers-providerz действовал аналогичным образом, имея три версии. Первая версия, вероятно, была тестовой, а последующие две содержали почти идентичный вредоносный код, как в ethers-provider2.
Однако в его install.js были ошибки в путях к файлам, что, возможно, не позволило полностью заразить библиотеку @ethersproject/providers. Тем не менее, механизм загрузки вредоносного кода и создание loader.js были активны.
Другие вредоносные пакеты
Исследователи также обнаружили дополнительные пакеты, которые могли быть частью этой атаки:
🔹 reproduction-hardhat
🔹 @theoretical123/providers
Все эти пакеты были удалены из NPM, но угроза подобных атак остается актуальной.
Чем опасны вредоносные NPM-пакеты?
🔴 Они могут:
✔ Взломать локальные библиотеки и создать обратную оболочку (reverse shell).
✔ Инфицировать популярные пакеты и распространять вредоносный код среди разработчиков.
✔ Нарушить безопасность цепочки поставок, создавая угрозу для компаний и пользователей.
✔ Красть конфиденциальные данные, включая пароли и API-ключи.
Эта атака опасна не только для разработчиков, но и для конечных пользователей, так как зараженный код может попасть в программные продукты, которыми пользуются миллионы людей.
Как защититься от подобных атак?
✅ Будьте осторожны при установке NPM-пакетов
– Не устанавливайте неизвестные пакеты без проверки.
– Используйте только надежные и проверенные библиотеки.
✅ Проверяйте источники пакетов
– Используйте команду npm audit
для анализа безопасности зависимостей.
– Проверяйте GitHub-репозиторий и документацию перед установкой.
✅ Анализируйте код перед установкой
– Проверяйте файлы package.json
и install.js
на наличие подозрительного кода.
✅ Используйте автоматизированные инструменты безопасности
– Snyk, Dependabot, ReversingLabs, npm audit
помогут выявить вредоносные зависимости.
✅ Изолируйте окружение
– Тестируйте пакеты в песочнице перед развертыванием в рабочей среде.
– Используйте контейнеры, например, Docker, чтобы ограничить влияние вредоносного кода.
Хотя общее количество вредоносных пакетов в NPM снизилось, их сложность растет. Вредоносные пакеты ethers-provider2 и ethers-providerz показали, как злоумышленники могут внедрять вредоносный код, получать доступ к локальным библиотекам и управлять системой даже после удаления зараженных пакетов.
Поэтому разработчикам, компаниям и пользователям необходимо проявлять бдительность и регулярно проверять безопасность своих зависимостей.
📢 Важно! Для защиты программного обеспечения необходимо усилить контроль над цепочкой поставок, проверять пакеты перед установкой и внедрять надежные меры кибербезопасности! 🚨