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

Атаки на цепочку поставок NPM: крупнейшие инциденты и способы их предотвращения.

Быстрый ответ: Атаки на цепочку поставок NPM осуществляются путем компрометации доверенной учетной записи сопровождающего или CI/CD публикация вредоносной версии пакета, которому разработчики уже доверяют, и предоставление скриптам установки этого пакета или логике вредоносной программы сделать все остальное. В период с августа 2025 года по середину 2026 года эта схема привела к самой крупной волне атак на цепочку поставок пакетов npm в истории реестра, включая перехват chalk/debug. Червь Шаи-Хулуди вредоносное ПО государственного назначения, скрытое в пакете, загружаемом 100 миллионов раз в неделю. Решение заключается не в сканировании кода после его установки. Оно заключается в обнаружении вредоносных пакетов до их установки и наблюдении за ними. pipeline именно из-за схожести поведения этих атак.

Каждая установка — это акт доверия, и злоумышленники это знают.

Разработчик работает Установка npmЗа этой единственной командой скрывается дерево зависимостей, содержащее сотни, а иногда и тысячи пакетов, большинство из которых написаны и поддерживаются людьми, с которыми разработчик никогда не встретится. Никто не проверяет это дерево построчно. Ни у кого нет на это времени.

Целью является именно это доверие. Злоумышленнику дешевле фишить одного разработчика npm с 2.6 миллиардами еженедельных загрузок, чем найти уязвимость нулевого дня в межсетевом экране компании из списка Fortune 500. Атаки на цепочку поставок npm используют именно эту асимметрию, и волна атак 2025-2026 годов показывает, насколько масштабной стала эта уязвимость: от от изолированного тайпоскваттинга к самовоспроизводящимся червям которые публикуют свои собственные вредоносные пакеты быстрее, чем любой человек может на них отреагировать.

Что считается атакой на цепочку поставок npm?

Атака на цепочку поставок npm — это любой инцидент, при котором злоумышленник внедряет вредоносный код в дистрибутив npm. pipeline Вместо того чтобы проникать в собственный код целевой системы, вредоносное ПО проникает под видом обычного обновления зависимостей. Точкой входа обычно является одно из трех: украденные учетные данные сопровождающего, украденная публикация или CI/CD токен или скомпрометированная сборка pipeline который обманом заставляют опубликовать что-либо от имени злоумышленника. Поскольку пакеты npm автоматически подтягивают транзитивные зависимости, один скомпрометированный пакет может достичь приложений, которые никогда не указывали его в качестве прямой зависимости.

Хронология: крупнейшие атаки на цепочки поставок npm в 2025-2026 годах.

Хронология крупнейших атак на цепочки поставок npm, 2025-2026 гг. Восемь атак на цепочку поставок npm, совершенных с августа 2025 года по июнь 2026 года. Оранжевым цветом отмечены кампании самораспространяющихся червей; серым — компрометация учетных данных или токенов. Август 26, 2025 Компромисс Nx / сингулярности Издательский токен украден сентябрь 8, 2025 перехват мела/отладки Украденный аккаунт администратора сентябрь 14, 2025 Червь Шаи-Хулуд Первый самовоспроизводящийся червь 24 ноября, 2025 Шай-Хулуд 2.0 Более уклоняющийся вариант червя Mar 2026 Вредоносное ПО Axios, распространяемое на государственное государство. Государственное вредоносное ПО, 100 млн загрузок в неделю апрель 2026 Компромисс SAP npm Enterprise-чешуйчатый узор червя 11 мая 2026 TanStack CI/CD скомпрометированы Кража токенов CI, 84 версии Июнь 1, 2026 Компромисс пространства имен Red Hat Действительный SLSA, но всё ещё вредоносный. Самовоспроизводящийся червь Компрометация учетных данных или токена
Восемь атак на цепочки поставок npm, с августа 2025 по июнь 2026 года. Оранжевым цветом отмечены кампании самораспространяющихся червей.

