Фейковый Slack, дипфейк-звонок, троян под видом обновления Teams...

Популярный JavaScript-пакет axios, который используют миллионы проектов, на несколько часов превратился в канал доставки вредоносного кода. Злоумышленники целенаправленно взломали аккаунт ведущего мейнтейнера и через него опубликовали заражённые версии библиотеки.
Инцидент развернулся 31 марта. За пару часов в npm появились две версии axios с вредоносной нагрузкой - 1.14.1 и 0.30.4. Внутрь внедрили зависимость plain-crypto-js@4.2.1, которая устанавливала на компьютеры разработчиков троян удалённого доступа. После установки хакеры получали полный контроль над системой, даже если использовалась двухфакторная аутентификация.
Компрометация началась задолго до публикации пакетов. За 2 недели до атаки мейнтейнер Джейсон Сейман получил приглашение якобы от основателя известной компании. Злоумышленники полностью воспроизвели внешний вид бренда и выстроили правдоподобную коммуникацию. Сначала они добавили разработчика в Slack-рабочое пространство с каналами, постами и профилями сотрудников, которые выглядели как настоящие.
Дальше последовал звонок в Microsoft Teams. При подключении система показала сообщение о необходимости обновления. Разработчик установил предложенный компонент, считая, что речь идёт о стандартной части клиента. Вместо обновления загрузился RAT - вредоносная программа, которая открыла злоумышленникам доступ к машине.
После захвата аккаунта атакующие быстро загрузили заражённые версии библиотеки в npm. Первая появилась в 00:21 UTC, вторая примерно через сорок минут. Почти сразу участники сообщества начали замечать подозрительное поведение, но злоумышленники пытались замедлить реакцию — удаляли созданные пользователями задачи через тот же скомпрометированный аккаунт.
Остановить атаку удалось благодаря быстрой реакции разработчиков. Один из участников проекта напрямую связался с администрацией npm, после чего вредоносные версии удалили около 03:15 и 03:29 UTC. За несколько часов заражённые пакеты успели распространиться через обычные команды установки и обновления зависимостей.
Команда axios после инцидента полностью пересобрала инфраструктуру. Доступы сбросили, ключи и токены заменили, процесс публикации усилили. В цепочку сборки добавили неизменяемые билды, внедрили OIDC для публикации и пересмотрели практики безопасности в GitHub Actions. Отдельно отметили проблему: релизы публиковались с личного аккаунта, а автоматической проверки несанкционированных действий не было.
Атаку связали с северокорейской группировкой UNC1069. По данным Mandiant, злоумышленники используют сложную социальную инженерию и инструменты на базе ИИ. В похожих операциях они связывались с жертвами через Telegram или Zoom, подсовывали фейковые видеозвонки с дипфейками руководителей и убеждали выполнить команды под видом устранения технических проблем.
Подход выстроен на доверии и длительном взаимодействии. Атакующие не торопят жертву, могут вести переписку неделями и постепенно подводят к моменту компрометации. Основные цели — разработчики, финансовые компании, криптоплатформы и венчурные фонды.
Для разработчиков риск оказался особенно высоким. Axios входит в огромное число проектов, поэтому заражённые версии могли попасть в систему через обычный npm install без явных признаков атаки. Команда проекта рекомендует проверить файлы зависимостей package-lock.json и yarn.lock на наличие уязвимых версий и пакета plain-crypto-js.
При любом подозрении систему советуют считать скомпрометированной: удалить вредоносные пакеты, очистить окружение и сменить все ключи, токены и пароли. Дополнительно стоит проверить сетевые логи на соединения с подозрительными адресами, которые использовались в атаке.
Инцидент показал слабое место всей экосистемы npm. Даже популярная библиотека с активным сообществом остаётся уязвимой, если атакующие получают доступ к аккаунту мейнтейнера. В этом случае вредоносный код распространяется через легитимные обновления, и защита на стороне пользователей срабатывает уже постфактум.