Какие ограничения безопасности накладываются на скрипты Powershell, запускаемые во время установки / инициализации пакета NuGet? - PullRequest
6 голосов
/ 02 мая 2011

Когда вы устанавливаете пакет из NuGet, он может запускать некоторые сценарии Powershell для настройки (например, экспорт команд для использования в консоли диспетчера пакетов).чтобы найти детали того, что эти сценарии могут / не могут делать.В частности - должны ли мы беспокоиться о вредоносном коде в них?Могут ли они читать файловую систему, отправлять веб-запросы и т. Д.? 1003 *

Ответы [ 3 ]

3 голосов
/ 21 июня 2011

Когда NuGet устанавливает хост PowerShell, он проверяет, что является текущим ExecutionPolicy. Если это не Unrestricted, RemoteSigned или Bypass, он принудительно устанавливает ExcecutionPolicy в RemoteSigned для текущего процесса (devenv.exe).

PowerShell не видит встроенные сценарии init.ps1, install.ps1 и т. Д. Как загружаемые из Интернета, поэтому ничто не мешает вредоносному сценарию делать на вашем компьютере какие-либо действия, на которые у вашей учетной записи есть разрешения.

На данный момент все создатели пакетов NuGet в значительной степени находятся в системе "чести". Я считаю, что у Ruby Gems аналогичная ситуация.

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

0 голосов
/ 10 июня 2011

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

0 голосов
/ 04 мая 2011

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

Вот клип из моей собственной консоли Nuget:

PM> Get-ExecutionPolicy
RemoteSigned

Если я открою PowerShell от имени администратора и изменим политику выполнения, nuget сообщит об изменении:

PM> Get-ExecutionPolicy
Restricted

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...