Как уравновесить проблемы безопасности (изменения политики выполнения PowerShell) при установке Scoop в Windows?

Я хотел бы попробовать Scoop в Windows, и его документы просят "PowerShell должен быть включен для вашей учетной записи", запустив

PS > Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

Когда я запускаю команду, я вижу предупреждение

Execution Policy Change
The execution policy helps protect you from scripts that you do not trust. Changing the execution policy might expose
you to the security risks described in the about_Execution_Policies help topic at
https:/go.microsoft.com/fwlink/?LinkID=135170. Do you want to change the execution policy?
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "N"):

Какие меры нужно предпринять, чтобы снизить этот риск? Будет ли лучше сбросить политику обратно на Undefined` после установки Scoot и между запуском команд Scoop?

1 ответ

Решение

С настройкой RemoteSigned. В основном этот режим позволяет вам выполнять локальные неподписанные сценарии (сценарии, которые вы пишете), в то время как сценарии из удаленного источника должны быть подписаны доверенным центром. Я оставлю объяснение каждой политики выполнения ниже.


  • AllSigned: Скрипты могут выполняться, но ДОЛЖНЫ быть подписаны доверенным издателем, независимо от того, откуда скрипт. Риски могут включать запуск вредоносных сценариев, подписанных доверенным центром (что маловероятно, но возможно).
  • Bypass: Не блокирует выполнение скриптов. Предназначен для конфигураций с альтернативными моделями безопасности. Никаких предупреждений или подсказок, относящихся к выполнению скрипта, не отображается.
  • Default: Это Restricted для настольных выпусков Windows и RemoteSigned для серверов.
  • RemoteSigned: Могут выполняться локальные сценарии (например, сценарии, которые вы пишете сами), но сценарии, загруженные из Интернета, должны быть подписаны доверенным издателем. Риски могут включать запуск вредоносных неподписанных сценариев из источников, отличных от Интернета, или запуск вредоносных сценариев, подписанных надежным издателем. Вы можете включить скрипт, загруженный из Интернета, используяUnblock-Fileкомандлет.
  • Restricted: Powershell может работать в интерактивном режиме, но скрипты выполняться не могут. Модули Powershell не могут быть загружены, так как все формы файлов сценариев заблокированы. Я не уверен, можно ли использовать оснастки (плагины Powershell, доступные в виде DLL) в этом режиме.
  • Undefined: Это означает, что нет настроенной политики выполнения и будет работать как если бы Default установлен.
  • Unrestricted: Запускает все сценарии независимо от того, подписаны они или нет. Это единственная допустимая политика выполнения для операционных систем, отличных от Windows. Предупреждает вас при запуске скриптов, которые были получены извне вашей локальной интрасети.

Что касается снижения рисков? Обучение пользователей (если это для бизнеса) о том, как не запускать ненадежный код, было бы началом. Вероятно, у вас уже есть решение для аудио / видео и защиты от вредоносных программ, и вы должны надежно хранить секреты в хранилище учетных данных, где они и принадлежат.RemoteSigned - хорошая политика для установки, и в большинстве случаев она будет достаточно разрешительной, но при этом обеспечит вам базовую защиту от вредоносных удаленных сценариев.

Другие вопросы по тегам