Атака на ланцюг постачання завдала нищівного удару по npm: акаунт обслуговувача axios був викрадений, щотижневі 300 млн завантажень — усі у стані тривоги

供應鏈攻擊重挫npm

Дослідницька установа з безпеки Socket 31 березня виявила активну атаки на ланцюжок постачання на ядровий пакет npm axios. Зловмисник зламав npm-акаунт головного супровідника axios jasonsaayman, опублікував шкідливі версії та ін’єктував шкідливі залежності, щоб розгорнути кросплатформенний бекдор для віддаленого доступу (RAT). Цільові системи: macOS, Windows і Linux.

Розбір атакуючого ланцюга: повний процес від компрометації акаунта до самознищення RAT

axios供應鏈攻擊 (Джерело: Socket)

Ця подія є ретельно спланованою багатокроковою атакою на ланцюжок постачання. Зловмисник спершу зламав акаунт супровідника, змінив електронну пошту на ifstap@proton.me, а потім, використовуючи вкрадені облікові дані доступу npm, вручну опублікував шкідливі версії, повністю обходячи офіційний процес публікації axios через GitHub Actions + OIDC Trusted Publisher. Дві шкідливі версії не містили відповідних комітів, міток або записів про реліз у GitHub-репозиторії.

Підготовка зловмисника також була ретельною: контроль за іншим акаунтом (nrwise, nrwise@proton.me) приблизно за 18 годин до того дозволив спершу опублікувати чисту приманку plain-crypto-js@4.2.0 для створення історії, а потім 30 березня о 23:59 UTC опублікувати шкідливу версію 4.2.1.

Після виконання шкідливого postinstall hook розгортальник RAT (setup.js) підключився до командно-контрольного сервера sfrclak[.]com:8000, щоб завантажити платформозалежні корисні навантаження. Після завершення розгортальник самоусунувся та замінив package.json на чистий підставний файл (stubs), через що під час подальшої перевірки у директорії node_modules неможливо виявити сліди зараження.

Ключові технічні показники атаки (IOC)

Версії шкідливих пакетів: axios@1.14.1, axios@0.30.4, plain-crypto-js@4.2.1

C2-сервер: sfrclak[.]com / 142.11.206.73 / [.]com:8000

Сліди зараження на macOS: /Library/Caches/com.apple.act.mond

Сліди зараження на Windows: %PROGRAMDATA%\wt.exe, %TEMP%\6202033.vbs

Сліди зараження на Linux: /tmp/ld.py

Акаунт зловмисника: jasonsaayman (зламано), nrwise (акаунт, створений атакувальником)

Невідкладні дії: як підтвердити ураження та кроки з усунення

Оскільки розгортальник, що здійснював ін’єкцію, після виконання самознищується, неможливо підтвердити зараження шляхом перевірки директорії node_modules. Правильний підхід — безпосередньо перевірити lockfile (package-lock.json або yarn.lock) на наявність записів версій axios@1.14.1 або axios@0.30.4.

Відкат безпечної версії: користувачам 1.x знизити версію до axios@1.14.0; користувачам 0.x — до axios@0.30.3, а також після видалення каталогу plain-crypto-js з node_modules повторно встановити залежності.

Якщо в системі буде виявлено будь-які сліди зараження RAT (com.apple.act.mond, wt.exe, ld.py), не намагайтеся видалити їх «на місці». Потрібно відновити систему з відомого нормального стану та негайно зробити ротацію всіх можливих компрометованих облікових даних, включно з токенами npm, AWS access key, SSH private key, ключами конфігурації CI/CD та значеннями у файлах .env.

Для розробників у сфері криптовалют і Web3 axios є ключовою HTTP-бібліотекою для багатьох DeFi-протоколів, фронтендів, інструментів керування криптоактивами та сервісів запитів ончейн-даних. Компрометоване середовище розробки може призвести до витоку приватних ключів гаманця, seed-фраз (мнемонік) або API-ключів для атакувальника. Рекомендовано першочергово переглянути та зробити ротацію всіх чутливих облікових даних.

Часті запитання

Як підтвердити, чи встановлено уражену версію axios?

Оскільки розгортальник, що здійснював ін’єкцію, після виконання самознищується, неможливо підтвердити зараження шляхом перевірки директорії node_modules. Слід безпосередньо перевірити lockfile на наявність записів axios@1.14.1 або axios@0.30.4 і перевірити, чи існує в node_modules каталог plain-crypto-js. Можна виконати npm list axios або напряму здійснити пошук рядків версій у lockfile.

Який особливий вплив ця атака ланцюжка постачання має на криптовалютних та Web3-розробників?

axios — поширена HTTP-бібліотека для Web3-фронтендів і інтерфейсів DeFi-протоколів. Компрометоване середовище розробки може розкрити атакувальнику чутливі облікові дані, зокрема приватні ключі, seed-фрази, API-ключі бірж або ключі конфігурації CI/CD. Відповідним розробникам слід першочергово виконати аудит і ротацію всіх крипто-залежних облікових даних, які могли бути скомпрометовані.

Як запобігти майбутнім атакам на ланцюжок постачання npm?

Основні запобіжні заходи включають: у CI/CD завжди використовувати npm ci --ignore-scripts, щоб вимкнути postinstall hook; фіксувати версії для критично важливих пакетів залежностей; регулярно переглядати журнали змін lockfile; а також розгортати інструменти Socket, Aikido тощо для моніторингу в реальному часі залежностей на предмет шкідливого ПЗ.

Застереження: Інформація на цій сторінці може походити від третіх осіб і не відображає погляди або думки Gate. Вміст, що відображається на цій сторінці, є лише довідковим і не є фінансовою, інвестиційною або юридичною порадою. Gate не гарантує точність або повноту інформації і не несе відповідальності за будь-які збитки, що виникли в результаті використання цієї інформації. Інвестиції у віртуальні активи пов'язані з високим ризиком і піддаються значній ціновій волатильності. Ви можете втратити весь вкладений капітал. Будь ласка, повністю усвідомлюйте відповідні ризики та приймайте обережні рішення, виходячи з вашого фінансового становища та толерантності до ризику. Для отримання детальної інформації, будь ласка, зверніться до Застереження.
Прокоментувати
0/400
Немає коментарів