Каковы риски установки (запуска) иностранных модулей npm?Можем ли мы ограничить риски? - PullRequest
1 голос
/ 20 сентября 2019

Согласно этой записи , вредоносные модули npm реальны.И кажется, что единственный реальный подход - это «знать, что вы устанавливаете».

Когда я npm install и require() модуль,

  • Может ли он получить доступвся моя файловая система?
  • Можно ли ограничить доступ файловой системы к определенному каталогу?Либо с настройкой package.json, либо, возможно, с собственной системой разрешения доступа к файлам пользователей / групп ОС?
  • Может ли она выполнять какие-либо команды?Загрузка чего-либо, выполнение чего-либо, загрузка чего-либо?
  • Можно ли это ограничить?

Ответы [ 2 ]

0 голосов
/ 20 сентября 2019

Как вы сказали, единственный способ предотвратить это - «знать, что вы устанавливаете».

Краткий ответ: Когда вам требуется модуль, он становится вашим кодом

  • Может ли он получить доступ ко всей моей файловой системе? Да, может! fs-extra и chokidar требуется собственный модуль fs

  • Могу ли я ограничить доступ файловой системы к определенному каталогу ?: Нет, вы не можете 'т!Как я уже говорил выше, он становится вашим кодом, когда вам это требуется.Вы не можете или не хотите ограничивать доступ к себе ...

  • Может ли он выполнять какие-либо команды?: Да, оно может ! shelljs может это сделать

  • Могу ли я ограничить это?: Да можно: не ленись!Не устанавливайте модуль для небольших задач, таких как настройка среды, настройка CORS и т. Д.!Попробуйте сами добиться этого с помощью нодейских элементов.

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

0 голосов
/ 20 сентября 2019

Пакет npm (как и любая библиотека / программное обеспечение) имеет полный доступ к любой среде, в которую вы его поместили. Если вы можете сделать это в Node.js, пакет npm может это сделать.Как менеджер пакетов, npm может эффективно разместить файл в любом месте (например, вредоносный исполняемый файл), и при вызове функции он может делать все, для чего он был запрограммирован (например, запускать вредоносную программу).

Аудит программного обеспечения является реальным, и различные группы с открытым исходным кодом делают основной шаг, чтобы убедиться, что в программном обеспечении нет критических недостатков (преднамеренных или иных).Перед установкой найдите файл package.json и прочитайте его, если что-то кажется вам подозрительным, возможно, вам придется копать глубже (обратитесь за помощью к разработчику или члену сообщества).Если программное обеспечение с открытым исходным кодом, ищите аудиты (или проводите аудит самостоятельно).

В этой статье приведены некоторые предложения: https://medium.com/@nodepractices/were-under-attack-23-node-js-security-best-practices-e33c146cb87d

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

Источник: https://docs.npmjs.com/files/package.json
https://docs.npmjs.com/cli/install

...