Dependency Scanning — npm audit
Dependency Scanning — автоматическая проверка зависимостей проекта на известные уязвимости (CVE) с помощью баз данных типа NVD и GitHub Advisory Database.
npm audit— встроенный инструмент Node.js для этого.
Зачем нужно
Большинство реальных взломов происходит не через написанный разработчиком код, а через уязвимые npm-пакеты. Регулярное сканирование позволяет обнаруживать проблемы до продакшна и автоматизировать их устранение в CI/CD.
Где используется
- CI/CD пайплайны: блокировка деплоя при критических уязвимостях
- Pre-commit хуки для проверки новых зависимостей
- Регулярные еженедельные проверки производственных проектов
- Сканирование Docker-образов через Trivy/Snyk
Основной контент
Базовое использование npm audit
# Проверить все зависимости
npm audit
# Только производственные (без devDependencies)
npm audit --omit=dev
# Вывод в JSON для парсинга в CI
npm audit --json
# Автоматически исправить безопасные обновления
npm audit fix
# Принудительно обновить даже при breaking changes (осторожно!)
npm audit fix --force
Пример вывода npm audit
# npm audit report
lodash <4.17.21
Severity: high
Prototype Pollution - https://github.com/advisories/GHSA-p6mc-m468-83gw
fix available via `npm audit fix`
4 vulnerabilities (1 moderate, 2 high, 1 critical)
Интеграция в CI (GitHub Actions)
- name: Security audit
run: npm audit --audit-level=high
# Завалит пайплайн при уязвимостях уровня high и выше
Альтернативы: Snyk и osv-scanner
# Snyk — более детальные отчёты
npm install -g snyk
snyk test
# osv-scanner от Google
osv-scanner --lockfile=package-lock.json()
.npmrc — настройка уровня строгости
# Завалить npm install при критических уязвимостях
audit-level=critical
Частые ошибки
- Игнорирование вывода
npm auditкак "шума" — даже moderate уязвимости могут быть критичны в контексте приложения - Использование
npm audit fix --forceбез тестирования — breaking changes могут сломать функциональность - Сканирование только
devDependencies— они не попадают в продакшн, важнее проверять production deps - Отсутствие блокировки CI при
high/critical— уязвимости уходят в продакшн незамеченными
Связанные темы
- _MOC Безопасность
- Supply Chain Attacks -- npm
- Secure SDLC -- безопасный жизненный цикл
- SAST и DAST -- статический и динамический анализ