Безопасная установка пакетов с помощью Npm или Yarn в Linux
Представьте себе этот сценарий. Вы хотите установить приложение на свой компьютер Linux. Пакет находится на ранней стадии разработки и доступен только в репозитории NPM. Вы немного параноик и скептически относитесь к подлинности посылки. Что бы вы сделали? Если вы программист, вы можете проверить код пакета и посмотреть, есть ли в нем какие-либо проблемы. Если вы не разбираетесь в программировании, у вас нет другого выбора, кроме как слепо доверять пакету и все равно установить его. Чтобы решить эту проблему, существует программа под названием "npq", которую можно использовать для безопасной установки пакетов с помощью менеджеров пакетов Npm или Yarn в Linux.
Что такое Нпк?
Npq проверит пакеты, которые вы хотите установить, перед их установкой. Если есть какие-либо известные уязвимости, будет отображено предупреждение, так что вы можете спокойно пропустить установку.
Npq выполнит следующие шаги, чтобы проверить, безопасен ли пакет.
- Он проверит Базу уязвимостей Snyk, чтобы убедиться в наличии каких-либо уязвимостей в пакете. Если есть какие-либо известные уязвимости, будет отображено предупреждение.
- Проверьте возраст посылки. Если возраст посылки меньше 22 дней, появится предупреждающее сообщение.
- Проверьте количество загрузок пакетов. Если количество загрузок пакета за последний месяц меньше 20, будет показано предупреждение.
- Проверьте, существует ли README для пакета. Если README нет, появится предупреждение.
- Проверьте, есть ли в пакете какие-либо предварительные или пост-скрипты. Этот сценарий может быть вредоносным, поэтому он отобразит предупреждающее сообщение.
Если вы не видите никаких предупреждений, вероятно, пакет безопасен. Обратите внимание, что я сказал — посылка ВЕРОЯТНО безопасна. Но нет гарантии безопасности. Вредоносный или уязвимый пакет все еще может существовать, информация о котором не опубликована в базе данных Synk и проходит проверки npq.
После выполнения всех тестов npq передаст процесс установки фактического пакета диспетчеру пакетов Npm или Yarn. Npm используется по умолчанию.
Помните, что Npq не помешает вам установить пакеты. Он будет проверять пакет только на предмет возможных проблем с безопасностью и отображать предупреждение, если есть какие-либо известные уязвимости. Вам решать, игнорировать установку или продолжать на свой страх и риск.
Установите Npq в Linux
Убедитесь, что вы установили Nodejs на свой компьютер с Linux. Если нет, перейдите по следующей ссылке.
- Как установить NodeJS в Linux
После установки Nodejs выполните следующую команду для установки Npq:
npm install -g npq
Приведенная выше команда поместит на ваш путь два двоичных файла, а именно npq и npq-hero.
Безопасная установка пакетов с помощью 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)
Безопасная установка пакетов с помощью Npm или Yarn в Linux
Как вы видите в приведенном выше выводе, есть три предупреждения:
- Npq не смог определить автора пакета tldr,
- В описании посылки нет адреса электронной почты,
- Я еще не настроил и не прошел аутентификацию в базе данных Snyk. Чтобы установить Synk CLI и пройти аутентификацию в базе данных Snyk, перейдите по этой ссылке.
Если вас не волнуют предупреждения и вы уверены, что это безопасно, просто введите Y, чтобы продолжить установку пакета.
Создать псевдоним
Npq — это всего лишь предварительный инструмент для проверки известных уязвимостей пакетов npm перед их фактической установкой. Если вы часто используете его в повседневной работе, просто создайте псевдоним, как показано ниже.
alias npm='npq-hero'
С этого момента вы можете просто проверить пакет npm и установить его с помощью команды:
npm install package_name
Изменить менеджер пакетов по умолчанию
Как я уже упоминал, Npq по умолчанию передаст процесс установки менеджеру пакетов Npm после их аудита. Если вы хотите установить Yarn в качестве менеджера пакетов по умолчанию, укажите переменную среды:
NPQ_PKG_MGR=yarn
Чтобы создать псевдоним с пряжей в качестве менеджера пакетов, выполните:
alias yarn="NPQ_PKG_MGR=yarn npq-hero"
Надеюсь это поможет.
Ресурс:
- Репозиторий Npq на GitHub