APT0

Автор не согласен с мнением Mandiant и Google. Публикации носят научно-исследовательский характер.

GTIG · 31 марта 2026

Северокорейский UNC1069 отравил популярный пакет axios в NPM

31 марта 2026 GTIG зафиксировала supply chain атаку на NPM‑пакет axios: в релизы 1.14.1 и 0.30.4 внедрили вредоносную зависимость plain-crypto-js. Атрибуция — UNC1069 (DPRK‑nexus, финансовая мотивация с ~2018). Axios — один из самых скачиваемых HTTP‑клиентов в экосистеме JavaScript.

инцидент

Хронология и механизм

Между 00:21 и 03:20 UTC 31 марта атакующий добавил plain-crypto-js в зависимости скомпрометированных релизов. Аккаунт мейнтейнера axios, по оценке GTIG, был скомпрометирован; email сменили на контролируемый злоумышленником.

Через postinstall в package.json зависимости NPM тихо запускал обфусцированный dropper. Далее — платформенные полезные нагрузки и семейство WAVESHAPER.V2 (эволюия ранее связываемого с UNC1069 бэкдора). После установки dropper пытался замести следы.

масштаб

Почему удар широкий

У axios — десятки–сотни миллионов еженедельных загрузок по веткам; пакет входит в деревья зависимостей множества проектов. Параллельно GTIG отмечает всплеск других OSS supply chain кампаний (в т.ч. UNC6780 / TeamPCP), из‑за чего украденные секреты могут питать следующие атаки.

Под риском — разработческие станции, CI‑раннеры и любые среды, где ставили заражённые версии без пина и аудита lockfile.

атрибуция

Почему UNC1069

Связка по WAVESHAPER.V2, пересечениям инфраструктуры с прошлыми операциями и поведению C2. Актор известен финансово мотивированными кампаниями; axios‑инцидент — пример масштабирования через доверие к реестру пакетов.

Для защитников важна не столько метка кластера, сколько скорость реакции на отравленные релизы популярных зависимостей: окно между публикацией и массовой установкой измеряется часами.

защита

Немедленные шаги защитников

Не обновляйтесь на axios 1.14.1 и 0.30.4; в корпоративных зеркалах отдавайте только проверенные версии (например ≤1.14.0 / ≤0.30.3). Запините безопасную версию в lockfile; ищите plain-crypto-js 4.2.0/4.2.1 в деревьях зависимостей.

Приостановите CI, тянущий latest; очистите npm/yarn/pnpm кэши. При нахождении вредоносной зависимости считайте хост скомпрометированным: пересборка из known‑good, ротация секретов и токенов, EDR на developer‑хостах. Долгосрочно — пины, мониторинг supply chain, песочницы для сборки и vault для секретов вместо plaintext на диске.

Ниже — защитный чеклист для lockfile‑аудита без каких‑либо атакующих команд.

# defensive supply-chain checklist (comments only)
# run your own org-approved audit tooling; do not execute untrusted scripts

# 1) pin axios to last known-good in package-lock / pnpm-lock
# 2) search lockfiles for package name: plain-crypto-js
# 3) quarantine hosts that installed axios@1.14.1 or axios@0.30.4
# 4) rotate tokens/keys present on those hosts
# 5) flush shared npm/yarn/pnpm caches on CI agents
# 6) block "latest" floating ranges for critical deps in private registry

Оригинал статьи