В репозитории 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 показали, как злоумышленники могут внедрять вредоносный код, получать доступ к локальным библиотекам и управлять системой даже после удаления зараженных пакетов.

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

📢 Важно! Для защиты программного обеспечения необходимо усилить контроль над цепочкой поставок, проверять пакеты перед установкой и внедрять надежные меры кибербезопасности! 🚨