Skip to main content

Постоянно и автоматически проверяйте наличие уязвимых зависимостей

Объяснение в один абзац

Из-за простоты и скорости разработки большинство приложений Node.js в значительной степени зависят от большого количества сторонних модулей из npm или Yarn, обоих популярных реестров пакетов. Однако недостатком этого преимущества являются риски безопасности, связанные с включением неизвестных уязвимостей в ваше приложение, что является риском, признанным по его месту в списке важнейших угроз безопасности веб-приложения OWASP.

Существует ряд инструментов, помогающих идентифицировать сторонние пакеты в приложениях Node.js, которые были определены сообществом как уязвимые, чтобы снизить риск их внедрения в ваш проект. Они могут периодически использоваться из инструментов CLI или включаться как часть процесса сборки вашего приложения.

Оглавление

NPM audit

npm audit - это новый инструмент CLI, представленный в NPM@6.

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

npm audit example

🔗 Читайте еще: NPM blog

Snyk

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

Многофункциональный веб-сайт Snyk также позволяет проводить специальную оценку зависимостей, когда предоставляется GitHub-репозиторий или URL-адрес модуля npm. Вы также можете искать пакеты npm, которые имеют уязвимости напрямую.

Пример вывода интеграции Synk GitHub с автоматически созданным пул-запросом: synk GitHub example

🔗 Читайте еще: Snyk website

🔗 Читайте еще: Synk online tool to check npm packages and GitHub modules

Greenkeeper

Greenkeeper - это сервис, который предлагает обновления зависимостей в режиме реального времени, которые обеспечивают безопасность приложения, всегда используя самые последние обновления и исправленные версии зависимостей.

Greenkeeper следит за зависимостями npm, указанными в файле package.json репозитория, и автоматически создает рабочую ветку с каждым обновлением зависимостей. Затем запускается пакет CI репозитория, чтобы выявить любые критические изменения для обновленной версии зависимости в приложении. Если CI завершается неудачно из-за обновления зависимостей, в хранилище, которое будет выставлено на аукцион, создается ясная и краткая проблема, в которой указаны текущие и обновленные версии пакета, а также информация и история изменений обновленной версии.

Пример вывода интеграции Greenkeeper GitHub с автоматически созданным запросом на извлечение:

synk github example 🔗 Читайте еще: Greenkeeper website

Дополнительные ресурсы

🔗 Rising Stack Blog: Node.js dependency risks

🔗 NodeSource Blog: Improving npm security