Компрометация популярного npm-пакета Axios оказалась не единичным инцидентом, а частью скоординированной кампании против мейнтейнеров ключевых проектов экосистемы Node.js. Подробный отчет мейнтейнера Axios Джейсона Сааймена и анализ компании Socket показывают: злоумышленники целенаправленно атакуют разработчиков, используя тщательно подготовленные сценарии социальной инженерии и установку remote access trojan (RAT).
Как взломали мейнтейнера Axios: подробно о сценарии атаки
На прошлой неделе злоумышленники захватили аккаунт основного мейнтейнера Axios и опубликовали две вредоносные версии пакета — 1.14.1 и 0.30.4. Эти версии при установке внедряли на машины разработчиков RAT, идентифицированный как WAVESHAPER.V2, что создавало риск компрометации целых цепочек поставки ПО.
Сааймен описывает, что атака началась с подделки реальной компании: злоумышленники полностью склонировали визуальный стиль и бренд известной организации, а затем пригласили его в якобы корпоративный Slack-воркспейс. Внутри были каналы с «новостями» из LinkedIn, фальшивые профили сотрудников и даже мнимые мейнтейнеры других опенсорс-проектов, что создавало высокий уровень доверия.
Следующим шагом стал запланированный видеозвонок в Microsoft Teams. Во время подключения Сааймен увидел правдоподобное сообщение об ошибке: якобы часть программного обеспечения устарела и требует немедленного обновления. Предложенный «апдейтер» оказался трояном удаленного доступа, позволившим атакующим получить доступ к учетным данным npm и опубликовать троянизированные версии Axios.
Атрибуция атаки: UNC1069 и тактика «поддельных видеозвонков»
По данным Google Threat Intelligence Group, атака на Axios коррелирует с деятельностью группы UNC1069 — финансово мотивированных хакеров, связанных с КНДР и активных как минимум с 2018 года. Их характерная тактика — демонстрация жертве фейковой ошибки при видеозвонке с последующим предложением установить «обновление» для Zoom, Teams или другой платформы.
Ранее похожие сценарии описывали аналитики Huntress и «Лаборатории Касперского»: пользователю показывают сбой при подключении к созвону и убеждают скачать «патч» или «новую версию клиента». В действительности устанавливается RAT, который дает атакующим полный контроль над рабочей станцией разработчика.
Не только Axios: кампания против мейнтейнеров npm и Node.js
Исследователи Socket выявили, что Axios — лишь один из целевых проектов. Несколько мейнтейнеров из экосистемы Node.js независимо подтвердили попытки атак по идентичному сценарию: выход на связь через LinkedIn или Slack, приглашение в заранее подготовленный воркспейс, затем видеозвонок и поддельное сообщение об ошибке с предложением установить «исправление».
Среди подтвержденных целей фигурируют: мейнтейнер ECMAScript-полифилов Джордан Харбанд (Jordan Harband), создатель Lodash Джон-Дэвид Долтон (John-David Dalton), мейнтейнер Fastify и Undici Маттео Коллина (Matteo Collina), автор dotenv Скотт Мотт (Scott Motte), а также мейнтейнер Mocha Пелле Вессман (Pelle Wessman). Под атаку попадали и непосредственные инженеры Socket.
Показателен пример Пелле Вессмана: его якобы пригласили на запись подкаста через поддельную версию платформы Streamyard. Когда он отказался запускать предложенное приложение, злоумышленники попытались убедить его выполнить curl-команду непосредственно в терминале. После повторного отказа все переписки были оперативно удалены, что указывает на хорошо отработанный «скрипт» атаки.
Аналогичную попытку описывает контрибьютор Node.js core и Express Жан Бурелье (Jean Burellier): ему написали от имени компании Openfort, пригласили в два Slack-воркспейса и на фейковый созвон в Teams с предложением «обновить Teams SDK».
Почему 2FA и OIDC не спасают при компрометации рабочей станции
CEO Socket Феросс Абукхадие (Feross Aboukhadijeh) подчеркивает: когда на машине разработчика уже установлен RAT, одна только двухфакторная аутентификация (2FA) и переход на OIDC-публикацию пакетов не гарантируют безопасность. Злоумышленник получает доступ к файлам .npmrc, активным сессиям браузера, локальным ключевым хранилищам (keychain) и токенам, которые могут быть использованы для выпуска новых вредоносных версий пакетов.
После инцидента Сааймен провел полный пересмотр своей модели безопасности: он сбросил все устройства, сменил учетные данные, настроил immutable-релизы (незаменяемые релизы пакетов), перешел на OIDC для публикации и обновил конфигурации GitHub Actions в соответствии с актуальными практиками DevSecOps.
Практические выводы и рекомендации по защите разработчиков
Текущая кампания против мейнтейнеров npm наглядно демонстрирует, что основной вектор атаки смещается к разработчикам и цепочке поставки ПО. Даже строгие политики доступа к репозиториям и реестрам пакетов оказываются бесполезными, если компрометирован конечный хост разработчика.
Организациям и отдельным опенсорс-мейнтейнерам имеет смысл внедрить следующие меры защиты:
1. Жесткая гигиена коммуникаций. Не запускать произвольные бинарные файлы и скрипты, полученные через LinkedIn, Slack или во время видеозвонков. Подозрительные предложения «обновить Zoom/Teams/SDK» — ключевой индикатор социальной инженерии.
2. Разделение сред. По возможности использовать отдельные рабочие станции или изолированные виртуальные окружения для публикации в npm и работы с критичными репозиториями. Это снижает эффект от компрометации основной рабочей машины.
3. Усиленный мониторинг и реагирование. Логирование действий в CI/CD, контроль изменений в релизах, использование инструментов анализа зависимостей и мониторинга npm-пакетов помогают быстрее обнаруживать аномальные версии и потенциальный вредоносный код.
4. Обучение разработчиков. Регулярные тренинги по социальной инженерии, разбор реальных кейсов (как атака на Axios) и отработка процедур проверки контрагентов значительно повышают устойчивость команды к подобным кампаниям.
Инцидент с Axios и последующие раскрытые попытки атак на ключевых мейнтейнеров Node.js ясно показывают: надежность современной экосистемы ПО напрямую зависит от защищенности разработчиков. Чем более критичны ваши библиотеки и инструменты, тем выше вероятность стать целью целенаправленной атаки. Стоит пересмотреть процессы безопасности уже сейчас — прежде чем следующий «фейковый созвон» превратится в точку входа для масштабной supply chain-компрометации.