Схема, лежащая в основе каждой атаки на цепочку поставок пакетов npm.

Если отбросить детали, то почти каждый из описанных выше инцидентов следует одним и тем же четырем этапам:

  • Компромисс следует ставить на свою идентичность, а не на систему. Фишинговая атака на разработчика, утечка токена npm, кража PAT с GitHub или получение токена OIDC из другого источника. CI/CD Память бегуна. Злоумышленник не взламывает реестр. Он заимствует чей-то ключ к нему.
  • Публикуйте под именем, которому разработчики уже доверяют. При использовании настоящего имени пакета никаких опечаток не требуется. Именно это делает подобные атаки столь эффективными против автоматических обновлений. pipelines: Обновление выглядит совершенно легитимным.
  • Запустите, прежде чем кто-либо напишет отзыв. Вредоносные скрипты установки, обфусцированные полезные нагрузки или скрытые коды, активирующиеся только при определенных условиях, выполняются в момент запуска. Установка npm Запускается, зачастую на ноутбуке разработчика, задолго до того, как его обнаружит запланированная проверка безопасности.
  • Сохраняйтесь и, всё больше, распространяйтесь. Shai-Hulud и его потомки используют украденные учетные данные для автоматической публикации следующего зараженного пакета, превращая единичный взлом в цепную реакцию по всему графу зависимостей.

Почему обычные средства защиты упускают это из виду

Большинство инструментов AppSec созданы для анализа того, что уже находится в репозитории: известных уязвимостей CVE, шаблонов статического кода, проблем с лицензиями. Это необходимо, но структурно это происходит слишком поздно для этого класса атак. К тому времени, как сканер обнаружит зависимость, скрипт установки может уже быть выполнен на компьютере разработчика. Традиционные антивирусы и EDR отслеживают операционную систему, а не реестры пакетов, поэтому у них нет понятия «новый релиз npm» как единицы риска. И, как показывают инциденты с TanStack и Red Hat, даже подтверждения целостности сборки, такие как SLSA provenance Ситуация усугубляется, когда злоумышленник законно получил данные, используемые для подписи: подпись действительна, но пакет всё равно является вредоносным.

Уязвимость, которую используют эти атаки на цепочку поставок npm, заключается именно в момент публикации и установки, до того, как появится сигнатура вредоносного ПО и до того, как пакет будет запущен в местах, где его мог бы проверить традиционный сканер.

Как предотвратить следующую атаку на цепочку поставок npm

Отчасти это связано с дисциплиной в организации процессов, которую сегодня может внедрить каждая инженерная команда:

  • Закрепить зависимости и commit файлы блокировкиТаким образом, автоматическое обновление не сможет незаметно установить только что опубликованную вредоносную версию.
  • Отключите или изолируйте скрипты после установки. По умолчанию; большинству пакетов нет необходимости выполнять произвольный код во время установки.
  • Внедрить аппаратную многофакторную аутентификацию для учетных записей, публикующих контент в npm., перекрыв именно тот фишинговый путь, который привел к компрометации аккаунтов chalk, debug и Qix.
  • Определить область действия и повернуть CI/CD токены агрессивнои рассматривать токены OIDC в ​​памяти исполнителя как учетные данные, заслуживающие защиты, а не как деталь реализации.
  • Обратите внимание на последовательность действий: разблокировка-впрыск-повторная блокировка. in CI/CD: правило защиты ветви отключено, commit Правило было изменено, а затем вновь активировано — всё в сжатые сроки. Это повторяющаяся особенность. pipelineКомпромисс в цепочке поставок на уровне.

Там, где иссякает дисциплина в процессе.

Дисциплина процессов снижает уязвимость. Она не обнаруживает вредоносный пакет в момент его публикации и не обнаруживает вредоносную программу, которая уже распространяется по сети быстрее, чем человек может её обработать. Именно для такого уровня и создана система безопасности цепочки поставок Xygeni.

