Supply chain атака на npm-пакет Axios: як зламали один з найпопулярніших JavaScript-модулів

CyberSecureFox

Один із наймасштабніших інцидентів у світі JavaScript останнього часу пов’язаний з бібліотекою Axios — npm-пакетом, який завантажують близько 100 мільйонів разів на тиждень. Атака не експлуатувала технічну уразливість у коді, а була побудована навколо цільової соціальної інженерії проти мейнтейнера, що перетворило її на класичний приклад складної software supply chain операції.

Соціальна інженерія проти мейнтейнера Axios

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

Наступним кроком стало запрошення розробника в фіктивний Slack-workspace, оформлений як внутрішня корпоративна мережа. Там були логотипи компанії, тематичні канали, посилання на справжні публікації з LinkedIn, що створювало відчуття повністю легітимного робочого середовища та знижувало рівень недовіри.

Підроблений Microsoft Teams та приховане встановлення RAT

Пізніше мейнтейнера запросили на онлайн-зустріч у Microsoft Teams. Під час дзвінка на екрані з’явилося нібито «системне» повідомлення про помилку, пов’язану з застарілим компонентом на робочому місці. Запропоноване «оновлення» насправді встановило на пристрій засіб віддаленого доступу (RAT) — шкідливе ПЗ, яке дозволяє атакувальнику непомітно керувати системою та викрадати дані.

Ланцюжок компрометації: від RAT до троянізованих релізів Axios

Отримавши віддалений контроль, зловмисники викрали облікові дані npm, які використовувалися для публікації нових версій Axios. Використовуючи ці повноваження, вони випустили дві шкідливі збірки пакета — 1.14.1 та 0.30.4, до коду яких був доданий троян під назвою WAVESHAPER.V2.

Дослідники відзначають, що тактика атаки майже повністю збігається з операціями північнокорейського угруповання UNC1069 (BlueNoroff), відомого атаками на криптовалютні компанії та фінансові організації. Кампанія детально описана в звітах Huntress та Kaspersky під кодовою назвою GhostCall, де раніше основними цілями були засновники криптопроєктів, венчурні фонди та публічні фігури.

Важлива зміна полягає в тому, що фокус атаки змістився на мейнтейнерів великих open-source проєктів. Компрометація одного розробника з доступом до популярного пакета відкриває шлях до ураження тисяч застосунків, які прямо або опосередковано використовують цей пакет у своєму ланцюгу залежностей.

Ризики для JavaScript-екосистеми та безпеки ланцюга поставок ПЗ

Сучасні JavaScript-застосунки покладаються на десятки, а інколи й сотні залежностей із npm. Axios фактично є де-факто стандартом для HTTP-запитів у фронтенд- та бекенд-розробці. Тому компрометація такого пакета створює значний радіус ураження: шкідливий код поширюється як напряму, так і через транзитивні залежності, коли Axios вбудований до інших бібліотек.

Через механізм автоматичного встановлення та оновлення залежностей реально оцінити масштаб впливу подібних інцидентів надзвичайно складно. Аналогічні проблеми раніше проявлялися у гучних кейсах, таких як атака на ланцюг поставок SolarWinds чи вразливість Log4Shell у Java-екосистемі, де вразливі компоненти потрапляли у критичні системи через каскадні залежності.

У випадку npm-довкілля додатковий ризик створює високий рівень довіри до центральних репозиторіїв та мінімальний ручний контроль встановлених пакетів. Якщо скомпрометовано процес публікації, шкідливий реліз може швидко опинитися в CI/CD-пайплайнах стартапів, фінтех-компаній і великих корпорацій без жодних попереджувальних сигналів.

Як відповів мейнтейнер Axios і що варто зробити організаціям

Після виявлення інциденту мейнтейнер Axios реалізував низку заходів посиленої безпеки. По-перше, був виконаний повний «reset» пристроїв та облікових записів: перевстановлення робочих машин, ротація паролів і токенів npm, перевипуск ключових доступів, щоб виключити приховану присутність зловмисників.

По-друге, було запроваджено модель «immutable releases» — опубліковані версії пакета більше не можуть змінюватися заднім числом. Це знижує ризик непомітної підміни вже випущених артефактів та полегшує аудит історії релізів.

По-третє, процес публікації переведено на OIDC-flow замість статичних токенів. OpenID Connect дозволяє видавати короткоживучі, контекстно обмежені токени, які важче повторно використати після компрометації, що істотно скорочує вікно можливостей для атакувальника.

Додатково були посилені GitHub Actions згідно з best practices: мінімізація прав (principle of least privilege), жорсткіші обмеження контекстів виконання, перевірка цілісності артефактів та ретельніша валідація дій, що виконуються автоматично в CI/CD.

Цей випадок підкреслює, що захист open-source сьогодні неможливо звести лише до аналізу коду. Потрібно системно зміцнювати процеси розробки та поставки ПЗ: впроваджувати багатофакторну автентифікацію та апаратні ключі для критичних акаунтів, будувати пайплайни за принципом «zero trust», регулярно сканувати залежності спеціалізованими інструментами, вести програму управління вразливостями та навчати розробників розпізнавати витончені сценарії соціальної інженерії.

Інцидент з Axios показує, що навіть зрілі та широко використовувані open-source-проєкти вразливі до таргетованих supply chain атак. Щоб зменшити ризики, організаціям варто вже зараз переглянути політики безпеки ланцюга поставок ПЗ, посилити контроль над npm-залежностями та інтегрувати практики захищеного SDLC у щоденну роботу команд розробки.

Залишити коментар

Цей сайт використовує Akismet для зменшення спаму. Дізнайтеся, як обробляються дані ваших коментарів.