Автор: Даниэль Баах

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

API-интерфейсы Node.js в значительной степени зависят от библиотек с открытым исходным кодом, а сообщество разработчиков открытого исходного кода полагается друг на друга для проверки легитимности каждого отдельного пакета npm (диспетчера пакетов узлов). Хотя эта открытая система сотрудничества и контроля работает большую часть времени, иногда нам приходится брать дело в свои руки. Инцидент с левой панелью 2016 года показал нам, что пакеты npm не всегда работают должным образом; подчеркивая важность индивидуального управления и тестирования библиотек npm. Но, в то же время, у кого действительно есть время на микроуправление и аудит моря зависимостей, живущих в их папке node_modules?

Хорошая новость заключается в том, что существуют инструменты, помогающие повысить осведомленность о проблемах безопасности npm. Node Security Platform и VulnDB — это рекомендательные базы данных, которые периодически публикуют подробную информацию об известных уязвимостях в зависимостях Node.js и рекомендации по их устранению.

Другой инструмент, Snyk, предлагает интерфейс командной строки, который позволяет пользователям проверять свои зависимости от VulnDB. Мастер Snyk проходит через папку пользователя node_modules и предоставляет серьезность проблемы, ссылку на подробное описание, путь, по которому уязвимый модуль попал в вашу систему…. Этот мастер интерфейса командной строки также проводит пользователя через шаги для плавный переход на обновление пакетов.

Чтобы запустить этот инструмент, установите snyk и войдите в тот же каталог, что и ваша папка node_modules, и запустите

npm install –g snyk
snyk wizard

Мастер просматривает пакеты npm, проверяет наличие проблем с безопасностью, ранжирует уровень риска и предоставляет пользователю доступные варианты действий. Невежество больше не оправдание!

Как только пользователь освоится с исправлениями, примененными к его/ее пакетам, можно использовать термоусадочную пленку npm для создания моментального снимка всех зависимостей проекта и их проверенных на уязвимость версий.

npm shrinkwrap

Shrinkwrap создает файл npm-shrinkwrap.json, содержащий дерево модулей того, что в данный момент установлено в node_modules; таким образом облегчая процесс воспроизведения для производственного использования.

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

Обеспечат ли запуск этих двух инструментов 100%-ную безопасность в отношении пакетов узлов? Нет, но это закладывает основу для создания системы, обеспечивающей усилия по повышению безопасности и надежности. Мы надеемся, что вы сможете включить эти два очень простых и интуитивно понятных инструмента в свой жизненный цикл разработки продукта. До сих пор мы считали их очень надежными и очень ценными.