Группировка из КНДР связала воедино несколько громких атак на популярные пакеты NPM

Атака на цепочку поставок NPM

Компрометация четырёх широко используемых библиотек для Node.js - axios, debug, chalk и typo-crypto - оказалась делом рук одной северокорейской хакерской группы. Ранее эти инциденты рассматривались как изолированные, но новое исследование впервые объединило их общими тактиками, техниками и процедурами. Речь идёт о тех же злоумышленниках, которые в сообществе информационной безопасности известны под идентификаторами SAPPHIRE SLEET, STARDUST CHOLLIMA, BlueNoroff, CageyChameleon и Alluring Pisces. По оценке аналитиков, атаки носят финансово мотивированный характер и направлены на получение доступа к тысячам корпоративных сред одновременно.

Описание

Первый инцидент произошёл ещё в марте 2025 года, когда злоумышленники скомпрометировали пакет typo-crypto. Однако он привлёк мало внимания из-за небольшого числа загрузок. В сентябре 2025 года последовали атаки на debug и chalk. А в марте 2026 года под удар попал axios - один из самых востребованных JavaScript-модулей с более чем 100 миллионами еженедельных загрузок. Во всех случаях атакующие использовали социальную инженерию, чтобы получить доступ к учётной записи доверенного мейнтейнера пакета. После этого они публиковали обновление, содержащее вредоносный код. Любая организация, автоматически загружавшая свежую версию, получала заражённое обновление.

Несмотря на то что компрометация axios уже публично связывалась с северокорейской группой, три других случая ранее не были к ней привязаны. Как показало исследование Amazon Threat Intelligence, анализ серверов управления и повторное использование кода подтверждают единое авторство. Вредоносная модификация пакета typo-crypto, в частности, содержала специально подготовленный файл, маскирующийся под легитимный модуль core-js. При активации он загружал дополнительный код с удалённого сервера, а затем выполнял его с учётом операционной системы жертвы - Windows, macOS или Linux. Механизм распространения был рассчитан на закрепление и ротацию полезной нагрузки, а также использовал многослойное шифрование для сокрытия истинного содержимого.

Хотя кампания с typo-crypto была небольшой по масштабу, она, по оценке экспертов, послужила полигоном для отработки техник, которые затем применили в более масштабных атаках. Данные о вредоносном пакете были переданы в базу открытых уязвимостей OSV, чтобы помочь сообществу разработчиков и специалистам по защите выявлять подобные угрозы на ранней стадии.

Помимо связывания инцидентов, исследователи отмечают изменение тактики злоумышленников в целом. Один из ключевых трендов - переход от атак на уровне отдельных пакетов к "фрагментным" атакам. Вредоносная логика теперь распределяется между несколькими, на первый взгляд безобидными, библиотеками. Один пакет хранит зашифрованный файл, замаскированный под конфигурацию, второй содержит алгоритм расшифровки, третий, опубликованный позже, выполняет сам код. По отдельности каждый из них не вызывает подозрений сканеров, анализирующих модули изолированно. Вредоносное поведение проявляется только при совместном использовании в определённой последовательности.

Ещё одна заметная тенденция - долгосрочные кампании, построенные на накоплении доверия. Вместо публикации очевидно вредоносного кода атакующие создают полезный и поддерживаемый проект. Они ведут себя как настоящие разработчики неделями и месяцами: добавляют функции, исправляют ошибки, привлекают зависимые проекты. Когда пакет получает достаточную популярность, в него незаметно внедряется вредоносная функциональность. Такая же логика прослеживается и в социальной инженерии: злоумышленники стремятся стать соавторами уже существующих проектов, чтобы получить доступ к их кодовой базе.

Произошли изменения и в методах обфускации. Если раньше злоумышленники ограничивались простым кодированием или минификацией, то теперь применяются стойкие криптографические алгоритмы. Полезная нагрузка может быть зашифрована с использованием современных шифров, а ключ для расшифровки никогда не хранится внутри самого пакета. Он либо вычисляется из окружения во время выполнения, либо загружается с сервера. Это делает статический анализ бесполезным: вредоносное содержимое видно только на реальной машине жертвы, где ключ становится доступен.

Кроме того, вредоносное ПО всё активнее избегает анализа в изолированных средах (песочницах). Оно проверяет, запущено ли в реальном рабочем окружении: проверяет наличие интерактивного терминала, правдоподобные имена пользователей, длительность работы системы, наличие облачных метаданных. Если окружение выглядит как аналитическое, код либо не выполняет вредоносных действий, либо загружает безобидный "обманный" файл. В результате чистый вердикт от автоматизированной системы часто говорит не о безопасности пакета, а о том, насколько убедительно выглядит тестовая среда.

Отдельное внимание в исследовании уделено влиянию генеративного искусственного интеллекта (ИИ) на атаки цепочки поставок. Злоумышленники теперь могут создавать тысячи строк связного, хорошо документированного кода с правдоподобными комментариями и историей коммитов, в который встроен бэкдор. Из-за возможности бесконечной мутации и перешифровки у такого кода нет стабильной сигнатуры - традиционные методы обнаружения по шаблонам теряют эффективность.

Появилась и новая техника начального доступа - "слопсквоттинг". ИИ-помощники для написания кода иногда "галлюцинируют", то есть предлагают названия пакетов, которые в реальности не существуют. Злоумышленники заранее регистрируют такие имена и ждут, пока разработчик или автономный агент последует рекомендации модели и установит вредоносную зависимость. При этом пользователь не делает ошибки в написании и не переходит по вредоносным ссылкам - именно ИИ становится вектором доставки.

Наконец, атакующие начинают целенаправленно манипулировать системами, которые используют искусственный интеллект для проверки кода. Вредоносные пакеты могут содержать скрытые инструкции в комментариях или документации, предназначенные для ИИ-ревьювера. Такие инструкции способны убедить автоматический анализатор пропустить опасный файл, изменить вердикт или выполнить несанкционированное действие. По мере того как организации доверяют ИИ-системам всё больше задач по проверке зависимостей, атаки на эти системы становятся менее экзотикой и более реалистичной угрозой. Совокупность этих тенденций означает, что доверие к открытому коду больше не может основываться на его внешнем виде или единичной проверке - оно требует постоянного анализа поведения зависимостей в контексте всей цепочки разработки.

Индикаторы компрометации

IPv4

  • 216.74.123.126

Domain

  • npmjs.store

SHA256

  • 2014d09c7ded74d89c885b5f11693865224116f1b25df9330e61fe528f419d73
  • 24604384b0e748ada07923630b3d037489e696284a98c4409fb9b6763565571f

Комментарии: 0