Ксигени MEW (Система раннего предупреждения о вредоносных программах) Постоянно анализирует новые пакеты, опубликованные в npm, PyPI и Maven, выявляя вредоносное ПО до появления сигнатуры, а не после, и передавая подтвержденные угрозы обратно в систему. Ксигени собственный механизм обнаружения. Брандмауэр зависимостей Сканирует npm, PyPI, Maven, NuGet и RubyGems в режиме реального времени и блокирует вредоносные установки до того, как они достигнут компьютера разработчика или сборки. CI/CD обнаружение аномалии часы pipelineименно для выявления поведенческой модели, лежащей в основе таких инцидентов, как взлом TanStack, включая последовательность разблокировки-внедрения-повторной блокировки, с полным журналом аудита. И потому что Xygeni Сортировка и устранение неполадок с помощью искусственного интеллекта Это относится и к результатам сканирования сторонними программами, поэтому командам не нужно удалять существующие инструменты, чтобы устранить этот пробел.

Часто задаваемые вопросы: атаки на цепочку поставок npm

Что такое атака на цепочку поставок npm?

Это атака, при которой вредоносный код попадает в целевое приложение через доверенную зависимость npm, а не через собственный код целевого приложения, обычно потому, что злоумышленник скомпрометировал учетную запись сопровождающего, токен публикации или что-то подобное. CI/CD pipelineличность.

Какая атака на цепочку поставок npm была самой масштабной?

По масштабу последствий, взлом chalk/debug в сентябре 2025 года является одним из крупнейших: 18 пакетов с общим числом загрузок в 2.6 миллиарда в неделю были скомпрометированы через одну фишинговую учетную запись сопровождающего проекта. С точки зрения технической новизны, Shai-Hulud стал более значимым поворотным моментом, поскольку это первый самораспространяющийся червь в истории npm.

Как обычно начинается атака на цепочку поставок npm-пакетов?

Практически всегда это происходит из-за кражи личных данных: фишинг со стороны разработчика, утечка издательского токена или кража. CI/CD учетные данные, такие как токен OIDC, извлеченный из памяти пользователя, а не технический взлом самого npm.

Может ли антивирус или EDR предотвратить атаку на цепочку поставок npm?

Ненадежно. EDR отслеживает операционную систему и не понимает реестры пакетов, а антивирус основан на сигнатурах, что делает его неэффективным против вредоносных программ, опубликованных до появления каких-либо сигнатур. Для предотвращения этого класса атак необходим мониторинг в точке публикации и установки, а не только на конечной точке.

Есть ли SLSA provenance Или же следует создать систему аттестации, чтобы предотвратить это?

Это доказывает pipeline Сам по себе он не был изменен в процессе сборки. Это не доказывает, что идентификатор, запустивший сборку, не был скомпрометирован, как показали инциденты с TanStack и Red Hat, в которых были использованы достоверные подтверждения, прикрепленные к вредоносным пакетам.

Как команда может обнаружить вредоносный npm-пакет до его установки?

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

Когда начать

Атаки на цепочку поставок npm не замедляются, и тенденция, наблюдаемая со времен Шаи-Хулуда, указывает на усиление автоматизации, а не на ее снижение. Команды, наиболее подготовленные к следующей кампании, — это те, кто перестал рассматривать каждую установку npm как рутинное событие и начал следить за реестром. pipelineи конечная точка как единая связанная поверхность атаки.

План поддержки разработчиков от Xygeni включает покрытие MEW и Dependency Firewall. Бесплатно для доступа к 25 репозиториям. Это удобное место, чтобы посмотреть, что уже есть в дереве зависимостей.

sca-инструменты-программное обеспечение-композиция-анализ-инструменты
Расставьте приоритеты, устраните и защитите риски, связанные с программным обеспечением
Получите бесплатный аккаунт.
Нет необходимости кредитную карту.

Защитите свою разработку и доставку программного обеспечения

с пакетом продуктов Xygeni