Windows Vista

用“用户帐户控制”实现非管理员操作之梦

Alex Heaton

 

概览:

  • 为什么要禁止以管理员身份运行
  • 尝试以标准用户身份运行来解决问题
  • “用户帐户控制”的工作原理

在大多数 IT 组织内,让较少的用户具有管理员权限是一个值得实现的目标。尽管 IT 管理员普遍认为将用户限制为标准用户帐户是可行之策,但是大约 80 % 的人还是将桌面机部署为管理员帐户,结果导致

这些计算机更容易受到恶意软件侵袭,也更难于管理。但避免使用管理员帐户不是那么简单。如果您尝试一下,您就会发现有许多潜在的障碍。

首先是应用程序兼容性。由于许多应用程序是使用管理员帐户编写和测试的,所以在标准用户帐户下它们甚至无法运行(由于应用程序要尝试写入受限区域,如 Program Files 目录或 HKLM 注册表项,所以这是最常见的情况)。

其次,较早版本的 Windows® 对允许用户配置的设置做了过度限制。如果不请求支持中心,标准用户可能无法进行更改时区、电源设置、连接到安全的无线网络或安装 ActiveX® 控件等操作,这都会带来相关的成本。

幸运的是,Windows Vista™ 解决了这些问题。即使您的用户没有管理员帐户,Windows Vista 中的“用户帐户控制”(UAC) 和其他管理技术也使得用户可以更方便地支持和管理那些桌面机、提高标准用户的工作效率,并且实现这一切都不需要降低安全性,而在您采用修改访问控制列表 (ACL) 这一为用户提供可定制的更多访问权限的常用方法时则可能降低安全性。下面让我们仔细看看 Windows Vista 是如何缓解您的一些访问控制问题的。

虚拟化改善了兼容性

由于使用了文件和注册表虚拟化功能,所以许多在 Windows XP 上无法以标准用户身份运行的应用程序,不用经过修改即可在 Windows Vista 上运行。在 Windows XP 中,当许多应用程序试图往标准用户没有访问权限的文件系统和注册表的保护区域写入数据时,程序就会崩溃。Windows Vista 通过将写入操作(以及随后的文件或注册表读取)重定向到该用户配置文件中的一个特殊位置来改善兼容性。例如,如果一个应用程序试图向 C:\program files\contoso\settings.ini 进行写入操作,但该用户没有写入该目录的权限,那么写入操作将会被重定向到 C:\Users\用户名\AppData\Local\VirtualStore\Program Files\contoso\settings.ini。如果一个应用程序试图写入 HKLM\Software\Contoso\,该操作将会被自动重定向到 HKCU\Software\Classes\VirtualStore\MACHINE\Software\Contoso。图 1 概括了重定向过程。此外,Windows Vista 软件徽标认证计划还要求一个应用程序无需虚拟化就可以按标准用户身份运行;如果达不到,则不能将该徽标授予该应用程序。

图 1 文件和注册表虚拟化过程

图 1** 文件和注册表虚拟化过程 **

标准用户可执行更多操作

在 Windows Vista 中,赋予了标准用户帐户更多权限,所以标准用户可以在没有支持中心支持、也没有管理员帐户提供的全部权限的情况下执行常规任务。新的权限包括可以查看系统时钟和日历、更改时区、修改无线网络安全设置、更改电源管理设置以及从 Windows Update 下载并安装关键更新。

另外,在 Windows Vista 中,磁盘碎片整理是一个由系统自动计划的操作。需要管理员权限的操作标有一个盾牌图标,所以用户可以一目了然地知道他们可以更改哪些配置,无法更改哪些配置。

ActiveX 控件安装

对 ActiveX 控件进行集中管理可能尤为棘手,因为它们更新频繁,而且需要重新打包后才能通过系统管理服务器 (SMS) 等软件分发程序或组策略进行分发。Windows Vista 中含有一个叫做 ActiveX Installer 服务的可选组件,它允许 IT 管理员使用组策略指定标准用户可从其安装 ActiveX 控件的网站。要使用 ActiveX Installer 服务,请执行以下操作:

  1. 在客户端计算机上启用 ActiveX Installer 服务。您可以通过 Windows 功能控制面板小程序或在配置桌面映像时启用该服务。
  2. 在 Active Directory Group Policy 组策略中,依次打开“计算机配置”|“管理模板”|“Windows 组件”,然后选择 ActiveX Installer 服务。再选择“启用”。现在,等策略复制给这些用户后,他们就能够从您指定的站点安装控件了。

