npm supply chain 2026 — одна из top-3 attack surfaces. 2024 xz backdoor + 2023 event-stream + 2024 shai-hulud показали: любой из 1000+ transitive deps может быть hijacked. Defense: (1) npm audit + Dependabot (базовый, free), (2) Socket.dev ($15/мес, runtime behavior analysis), (3) Snyk ($0+), (4) pnpm + lockfile strict, (5) npm package-lock integrity hashing, (6) --ignore-scripts для reject postinstall.
Ниже: пошаговая инструкция, рабочие примеры, типичные ошибки, FAQ.
Бесплатный онлайн-инструмент — сканер безопасности сайта: результат мгновенно, без регистрации.
npm audit в CI — fails build при > high severitynpm config set ignore-scripts true глобально + review per-package"react": "18.2.0" vs "^18.2.0"| Сценарий | Конфиг |
|---|---|
| npm audit в CI | # .github/workflows/audit.yml
- run: npm ci
- run: npm audit --audit-level=high
# Fails build при found high+ CVE |
| pnpm strict mode | # .npmrc
strict-peer-dependencies=true
save-exact=true
auto-install-peers=false
# package.json
"packageManager": "pnpm@8.15.0" |
| Socket.dev CI | # Via npm scripts
"scripts": {
"preinstall": "socket preinstall"
}
# Blocks install если detected supply-chain risk |
| Ignore postinstall scripts | # Global
$ npm config set ignore-scripts true
# Per install
$ npm install --ignore-scripts
# For specific trusted packages — whitelist
$ npm rebuild sharp |
| Lockfile integrity (yarn) | # .yarnrc.yml
enableGlobalCache: true
checksumBehavior: update
# Lockfile хэши rejected если corrupted |
Для эффективного аудита supply chain npm-пакетов необходимо использовать инструменты, такие как npm audit, npm ls и npx npm-check. Эти команды помогут вам выявить уязвимости в ваших зависимостях и их версиях. Регулярный аудит позволяет поддерживать безопасность вашего проекта и минимизировать риски, связанные с использованием устаревших или небезопасных пакетов.
Аудит supply chain npm-пакетов требует системного подхода и выполнения нескольких ключевых шагов. Рассмотрим их подробнее:
npm и npx. Для этого выполните команду npm -v и npx -v в терминале.npm audit: Эта команда проверяет ваши зависимости на наличие известных уязвимостей. Рекомендуется запускать ее регулярно. Пример команды: npm audit.npm ls для проверки зависимостей: Эта команда покажет вам дерево зависимостей вашего проекта. Пример команды: npm ls --depth=0 для отображения только верхнего уровня зависимостей.npm update. Например, для обновления конкретного пакета используйте npm update .npx npm-check: Данный инструмент позволяет вам более детально анализировать ваши зависимости, показывая, какие пакеты можно удалить, обновить или установить. Запустите команду npx npm-check и следуйте инструкциям на экране.После выполнения всех этих шагов вы получите более безопасный и стабильный проект, что особенно важно для команд, работающих с критически важными системами и данными.
Инструмент проверяет HTTP-заголовки безопасности, конфигурацию SSL/TLS, утечки серверной информации и защиту от распространённых атак (XSS, clickjacking, MIMEsniffing). Оценка от A до F показывает общий уровень защиты.
Проверка Content-Security-Policy, HSTS, X-Frame-Options, X-Content-Type-Options, Referrer-Policy и других.
Версия TLS, срок сертификата, цепочка доверия, поддержка HSTS.
Поиск раскрытых серверных версий, debug-режимов, открытых конфигов и директорий.
Детальный отчёт с объяснением каждой проблемы и конкретными шагами для исправления.
аудит HTTP-заголовков
проверка конфигурации
CSP и HSTS настройка
соответствие стандартам
Strict-Transport-Security.Server: Apache/2.4.52 помогает атакующим подобрать эксплойт. Скройте версию.DENY или SAMEORIGIN.nosniff браузер может интерпретировать файлы неправильно (MIME sniffing).Content-Security-Policy-Report-Only, мониторьте нарушения, затем включите.Server, X-Powered-By, X-AspNet-Version из ответов.История security-проверок и мониторинг HTTP-заголовков безопасности.
Зарегистрироваться (FREE)Dependabot: GitHub-native, simpler. Renovate: более flexible, works on GitLab/Bitbucket, configurable schedules. Для solo projects — Dependabot. Для teams с complex policies — Renovate.
Free tier: 5 repos. $15/dev/мес paid. Analyzes package behavior (network calls, file ops, eval usage) — detects novel supply-chain attacks.
xz-utils CVE-2024-3094 — backdoor через social engineering 2-летний maintainer takeover. Would have compromised OpenSSH on major Linux distros. Detected by luck.
pnpm: content-addressable, fast, deterministic. bun: Rust backend, 10x faster. Для audit — pnpm/bun показывают actual installed graph точнее npm.
Бесплатный тариф — 10 мониторов, проверки каждые 5 мин, без карты. Платные тарифы — интервал от 1 минуты и проверки из нескольких регионов.