В популярних пакетах JavaScript виявили загрозу для криптогаманців

Зловмисники отримали доступ до акаунта відомого розробника на платформі NPM і вбудували шкідливий код у його пакети. Про це повідомив технічний директор Ledger Шарль Гійоме.

«Сталася масштабна атака на ланцюг постачання: був скомпрометований акаунт авторитетного розробника на NPM. Уражені пакети завантажили вже понад мільярд разів, і це створює загрозу для всієї екосистеми JavaScript», — написав він.

Пізніше з’ясувалося, що йдеться про Джоша Джунона. Він заявив, що став жертвою фішингу: на його пошту прийшов лист нібито від підтримки NPM із вимогою оновити 2FA. Перейшовши за посиланням, розробник відкрив хакерам доступ до популярних пакетів, зокрема Chalk.

Користувач JD повідомив, що першим помітив збій у процесі CI/CD. Під час перевірки він і його колега знайшли «навмисно заплутаний код», який виявився шкідливим.

«Програма шукала криптовалютні гаманці та намагалася викрасти кошти. Виклик функції fetch, через який зламалася збірка, був частиною спроби відправити викрадені дані. Збірка впала лише тому, що версія Node.js не підтримувала fetch. У сучасному середовищі атака могла б залишитися непоміченою», — пояснив він.

Як працював шкідливий код і як захиститися

За словами Гійоме, під найбільшим ризиком опинилися користувачі програмних гаманців. Власники апаратних пристроїв, які підтверджують кожну транзакцію, захищені значно краще.

Засновник DeFi Llama 0xngmi уточнив, що шкідливий код не може миттєво викрасти кошти — користувач у будь-якому випадку має підтвердити транзакцію.

«Якщо сайт використовує заражену залежність npm, хакер може впровадити код і підмінити транзакцію. Наприклад, при натисканні кнопки „обмін“ замість стандартного переказу можна відправити кошти зловмиснику. Однак у гаманці користувач все одно побачить підозрілу операцію і повинен буде її підтвердити», — пояснив він.

JD додав, що шкідливий код підмінював криптоадреси двома методами:

  • Пасивний — якщо гаманець не виявлявся, вірус змінював базові функції браузера і за допомогою алгоритму Левенштейна підставляв максимально схожий адрес із бази зловмисників;
  • Активний — втручався у процес підписання транзакцій і змінював адресу отримувача безпосередньо перед відправкою. Якщо користувач не перевіряв дані вручну, кошти йшли хакерам.

«Метою атаки є викрадення BTC, ETH, SOL, TRX, LTC і BCH. Екран фінального підтвердження — ваша остання лінія оборони. Уважно перевіряйте кожен символ адреси отримувача в застосунку чи на екрані апаратного гаманця перед підтвердженням транзакції», — застеріг керівник розвитку екосистеми Okto Мінал Тукрал.

Розробник під ніком ultra повідомив, що заражені пакети були виправлені 8 вересня о 15:15 UTC.

Інженер під ніком cygaar підтвердив, що команда NPM відключила скомпрометовані версії.

За даними Security Alliance, збитки від атаки наразі обмежилися лише $50.

Нагадаємо, раніше дослідники ReversingLabs виявили шкідливий код у репозиторії NPM, який маскувався під смартконтракти Ethereum.

Читайте ForkLog UA в соціальних мережах

Знайшли помилку в тексті? Виділіть її та натисніть CTRL+ENTER

Матеріали за темою

Ми використовуємо файли cookie для покращення якості роботи.

Користуючись сайтом, ви погоджуєтесь з Політикою приватності.

OK