由于 ActiveX 控件和其他可执行代码可以执行恶意操作,所以请审慎使用该功能;请只对您信任的供应商使用该功能并在严格控制下的企业内部站点上使用。

ActiveX Control Installer 服务还与 Windows Vista 事件基础结构集成,所以如果有您的用户需要安装的 ActiveX 控件,您会自动收到通知。当标准用户试图安装没有经过批准的控件时,该服务会在应用程序日志中创建一个事件。在 Windows Vista 中,可以将各种任务配置为一旦触发一个事件,就自动发送一份电子邮件或执行另一个程序。以后当用户需要控件时您就会得知,您可以将该站点添加到组策略而不必让用户停下工作安装控件。如果使用 Windows Vista,您还可以订阅企业中多台计算机的事件,并生成一个您的用户试图安装的所有控件的列表。

硬件设备驱动程序安装

用户在旅行中无法安装需要的设备驱动程序这些问题是依然普遍使用管理员权限的另一个原因,特别是对于便携式计算机用户而言。Windows Vista 中新增的驱动程序库基础结构通过灵活控制标准用户可以安装的设备缓解了这个难题。首先,您可以用可信赖的驱动程序预先填充驱动程序库,以便用户在需要时可以安装允许的设备。其次,您可以使用组策略来为标准用户指定安装各类设备的权限,比如打印机,甚至指定具体的硬件 ID,如允许使用的闪存驱动器。

由于 Windows Vista 驱动程序库是一个位于每台客端计算机硬盘上的系统自带和第三方驱动程序的可信赖缓存区,所以用户不需要管理员权限就可以安装驱动程序。要对驱动程序库中的驱动程序进行分级,您可以将它们注入脱机映像或通过网络将驱动程序动态更新到在线客户端计算机。对于脱机映像,请使用打包管理器对驱动程序库中的驱动程序进行无缝分级。

而对于在线映像,请使用 pnputil.exe 或 DevCon 之类的命令行实用工具配合软件分发应用程序来添加、更新或删除驱动程序库中的驱动程序。为了进一步提高效率并灵活进行驱动程序分级,Windows Vista 赋予了 IT 部门和第三方签署驱动程序软件包完整性的能力。

默认情况下,只有具有管理员权限的用户才能将新的驱动程序添加到驱动程序库中。但是对于某些用户,特别是移动用户而言,有一个至关重要的要求就是在旅行中安装打印机之类的设备。借助新的组策略设置,Windows Vista 使您能够为标准用户指定所需的灵活性来安装允许的设备,即使尚未在驱动程序库中对驱动程序分级也可进行安装。要指派设备驱动程序分级权限,请打开组策略界面,依次定位到“计算机配置”| “管理模板”| “系统”| “驱动程序安装”|“允许非管理员为这些设备安装驱动程序”。您需要知道希望标准用户分级和安装的设备类的 GUID。您可以在 MSDN® 上在线查找设备类,如果已将设备安装到计算机上,请转到“设备管理器”|“属性”窗口。单击“详细信息”选项卡,然后选择标有“设备类 GUID”的下拉列表。您还需要确保用于签署驱动程序的证书已经存放在客户端计算机的“受信任的发布者”库中,通过组策略可以管理这个库。

Windows Vista 中的这些先进功能现在可为标准用户提供所需的安装设备的灵活性,所以您可以将更多的用户转移到受管理的桌面环境中。

桌面锁定的级别

即使 Windows Vista 操作系统中有了以上改进,但并非所有组织都能够使用标准用户权限部署其所有 Windows Vista 桌面机。有些组织可能还有仍然需要管理员权限的应用程序,或者它们拥有需要安装自己软件的用户(如开发人员)。没问题。Windows Vista 支持多个级别的桌面控制,可通过选择用户帐户和组策略进行配置,所有级别都提供了比 Windows XP 上的完全管理员权限的帐户更强大的管理功能和安全性。大多数与 UAC 设置有关的系统设置都可以在安全策略编辑器 (secpol.msc) 中找到,如图 2 所示。

图 2 安全策略编辑器

图 2** 安全策略编辑器 **(单击该图像获得较大视图)

