Одну из самых популярных JavaScript-библиотек для работы с HTTP‑запросами, Axios, использовали как точку входа в цепочку поставок ПО. Google Threat Intelligence Group официально связала компрометацию npm‑пакета Axios с финансово мотивированной северокорейской группировкой UNC1069, специализирующейся на атаках на криптовалютный сектор и разработчиков.
Как прошла supply chain-атака на npm-пакет Axios
Злоумышленники получили контроль над аккаунтом мейнтейнера в npm и опубликовали две троянизированные версии библиотеки: 1.14.1 и 0.30.4. Вместо прямого изменения исходного кода Axios они добавили в зависимости новый пакет под названием plain-crypto-js, в котором и находилась основная вредоносная функциональность.
Ключевая особенность атаки — использование механизма postinstall в файле package.json вредоносной зависимости. После установки скомпрометированной версии Axios npm автоматически запускает скрипт postinstall, что позволяет незаметно выполнить произвольный код. Для разработчика установка выглядит как обычное обновление пакета, тогда как в фоновом режиме запускается цепочка заражения.
Механизм заражения: SILKBELL и кроссплатформенный бэкдор
Пакет plain-crypto-js выступал в роли «транспортного контейнера» для обфусцированного JavaScript-дроппера SILKBELL (файл setup.js). Этот дроппер подключался к удалённому серверу и загружал следующий этап атаки в зависимости от операционной системы жертвы: PowerShell‑малварь для Windows, Mach-O бинарник на C++ для macOS и Python‑бэкдор для Linux.
После выполнения своих задач дроппер инициировал самоочистку: удалял следы своего присутствия и подменял package.json у plain-crypto-js на «чистую» версию без postinstall‑хука. Это значительно осложняет форензику и ретроспективное расследование инцидента, так как прямые артефакты вредоносной зависимости исчезают.
UNC1069 и эволюция бэкдора WAVESHAPER.V2
Аналитики Google GTIG и Mandiant оценили основной бэкдор, доставляемый через эту цепочку, как новую версию инструмента, который они отслеживают под названием WAVESHAPER.V2. Ранее похожий C++‑бэкдор WAVESHAPER уже связывали с операциями UNC1069 против криптовалютных организаций, а Elastic Security Labs первой указала на функциональные совпадения между нынешней атакой и предыдущими кампаниями.
По данным исследователей, WAVESHAPER.V2 представляет собой эволюцию оригинального WAVESHAPER: он передаёт данные в формате JSON, собирает дополнительную системную информацию и поддерживает расширенный набор команд, сохраняя при этом характерные черты протокола управления и одинаковое поведение опроса C2‑сервера с интервалом около 60 секунд. Оба варианта динамически принимают адрес C2 через аргументы командной строки, используют редкую строку User-Agent и выгружают дополнительные полезные нагрузки во схожие временные директории (например, /Library/Caches/com.apple.act.mond).
UNC1069 действует как минимум с 2018 года и специализируется на операциях, направленных на получение финансовой выгоды, в том числе на кражу криптовалюты. Тот факт, что в актуальной атаке использованы заранее подготовленные полезные нагрузки под три основные платформы, указывает на высокий уровень подготовки и ориентацию на массовое заражение разработческих сред.
Масштаб угрозы для экосистем npm, PyPI и NuGet
Axios — один из наиболее широко применяемых HTTP‑клиентов в экосистеме JavaScript, и компрометация его цепочки поставок потенциально затрагивает множество CI/CD‑конвейеров, внутренних инструментов и пользовательских приложений. По оценке экспертов, данная операция была спроектирована как шаблонная, масштабируемая кампания, а не единичный инцидент: быстрый выпуск заражённых версий в обеих ветках релизов (менее чем за час), кроссплатформенные полезные нагрузки и встроенные механизмы сокрытия подтверждают этот вывод.
В отрасли уже накоплен негативный опыт supply chain‑атак: от кейса с пакетом event-stream в npm до инцидента с SolarWinds в корпоративном сегменте. Текущая кампания логично продолжает тренд смещения фокуса злоумышленников с «конечных пользователей» на разработчиков и DevOps, где компрометация одного пакета способна повлиять на тысячи проектов. Указание на возможное появление аналогичных вредоносных пакетов в PyPI и NuGet подтверждает, что цель атакующих — максимальный охват экосистем и языков.
Рекомендации по защите разработчиков и организаций
Экспертные рекомендации по снижению рисков включают несколько обязательных шагов для команд разработки и безопасности:
1. Аудит зависимостей и артефактов сборки. Проверить дерево зависимостей на наличие скомпрометированных версий Axios (1.14.1 и 0.30.4), а также наличие пакета plain-crypto-js в каталоге node_modules. При обнаружении — выполнить откат на заведомо безопасные версии и пересобрать артефакты.
2. Фиксация версий и контроль обновлений. Закрепить используемую версию Axios в package-lock.json или аналогичных механизмах lock‑файлов, чтобы предотвратить незапланированные обновления. Использовать частные прокси‑репозитории и зеркала с политиками доверия и дополнительной проверкой пакетов.
3. Блокировка инфраструктуры злоумышленников. Добавить в блок-листы домен sfrclak[.]com и IP‑адрес 142.11.206[.]73. Провести поиск сетевой активности и логов на предмет обращений к этим ресурсам и других подозрительных C2‑паттернов.
4. Реагирование на инцидент. Изолировать потенциально затронутые системы, завершить подозрительные процессы, выполнить полное обновление и проверку окружений разработчиков и CI/CD. Все учетные данные (токены репозиториев, ключи CI, пароли к реестрам пакетов и т.д.), которые могли быть доступны с заражённых машин, следует рассматривать как скомпрометированные и немедленно ротировать.
5. Укрепление процессов безопасности разработки. Внедрить регулярный анализ зависимостей (SCA), формирование и проверку SBOM, обязательное использование многофакторной аутентификации для всех аккаунтов в npm, PyPI, NuGet и Git‑репозиториях. Минимизировать уровень прав у технических учётных записей и автоматизированных агентов.
Инцидент с Axios демонстрирует, что даже зрелые и популярные open source‑проекты уязвимы перед целевыми supply chain‑атаками. Организациям стоит рассматривать безопасность цепочки поставок ПО как неотъемлемую часть стратегии кибербезопасности: усиливать защиту учетных записей мейнтейнеров, внедрять инструменты мониторинга зависимостей и регулярно пересматривать процессы DevSecOps. Чем раньше в жизненном цикле разработки выявляются подобные угрозы, тем ниже риск масштабных последствий для бизнеса и пользователей.