【问题标题】:Is setting ExecutionPolicy to Unrestricted for CurrentUser a security breach?将 CurrentUser 的 ExecutionPolicy 设置为 Unrestricted 是否存在安全漏洞?
【发布时间】:2018-04-11 10:42:31
【问题描述】:

我喜欢在 Windows 10 上的 PowerShell 中使用几个别名。

我希望它们在会话之间保持不变,因此我将它们放在 C:\Users{username}\Documents\WindowsPowerShell 下的 profile.ps1 文件中。

我收到这个烦人的“无法加载,因为在这个系统上禁用了正在运行的脚本”。错误消息,并找到了有关如何摆脱它的页面: https://social.technet.microsoft.com/Forums/en-US/3e4a9006-d47d-4e19-96f4-10327ae0c5b1/not-able-to-run-script-in-windows-10?forum=winserverpowershell

这里有人说这条线会有所帮助:

Set-ExecutionPolicy Unrestricted -Scope CurrentUser -Force -Verbose

但是将执行策略设置为对我的用户无限制有危险吗?

【问题讨论】:

  • 我实际上打算投票结束这个主要是基于意见的。所以这里是我的意见。是不是更不安全?明确地。是安全漏洞吗?好吧,这取决于您对安全漏洞的定义。我个人将我的执行策略设置为 RemoteSigned。这意味着我可以拥有配置文件,但无法运行从 Internet 下载的脚本,而无需先更改其 ADS。
  • 实际上拥有个人资料并不是我使用 RemoteSigned 的原因。我意识到这可能会产生误导。如果我愿意,我可以在个人资料上签名。我使用 RemoteSigned 的原因是,我经常用一天的时间在 powershell 中测试技术,并向刚来到我办公桌前的其他人展示如何在 powershell 中做事。通常通过快速模拟他们想要的脚本。每次我创建一个 10 到 20 行的小脚本时,都不值得为这些小脚本签名。但那是我的环境和我使用 powershell 的方式。您必须自己做出这些决定。
  • 执行策略是一项安全功能,而不是一项安全功能。无论执行策略是什么,我们仍然可以通过为 PowerShell 进程设置执行策略来运行脚本,这不需要提升权限。限制性执行策略仅有助于防止用户意外运行不应运行的脚本。它根本不会阻止用户运行任何脚本。

标签: powershell security windows-10 executionpolicy


【解决方案1】:

ExecutionPolicy 不是安全边界。正如有人在评论中的其他地方所说,这是一项安全功能。想想安全带不是门锁。但是安全带可以降低风险,所以使用它们总比不使用要好。 ExecutionPolicy 降低了无意中运行恶意代码的风险。一般推荐的最低策略是RemoteSigned

【讨论】:

  • 你的比喻更简洁地表达了我想说的;谢谢。
猜你喜欢
  • 2022-01-17
  • 1970-01-01
  • 2011-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-24
  • 2011-12-17
  • 1970-01-01
相关资源
最近更新 更多