Компанія Reversing Labs повідомила про виявлення критичної загрози безпеці в екосистемі npm. Дослідники ідентифікували два шкідливі пакети, які використовують витончений механізм для компрометації легітимних бібліотек шляхом впровадження персистентного бекдору. Особливу небезпеку становить здатність шкідливого коду зберігатися в системі навіть після видалення початкових малваре-пакетів.
Технічний аналіз механізму атаки
Виявлені пакети ethers-provider2 та ethers-providerz реалізують багатоетапний механізм зараження. Перший пакет базується на популярній бібліотеці ssh2, але містить модифікований install.js скрипт. При інсталяції відбувається завантаження додаткового шкідливого навантаження з віддаленого сервера, яке після виконання автоматично видаляється для приховування слідів активності.
Особливості процесу компрометації системи
На другому етапі малваре перевіряє наявність легітимного пакету ethers. При його виявленні відбувається підміна оригінального файлу provider-jsonrpc.js на шкідливу версію. Модифікований компонент завантажує додаткове навантаження, яке встановлює прихований реверс-шелл через замаскований SSH-клієнт, забезпечуючи зловмисникам віддалений доступ до системи.
Аналіз варіацій шкідливого ПЗ
Другий виявлений пакет ethers-providerz використовує схожу техніку атаки, але націлений на бібліотеку @ethersproject/providers. Кінцевою метою також є встановлення реверс-шелла з підключенням до командного сервера на адресі 5[.]199[.]166[.]1:31337. Примітно, що ранні версії цього пакета містили помилки реалізації, через що були видалені з репозиторію.
Рекомендації щодо захисту та виявлення загроз
Для протидії виявленій загрозі експерти Reversing Labs розробили спеціальне YARA-правило, яке дозволяє детектувати сліди цієї шкідливої кампанії. Додатково були ідентифіковані потенційно пов’язані пакети: reproduction-hardhat та @theoretical123/providers, які потребують детального аналізу.
Цей інцидент демонструє зростаючу складність атак на ланцюжки поставок програмного забезпечення та підкреслює критичну важливість комплексного підходу до безпеки розробки. Рекомендується впроваджувати автоматизовані інструменти перевірки залежностей, регулярно проводити аудит використовуваних пакетів та дотримуватися принципу мінімальних привілеїв при роботі з зовнішніми бібліотеками. Особливу увагу слід приділяти перевірці нових або маловідомих пакетів перед їх інтеграцією в проєкти.