Аудит ваших зависимостей NPM, они составляют 86% ошибок безопасности — CloudSavvy IT

NPM

Недавнее исследование, проведенное Snyk состояние безопасности с открытым исходным кодом привело к тревожным результатам — для пакетов NPM 86% уязвимостей безопасности находятся в вторичный зависимости что вы часто мало контролируете.

Каковы Вторичные Зависимости?

Когда вы устанавливаете что-то из NPM, вы не просто устанавливаете один пакет, вы устанавливаете этот пакет, а также любые его необходимые зависимости. Вы можете просмотреть это дерево зависимостей для ваших собственных проектов с npm ls --depth=10, Даже базовый проект с двумя установленными пакетами на самом деле содержит четыре уровня зависимостей, всего 10 реальных пакетов:

нпм лс

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

Таким образом, проблема очевидна. Вы извлекаете код из гораздо большего количества пакетов, чем ваш package.json предложил бы. И каждый из этих пакетов является потенциальной ошибкой безопасности.

В соответствии с отчет от СныкаИменно это и происходит в средах с открытым исходным кодом, таких как NPM и Ruby Gems. Проблема широко распространена, и большинство ошибок связано с косвенными пакетами, которые вы не устанавливали вручную.

86% узловых пакетов

Яркая сторона: эта проблема не так плоха, как кажется. У NPM есть встроенный инструмент для аудита, который поймает большинство неприятных и скажет вам обновить. Из-за распространенности аудита этим ошибкам безопасности уделяется больше внимания и они исправляются по мере их появления, а обновления быстро распространяются среди затронутых пользователей.

Большинство ошибок, обнаруженных Snyk, были потенциальными атаками XSS, и, хотя это не так уж и много, их влияние на реальный мир довольно низкое. Основные серьезные ошибки сводятся к нескольким десяткам прототип загрязнения— потенциальное выполнение произвольного кода — а также некоторые вредоносные или взломанные пакеты, разработанные специально для того, чтобы попытаться проникнуть в ничего не подозревающие package.json«S.

Проблема также становится лучше или, по крайней мере, привлекает больше внимания. Количество ошибок, о которых сообщалось в NPM, сократилось на 20% по сравнению с прошлым годом, и такая же тенденция распространялась и на другие экосистемы менеджера пакетов.

ошибки со временем

Главный вывод из всего этого: вы должны подумать о том, откуда взялся ваш код. С появлением программного обеспечения FOSS легко попасть в ад зависимостей с кодом, который вы не планировали добавлять.

Решение: Аудит

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

Проблема не нова, и npm имеет встроенный инструмент для этого —npm audit, Вы определенно видели это раньше, потому что он запускается автоматически при установке:

Аудит НПМ

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

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *