最小权限 BUILTIN\Administrator 失败使用 AppLocker 配置应用程序控制策略

最小权限 BUILTIN\Administrator 失败使用 AppLocker 配置应用程序控制策略

我问过这个问题超级用户不久前,我才意识到服务器故障可能是更好的选择。

我正在一台运行 Windows 7 SP1 Ultimate 的计算机上配置执行控制,该计算机有一个硬盘驱动器和一个分区。AppLocker 提供了创建“默认规则”的选项。对于可执行规则组,这些规则如下:

  • 允许所有人路径 %PROGRAMFILES%*
  • 允许所有人路径 %WINDIR%*
  • 允许 BUILTIN\Administrators 路径 *

(没有例外。)

有了这些,“一切都按预期进行”。但是,如果删除适用于“所有人”的前两条规则,事情就会出错。

现在,使用 BUILTIN\Administrators 安全组中的帐户登录已不再可能。(如果该帐户之前已经登录,您可能需要重新启动计算机才能看到此操作失败。此外,这不适用于仍然有效的 BUILTIN\Administrator 帐户)。当您尝试时,会发生以下情况:

有延迟,当应该显示桌面时屏幕变黑。然后,就没事了。计算机没有变得无响应,例如 Ctrl + Alt + Delete 仍然有效。

(如果我重新配置 AppLocker 以明确允许 %WINDIR%* 的 BUILTIN\Administrators 执行权限,或者为“所有人”恢复该规则,则这些帐户可以再次登录。)

根据微软

星号 (*) 通配符可用于路径字段。单独使用的星号 (*) 字符表示任何路径。当与任何字符串值组合时,规则仅限于文件的路径以及该路径下的所有文件。例如,%ProgramFiles%\Internet Explorer* 表示 Internet Explorer 文件夹内的所有文件和子文件夹都将受到规则的影响。

对我来说,这意味着 BUILTIN\Administrators 的默认规则应该完全地与为“Everyone”创建的默认规则重叠,使得这些规则在属于 BUILTIN\Administrators 组的帐户的情况下变得多余。如您所见,情况似乎并非如此。

因此,我对此有两个问题:

  1. 为什么 BUILTIN\Administrators 的默认规则本身不足以使属于该组的帐户正常工作(即它有什么问题,以及是什么导致它失败),以及;
  2. 就 AppLocker 配置而言,工作管理帐户(非 BUILTIN\Administrator)的最低权限配置到底是什么?

答案1

据我了解,您的问题与 Windows 如何处理管理帐户有关。

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

因此,当您以管理员组成员身份登录时,您的用户帐户在技术上不具备管理员权限(因为您没有使用 UAC 提升权限),因此不符合“允许 *”规则的要求。然后,您的 Windows 会话会崩溃,因为您的用户帐户无权运行登录期间所需的任何 Windows 系统文件。

我在我的某个 AppLocker 环境中遇到了类似的问题,我没有像您一样锁定 Programs Files 和 Windows 目录(通过删除默认规则),但我有一条规则,基本上是说“BUILTIN\Administrators 的成员,允许 *”。但是,当您以管理员身份登录并尝试双击 Windows/Program Files 之外的随机可执行文件时,您会遇到 AppLocker 违规,它会阻止您运行它。相反,您必须右键单击它并转到“以管理员身份运行”;只有到那时,AppLocker 才会明白您确实是 BUILTIN\Administrators 的成员。

可能的解决方法是:

  1. 禁用 UAC(我从未测试过这个,不确定它是否会起作用——在我们的环境中,我们保持 UAC 开启)

  2. 创建一个名为“系统管理员”或其他名称的新 Windows 本地组,并将应该能够访问该组的个人 Windows 用户帐户添加到其中(但不要不是只需将 BUILTIN\Administrators 添加到其中即可;然后创建一个 AppLocker 规则,规定“系统管理员”组的成员可以运行任何内容。

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

如果您还没有这样做,请务必打开 AppLocker 日志记录并查看 Windows 事件查看器,因为它应该提供有关特定用户未被允许运行某些操作的原因的信息。另请查看Test-AppLockerPolicyPowerShell 命令用于模拟特定用户和可执行文件允许和不允许执行的操作(不过,我不确定它是否在 Windows 7 中可用,您可能需要升级您的 PowerShell 版本)。

相关内容