🐧 Как безопасно устанавливать пакеты, используя Npm или Yarn в Linux

Представьте такой сценарий.

Вы хотите установить приложение на свой Linux-бокс.

Пакет находится на ранней стадии разработки и доступен только в репозитории NPM.

Вы немного параноидально и скептически относитесь к подлинности упаковки.

Что бы вы сделали?

Если вы программист, вы можете проверить код пакета и посмотреть, есть ли в нем какие-либо проблемы.

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

Чтобы устранить эту проблему, существует программа с именем «npq», которую можно использовать для безопасной установки пакетов с помощью менеджеров пакетов Npm или Yarn в Linux.

Npq будет проверять пакеты, которые вы хотите установить, перед их установкой.

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

Npq выполнит следующие шаги, чтобы проверить, является ли пакет безопасным:

  1. Он проверит Snyk Vulnerability DB, чтобы убедиться, что существуют какие-либо уязвимости для пакета. Если есть какие-либо известные уязвимости, отобразится предупреждение.
  2. Проверит возраст пакета. Если возраст пакета составляет менее 22 дней, появится предупреждающее сообщение.
  3. Проверит количество скачиваний пакетов. Если количество загрузок пакета меньше 20 в прошлом месяце, будет показано предупреждение.
  4. Проверит, есть ли README у пакета. Если README нет, появится предупреждение.
  5. Проверит, есть ли в пакете скрипты, которые выполняются до или после инсталла. Эти скрипты могут быть вредоносными, поэтому они будут отображать предупреждающее сообщение.

Если вы не видите никаких предупреждений, пакет, вероятно, безопасен.

Обратите внимание, как я сказал — пакет, вероятно, безопасна.

Но нет гарантированной безопасности.

Вредоносный или уязвимый пакет все еще может существовать.

Такой пакет, который не раскрывается в базе данных Synk и проходит проверки npq.

После того, как все тесты будут выполнены, npq передаст процесс установки фактического пакета Npm или менеджеру пакетов Yarn.

Пожалуйста, помните, что Npq не помешает вам установить пакеты.

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

Вы сами решаете, игнорировать ли установку или продолжить на свой страх и риск.

Установка Npq

Убедитесь, что вы установили Nodejs на вашем Linux-компьютере.

После установки Nodejs выполните следующую команду для установки Npq:

$ npm install -g npq

Безопасная установка пакетов с использованием Npm или Yarn в Linux

Чтобы проверить и установить пакет, например, tldr, просто запустите:

$ npq install tldr

Пример вывода:

✔ Checking package maturity ✖ Identifying package author... ✔ Checking package download popularity ✔ Checking availability of a README ✔ Identifying package repository... ✔ Checking package for pre/post install scripts ✖ Checking for known vulnerabilities Detected possible issues with the following packages: [tldr] - the package description has no e-mail associated with author(s). Proceed with care. [*] - Unable to query for known vulnerabilities. Install snyk and authenticate or provide a SNYK_TOKEN env variable (https://snyk.io) ? Would you like to continue installing package(s)? (y/N)



Как видно из вышеприведенного вывода, есть три предупреждения:
  1. Npq не может определить автора пакета tldr,
  2. В описании пакета нет адреса электронной почты,
  3. Я еще не установил и не аутентифицировался с базой данных Snyk. Чтобы установить Synk CLI и пройти аутентификацию с базой данных Snyk, перейдите по этой ссылке.
Если вас не волнуют предупреждения и вы уверены, что все безопасно, просто наберите Y, чтобы продолжить установку пакета.

Создайте алиас

Npq — это всего лишь предварительный инструмент для проверки известных уязвимостей пакетов npm перед их фактической установкой.

Если вы часто используете его в своей повседневной работе, просто создайте алиас, как показано ниже.

$ alias npm='npq-hero'
С этого момента вы можете просто проверить пакет npm и установить его с помощью команды:
$ npm install package_name

Изменить менеджер пакетов по умолчанию

Как я уже упоминал, Npq по умолчанию передаст процесс установки диспетчеру пакетов Npm после их аудита.

Если вы хотите установить Yarn в качестве менеджера пакетов по умолчанию, укажите переменную среды:

NPQ_PKG_MGR=yarn
Чтобы создать алиас для yarn в качестве менеджера пакетов, выполните:
alias yarn="NPQ_PKG_MGR=yarn npq-hero"

Отправка комментария

0 Комментарии