第一个控制级别称为 Admin Approval Mode(管理员批准模式)。该模式降低了某些类型的恶意软件攻击的威胁,所用的方法是默认为用标准用户权限启动程序,并在有程序试图用管理员权限运行时向用户发出警告。在这种模式下,当用户运行需要管理员权限的程序时,您可以依据事件日志进行审核。但请记住,尽管某个应用程序可以使用标准用户权限运行,但该模式并不能提供与真正的标准用户帐户同样的安全性。用户仍然具有管理员权限并可以更改策略设置,安装未经批准的软件并允许安装 Rootkit 之类功能强大的恶意软件。

下一个级别以第一个级别为基础,但使用组策略来限制对用 Trusted Publishers(可信发行人)库中的证书签署的程序的升级。这样有助于防止未经签名的恶意软件获得管理员权限,并能防止用户安装能够完全控制计算机的软件。然而,当使用管理员帐户运行时,技术高超却很不谨慎的用户或者高度复杂的恶意软件可能会通过禁用(至少临时禁用)该策略来执行未经许可的操作。因此,当解决阻止您使用真正的标准用户帐户的任何问题时,应将上面的这两个级别作为临时措施。

下一个安全级别所涉及的内容是从管理员帐户组中删除用户并将其设置为标准用户。UAC 的一个功能称为 Over the Shoulder Credentials Dialog,默认情况下,当标准用户启动需要管理员凭证的程序时,系统会显示这个对话框。系统会阻止标准用户执行操作,但如果他们知道管理员的用户名和密码,输入后即可继续执行该操作。可能用到这个功能的一个典型情形是旅行中的便携式计算机用户。例如,如果用户在旅途中急需安装一份软件,那么他可以致电支持中心索取一个本地管理员帐户的密码,然后输入这个密码就可以安装软件了(参见图 3)。如果您将管理员密码提供给了用户,我建议您复原各种进程和工具,以便当该用户重新连接到网络时重置管理员密码,并记录使用这个管理员凭证运行过的程序。还要注意,如果 PC 被恶意软件感染,那么管理员可能会上当受骗,将演示权限赋予他们并不想给的恶意软件。

图 3 要求管理员密码

图 3** 要求管理员密码 **(单击该图像获得较大视图)

您也可以选择使用组策略禁用凭证对话。设置“用户帐户控制”:将标准用户设置的升级行为提示设置为“自动拒绝升级请求”(参见图 4)。这是我们建议大多数部署标准用户桌面的企业配置 UAC 时采用的做法。大多数企业采用该配置,以防止用户致电支持中心索取 IT 部门不希望用户知晓的密码。

图 4 组策略阻止的应用程序

图 4** 组策略阻止的应用程序 **(单击该图像获得较大视图)

要获得最强级别的桌面锁定,您可以使用 UAC 和标准用户帐户再配合 Windows 软件限制策略 (SRP) 进行设置。借助 SRP,企业就有了更近一步的措施阻止任何没有明确允许的软件运行。SRP 的设计目的是阻止未满足基于 Authenticode® 证书、散列、路径或因特网区域等特定标准的软件运行。SRP 通过组策略进行管理,只需简单的操作,您就可以创建一个非常强大的策略来阻止安装和执行未经批准的程序。一个典型的策略可能会禁止执行所有可执行文件,但在以下路径中找到的可以执行:%WINDIR% 和 %PROGRAMFILES%,并将策略应用到除管理员外的所有用户。

设置了该策略后,IT 人员仍然可以将所需的任何软件安装到 Program Files 目录中而无需将每个 .exe 都添加到许可列表(一个可接受项目的列表)中。并且由于标准用户没有访问这些目录的权限,因此标准用户无法将其移动到可以执行的位置。

您可能已经注意到没有提及 Power User 组。这是因为在 Windows Vista 中已经去掉了 Power User 组。为了限制管理员权限,有些组织使用 Power User 组。虽然将某些用户设置为 Power User 可防止其未经批准进行系统配置,该用户(或以 Power User 凭证运行的恶意软件)可能仍能获得更多权限甚至完整的管理凭证。为此,Windows Vista 设置了管理员用户和标准用户两种主要的帐户类型。

桌面管理基础结构

借助文件和注册表虚拟化、新的驱动程序库基础结构以及我介绍过的其他功能,能够大大方便您用标准用户帐户部署 Windows Vista 桌面。然而,即使有了这些技术,除非您有管理基础结构 — 各种工具、进程还有为无法独自完成某些操作的用户提供支持的人员,否则您仍然无法完全支持标准用户环境。您需要考虑的一些问题包括:

