Дослідники з безпеки попереджають, що новий тип атаки тихо використовує смартконтракти Ethereum як канали командування та контролю (C2), приховуючи шкідливі програми в на перший погляд безпечних npm JavaScript пастках, спеціально націлених на комп'ютери розробників. Цей метод не лише ускладнює відстеження та видалення, але й використовує незмінність та відкритість блокчейну, що ускладнює блокування для захисників.
ReversingLabs виявила, що два npm пакети під назвою colortoolsv2 та mimelib2 читають специфічні смартконтракти на Ethereum, щоб отримати URL двоступеневого шкідливого завантажувача, а не жорстко кодують інфраструктуру в пакеті.
Цей дизайн зменшує ймовірність статичного виявлення та залишає менше слідів під час перевірки коду. Хоча кількість завантажень цих двох пасток дуже низька (відповідно 7 та 1 раз), їхні атакувальні концепції становлять серйозну загрозу для безпеки ланцюга постачання.
Дослідження показують, що просування цих шкідливих пасток походить з мережі GitHub репозиторіїв, які маскуються під торгових роботів, таких як solana-trading-bot-v2.
Зловмисники через фальшиві зірочки, перебільшену історію комітів та облікові записи маріонеткових утримувачів спонукають розробників ненавмисно встановлювати шкідливі програми.
Цей метод нагадує атаку на домен npm в кінці 2024 року, коли сотні пакетів на етапі встановлення запитували контракти Ethereum, отримували базовий URL, а потім завантажували шкідливі виконувані файли для Windows, Linux, macOS.
Безпекова компанія Checkmarx та Phylum виявили, що основна адреса контракту, яку використовують зловмисники, становить 0xa1b40044EBc2794f207D45143Bd82a1B86156c6b, і через ethers.js викликають getString(address) для отримання останньої адреси C2 сервера.
Ці C2 вузли включають 45.125.67.172:1337 та 193.233.201.21:3001 і будуть змінюватися з часом, щоб уникнути блокування.
Оскільки дані смартконтрактів не можуть бути видалені або змінені, цей спосіб зберігання на блокчейні важче зняти з публікації, ніж традиційний GitHub Gist або хмарне зберігання.
Експерти рекомендують, щоб команда розробників увімкнула параметр --ignore-scripts під час установки npm та в процесі CI, щоб запобігти автоматичному виконанню шкідливих сценаріїв життєвого циклу, а також зафіксувала версії пакетів через файли блокування.
Одночасно слід заблокувати відомі шкідливі IP-адреси та адреси смартконтрактів у брандмауері або безпечному проксі, а також контролювати підозрілі виклики до getString(address) у журналах будівництва.
Офіційний посібник з безпеки Node.js також рекомендує більш ретельну перевірку ідентичності підтримуючих осіб та метаданих пакетів, щоб знизити ризик атак на ланцюг постачання.
Хоча цей інцидент незначно вплинув на обсяги завантажень, він виявив більш приховану та важку для захисту модель атаки — використання Блокчейн як постійного каналу команд, у поєднанні з соціальною інженерією та проникненням у відкриті постачання, що становить тривалу загрозу для розробників та компаній. У майбутньому поєднання шкідливих програм на ланцюгу та традиційних атак на постачання може стати новою нормою в сфері кібербезпеки.