Быстрый ответ: Атаки на цепочку поставок 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.
Если отбросить детали, то почти каждый из описанных выше инцидентов следует одним и тем же четырем этапам:
- Компромисс следует ставить на свою идентичность, а не на систему. Фишинговая атака на разработчика, утечка токена 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 репозиториям. Это удобное место, чтобы посмотреть, что уже есть в дереве зависимостей.