软件安装 如果用户无法独自安装软件,那么您需要提供其他方法。使用组策略是一种不需要借助其他任何管理软件的方法。您可以在组策略中,将一个程序添加到“添加/删除程序”列表中。如果用户用这种方法安装一个软件,那么系统就会启动该用户所需的升级权限来完成安装。要采用更强大的解决方案,您还可以使用 SMS 或类似产品。有些解决方案甚至允许您创建自助网络门户,标准用户可从该门户中仔细挑选要安装的软件。

软件更新 您需要有一种在多台 PC 上安装更新的方法,而不是发出一封电子邮件告诉用户“请安装这个更新!”要管理和部署大多数 Microsoft 更新,您可以使用 Windows Server Update Services,这是一个可免费下载的适用于 Windows Server 系统的软件包。要部署范围更广的更新,请再次考虑 SMS 之类的桌面管理产品。

支持流程和人员配备 当用户致电支持中心询问会导致性能故障的问题或希望安装新软件时,大多数情况下,您不能只通过电话告诉他们操作步骤,因为他们可能没有相应权限。您的 IT 部门需要多多利用远程协助和远程管理工具来诊断问题和更改设置。虽然支持中心人员可以使用远程桌面进行远程管理更改,但由于用标准用户身份登录无法批准需要管理员权限的操作提示,所以,甚至 Windows 远程协助的使用方式也会有所不同。

使用明确高效的流程来处理策略异常是至关重要的。我们假设市场推广部某位员工需要安装她正为部门进行评估的一套新图形设计工具的试用版本。由谁来发出安装这个软件的批准呢?她的经理,她的主管还是 CIO?如何将这套软件安装到她的计算机上,她又必须等待多长时间呢?我们建议创建一个与支持中心问题跟踪系统相集成的简单的批准工作流程。一个基本的工作流程可能是这样的:

  1. 用户提交安装程序的请求以及安装程序的链接(位于他们的本地硬盘或光盘驱动器上),并确认该软件不是非法获得,也不会用于恶意目的。
  2. 请求被发送给经理要求批准。
  3. 请求被传送到 IT 部门的应用程序首席技术人员,他会进行检查以确保没有任何已知的兼容性问题,执行病毒扫描,并确保该公司尚未购买该程序的单位许可证,也未向其他供应商购买类似程序的许可证。
  4. 请求被转发给一位技术支持人员,该技术人员远程启动安装并在软件可用时通知用户。

要创建工作流程界面,您可以编写动态网页脚本或获取商业支持或问题跟踪软件包。对于已加入管理和未进行管理的环境,您可以要求不同的人员配备。但愿您只需要较少的技术人员就能对不稳定的或受感染的 PC 进行实际诊断或恢复映像。然而,一开始您可能需要分配更多的人员进行软件打包和部署。

从长远来看,由于机器能够更长时间地稳定运行,所以您付出的支持成本较低,但一开始您的支持中心可能要面对用户询问配置的求助电话增长的局面。等使用用户所需的设置配置了桌面映像和组策略后,打给支持团队的电话就会逐渐减少。

文化

最后一个障碍不是技术障碍,而是心理障碍。有些用户可能对没有管理员权限这种构想感到不适应。但我相信大多数用户不会发现有不同之处。所以,如果您在部署 Windows Vista 时强制使用标准用户帐户,那么集成桌面搜索、崭新的 Aero™ (透明)用户界面以及面向移动用户的改进所带来的生产力提升将远远抵消任何非管理员身份所带来的不便。然而,如果糟糕的流程导致人们要等待几周时间才能获得安装一份软件的许可,那么肯定有些员工会不太高兴。

从根本上说,确保 PC 资产的安全、防止使用未经许可的软件,以及强制遵守政府法规和内部政策是 IT 部门的职责。大多数公司会发现实现这一目标的唯一方法是,制定一套限制拥有管理员权限的用户数量的新政策。幸运的是,您会发现在 Windows Vista 上做到这点容易多了。

更多资源

要获取减少管理员权限的帮助,请参阅:

Alex Heaton是 Windows Vista 安全团队的高级产品经理。他曾经担任 Microsoft 安全网站(拥有 microsoft.com/protect)的首席站点经理。他也是“用户帐户控制”团队博客 blogs.msdn.com/uac 的撰写者之一。

© 2008 Microsoft Corporation 与 CMP Media, LLC.保留所有权利;不得对全文或部分内容进行复制.