639 вредоносных версий за 60 минут. Вот как глубоко зашла новая атака на npm
В экосистеме npm снова вспыхнула крупная атака на цепочку поставок: злоумышленники за один час протолкнули сотни вредоносных версий популярных пакетов, которыми пользуются разработчики и системы сборки. Кампания связана с Shai-Hulud и особенно опасна тем, что заражённые библиотеки могли выглядеть почти как обычные обновления.
По данным Socket, 19 мая с 04:56 до 05:56 по московскому времени атакующие опубликовали 639 вредоносных версий в 323 уникальных пакетах. Больше всего пострадала экосистема @antv, где выходят библиотеки для графиков, визуализации данных, блок-схем и карт. Среди затронутых пакетов упоминаются @antv/g2, @antv/g6, @antv/x6, @antv/l7, echarts-for-react, timeago.js, size-sensor и canvas-nest.js.
Атака началась со взлома npm-аккаунта atool, через который публиковались пакеты @antv. Вредоносный код встраивался в файл index.js и пытался украсть токены GitHub и npm, облачные ключи, данные Kubernetes, Vault, Docker, SSH, базы данных и секреты из CI/CD-сред. Под удар попали рабочие станции разработчиков и платформы сборки, включая GitHub Actions, GitLab CI, Jenkins, Azure DevOps, CircleCI, Vercel и Netlify.
Украденные данные шифровались и отправлялись через Session P2P, что усложняло обнаружение сетевой активности. Когда вредоносный код находил доступ к GitHub, он создавал репозитории в аккаунтах жертв и загружал туда похищенные сведения. Aikido Security насчитала более 2700 таких репозиториев, а перед публикацией исходного материала их количество уже превышало 2900.
Endor Labs указала на ещё одну опасную деталь: новая версия Shai-Hulud умеет создавать корректные Sigstore-аттестации, злоупотребляя OIDC-токенами из скомпрометированных CI-сред. Из-за этого заражённые npm-пакеты могли проходить стандартные проверки происхождения и выглядеть доверенными, хотя содержали код для кражи учётных данных.
Вредоносная программа также умела распространяться дальше. Она проверяла украденные npm-токены, находила пакеты жертвы, скачивала архивы, добавляла свой код и публиковала новые заражённые версии с увеличенными номерами. Socket и Aikido Security считают, что вариант отличается от ранних образцов Mini Shai-Hulud, но сохраняет ту же модель атаки. В новой волне также нашли закрепление через настройки VS Code и Claude Code.
Разработчикам, которые устанавливали затронутые пакеты, рекомендуют удалить заражённые версии или откатиться на безопасные релизы до 18 мая, а затем сменить все потенциально раскрытые ключи, токены и SSH-доступы.