最低权限BUILTIN \ Administrator失败使用AppLockerconfiguration应用程序控制策略

我在SuperUser上问了这个问题,之前没有意识到serverfault可能是一个更好的select。

我正在configuration运行Windows 7 SP1 Ultimate的计算机上的执行控制,只有一个硬盘和一个分区。 随着AppLocker来创build“默认规则”的选项。 在可执行规则组的情况下,如下所示:

  • 允许所有人path%PROGRAMFILES%*
  • 允许所有人path%WINDIR%*
  • 允许BUILTIN \ Administratorspath*

(没有例外。)

随着所有这些到位,“一切按预期工作”。 但是,如果前两条适用于“所有人”的规则被删除,事情就会出错。

现在,使用BUILTIN \ Administrators安全组中的帐户login将不再可能。 (如果该帐户以前已经login过,则可能需要重新启动计算机才能看到此问题,而且这不适用于仍然有效的BUILTIN \ Administrator帐户)。 当你尝试的时候会发生什么呢?

有一个延迟,当桌面应呈现屏幕变成空白。 然后,没有更多。 计算机不会变得没有响应,例如Ctrl + Alt + Delete仍然有效。

(如果我重新configurationAppLocker以明确允许%WINDIR%*的BUILTIN \ Administrators执行权限,或者为“Everyone”恢复该规则,则这些帐户可以再次login。)

根据MSDN :

星号(*)通配符可以在path字段中使用。 本身使用的星号(*)表示任何path。 与任何string值结合使用时,该规则仅限于文件path以及该path下的所有文件。 例如,%ProgramFiles%\ Internet Explorer *表示Internet Explorer文件夹中的所有文件和子文件夹将受规则的影响。

这对我来说意味着BUILTIN \ Administrators的默认规则应该完全重叠为“Everyone”创build的默认规则,在属于BUILTIN \ Administrators组的帐户的情况下使其成为冗余。 正如你所看到的,这似乎并非如此。

所以,我有两个问题:

  1. 为什么BUILTIN \ Administrators的默认规则本身不足以让属于这个组的帐户工作(即,它出了什么问题,以及因为这个问题而失败),以及;
  2. 什么是关于AppLockerconfiguration的工作pipe理帐户(不是BUILTIN \ Administrator)的最低权限configuration?

据我所知,你的问题涉及如何处理pipe理帐户。

开箱即用,因为在Windows Vista上,pipe理帐户实际上并没有立即启用pipe理权限,并且您需要使用用户访问控制(UAC)提升pipe理员权限(例如,如果您尝试更改系统设置,你会得到UAC提示,询问你是否知道你在做什么)。 在此之前,用户帐户基本上只具有与普通用户相同的权限级别。

因此,当您以Administrators组成员身份login时,您的用户帐户在技术上没有pipe理员权限(因为您没有提升使用UAC),因此不符合“允许*“ 规则。 您的Windows会话然后继续implode,因为您的用户帐户没有权限运行login时所需的任何Windows系统文件。

我在我的一个AppLocker环境中遇到了类似的问题,我没有尽可能多地locking程序文件和Windows目录(通过删除默认规则),但我确实有一条规则,基本上说“BUILTIN \pipe理员,允许*“。 但是,当您以pipe理员身份login并尝试双击Windows / Program Files之外的随机可执行文件时,您会遇到AppLocker违例,并且无法运行它。 相反,你必须右键点击它,然后select“以pipe理员身份运行”。 只有在这一点上,AppLocker才会明白你确实是BUILTIN \ Administrators的成员。

可能的解决方法是:

  1. 禁用UAC(我从来没有testing过,不知道它是否会工作 – 在我们的环境中,我们离开UAC)

  2. 创build一个名为“系统pipe理员”的新Windows本地组,或者添加个人的Windows用户帐户到应该能够访问它的人(但不要简单地添加BUILTIN \ Administrators)。 然后创build一个AppLocker规则,说“系统pipe理员”组的成员被允许运行任何东西。

  3. 保留由Windows生成的默认允许规则,但添加一些适用于最终用户的“拒绝”规则,防止他们访问您担心的Windows和Program Files目录中的特定文件。 这是我们在我们的环境中做的事情(例如,允许C:\ Windows \ *,但是阻止对cmd.exe,PowerShell.exe,regedit.exe等的访问)。请记住,拒绝规则总是覆盖允许规则。

如果还没有,请确保打开AppLocker日志logging,并查看Windows事件查看器,因为它应该提供有关特定用户未被允许运行的信息。 另外,请查看Test-AppLockerPolicy PowerShell命令来模拟什么是允许的,哪些不是针对特定的用户和可执行文件(尽pipe我不确定它是否可用于Windows 7,您可能需要升级您的PowerShell版本)。