🚨 Хакери атакували екосистему JavaScript: масштабна підміна криптогаманців закінчилася крадіжкою всього $50.
В екосистемі JavaScript стався один з найгучніших інцидентів останніх років: зловмисники зламали акаунт розробника на NPM — найбільшому репозиторії пакетів для мови JavaScript — і впровадили шкідливий код у кілька популярних бібліотек. Ці бібліотеки використовують мільйони розробників у всьому світі, а загальна кількість завантажень перевищила мільярди.
Тут, до речі, можна придбати легендарні апаратні гаманці для новачків з усіма базовими функціями!
Мета шкідливого коду була одночасно простою і витонченою: непомітно підміняти криптовалютні адреси користувачів «на льоту» під час транзакцій, щоб кошти замість законних одержувачів надходили безпосередньо хакерам.
Однак підсумок атаки виявився несподіваним: за даними Security Alliance, загальна шкода склала лише близько $50 у ETH та мемкоінах. Здавалось би, сума мізерна на тлі масштабів зараження, але фахівці застерігають — небезпека не зникла. Шкідливі пакети могли потрапити в тисячі проєктів, і вразливість залишається.
Як сталася атака
Технічний директор Ledger Чарльз Гійеме пояснив, що йдеться про класичну атаку на ланцюжок поставок (supply chain attack).

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

«Зловмисник впровадив у код шкідливу програму, яка шукає і краде криптовалюту. Виклик функції fetch, через який зламалася наша збірка, був спробою цієї програми відправити вкрадені дані. Збірка провалилася лише тому, що версія Node.js була застарілою і не підтримувала функцію fetch. У більш сучасному середовищі атака могла б залишитися непоміченою.»
В результаті вони отримали доступ до популярних пакетів, включно з бібліотекою Chalk, широко використовуваною в Node.js-проєктах. У код було впроваджено шкідливий код, замаскований під складні функції, що ускладнювало його виявлення.
Розробник під ніком JD розповів, що перші ознаки атаки проявилися як збій у системі CI/CD. Команда звернула увагу на «дивний і навмисно заплутаний код», зокрема виклик функції fetch, який ламав збірку через застарілу версію Node.js. Іронія долі полягає в тому, що саме ця несумісність допомогла швидше виявити проблему: у більш сучасному середовищі шкідливий код працював би непомітно і залишився б непоміченим.
Як працював шкідливий код
За словами фахівців, шкідливий код мав два режими роботи:
- Пасивний сценарій: якщо сайт не виявляв підключеного гаманця, код змінював базові функції браузера і підміняв криптоадреси. Щоб користувач не помітив підміни, застосовувався алгоритм Левенштейна — адреси підбирали максимально схожі на оригінал.
- Активний сценарій: при проведенні транзакції шкідливий код втручався в процес підписання і на останньому етапі підміняв адресу одержувача. Якщо користувач не перевіряв дані вручну, кошти йшли хакерам.
Атака була спрямована на популярні криптовалюти: BTC, ETH, SOL, TRX, LTC та BCH.

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


«Хакер може впровадити заражений код на будь-який сайт, який використовує зламану залежність npm. Наприклад, коли ви натискаєте кнопку „обмін“, шкідливий код може підмінити транзакцію і відправити гроші хакеру. Однак у гаманці ви все одно побачите цю підозрілу операцію і повинні будете її схвалити — ваші кошти не зникнуть миттєво.»
Хто в зоні ризику та як захиститися
За словами Чарльза Гійеме, найбільшому ризику піддаються користувачі програмних гаманців. Власники апаратних пристроїв у більшій безпеці, оскільки кожну дію вони підтверджують фізично.
Керівник відділу розвитку екосистеми Okto Мінал Тукрал підкреслив: «Перед підтвердженням транзакції уважно перевіряйте адресу одержувача. Навіть одне неправильне число або символ можуть означати втрату коштів.»
Рекомендації експертів:
- уважно перевіряти транзакції перед підтвердженням;
- використовувати апаратні гаманці для зберігання значних сум;
- не переходити за підозрілими посиланнями;
- оновлювати пакети тільки з перевірених джерел і слідкувати за новинами про безпеку.
Реакція спільноти
Розробник ultra повідомив, що заражені пакети були виправлені 8 вересня о 15:15 UTC. Інженер cygaar підтвердив, що команда NPM відключила скомпрометовані версії.


Хоча фінансовий збиток був «мінімальним», інцидент викликав серйозне обговорення в спільноті: він показав, наскільки уразлива глобальна екосистема JavaScript перед атаками на ланцюжок поставок. Достатньо зламати один авторитетний акаунт, щоб поставити під загрозу мільйони проєктів і користувачів.
Раніше дослідники ReversingLabs уже попереджали про подібні методи: шкідливий код у NPM може використовувати смарт-контракти Ethereum для маскування команд і завантаження вірусів.
🕵️♂️ Висновок
Цього разу хакери вкрали всього $50, але сама атака стала тривожним сигналом. Уразливості в ланцюжку поставок — це бомба уповільненої дії, і кожний новий інцидент підвищує ризик глобальних наслідків.
Тут, до речі, можна придбати легендарні апаратні гаманці для новачків з усіма базовими функціями!
ВІДМОВА ВІД ВІД ВІДПОВІДАЛЬНОСТІ: Усі матеріали, представлені на цьому сайті (https://wildinwest.com/), включно з вкладеннями, посиланнями або матеріалами, на які посилається компанія, призначено винятково для інформаційних і розважальних цілей, і їх не слід розглядати як фінансову консультацію. Матеріали третіх осіб залишаються власністю їхніх відповідних власників.