При обсуждении недавней атаки вредоносного ПО с использованием популярного пакета NPM (и после удаления этого пакета из нашей базы кода) я начал исследовать способы ограничения команд npm install
,До сих пор я не нашел никакого способа ограничить то, что может установить разработчик.
Есть две причины, по которым это могло бы принести пользу всем:
- Иметь дополнительный уровень защиты от вредоносных пакетов
- Избегайте непреднамеренной установки пакетов, когда имя пакета было опечатано
Что касается # 1, идея состоит в том, что каждая группа может создать утвержденный список имен пакетов, которыеможет быть проверен по до того, как npm install
действительно запустится - по сути, создаст некоторый тип процесса проверки для пакетов npm.
Что касается # 2, наша команда была фактически затронута удалением этого пакета в NPM- но единственная причина, по которой мы когда-либо имели эту зависимость, заключается в том, что пакет был установлен случайно и некоторое время оставался незамеченным.Вот что я думаю произошло:
- Разработчик хотел установить пакет и намеревался набрать
npm install --save somepackagehere
( обратите внимание на тире ) - Разработчик случайно набрал
npm install save
( no dash dash ), установив пакет save npm, который зависит от event-stream , который имелзависимость от flatmap-stream .
Версия узла: 9.9.1
Версия NPM: 6.4.1
ВОПРОС
Существует ли какой-либо способ достичь того, что я описал выше, который не зависит от ручного пересмотра кода?