扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
对于全新的Windows Vista,人们谈论最多的内容之一就是它新增的用户帐户控制(User Account Control ,UAC)安全机制。在正式出台前,这一功能曾经拥有过多种名字和缩写,比如受限用户帐户(Limited User Account/LUA)以及用户帐户保护(User Account Protection/UAP)等。在本文中,我们将讨论UAC的必要性,它的工作方式,以及如何配置它,以便让我们工作起来更顺利。
UAC的必要性
UAC主要用来解决用户以管理员身份登录的问题。由于有些系统功能或程序需要以管理员的身份操作,因此很多用户(包括IT专家)平时都会以管理员身份登录系统,这给系统安全带来了相当多的问题。微软在以往的操作系统中也试图解决这一问题,因此提供了二次登录功能("run as"功能),但是大多数用户依然采用管理员帐户进行登录和日常工作。
那么总是以管理员身份操作系统,会给系统带来什么危害呢?这将给系统安全带来巨大的风险,当系统被恶意软件感染后,恶意软件会具有与登录用户权限一致的特权。如果此时用户是以管理员身份登录的,那么恶意软件将具有最大的破坏力。传统的应对方式并不可取:如果强制用户以普通用户身份登录,那么很多正常的系统或程序功能在该用户的权限状态下将无法使用。
对于这一问题,Vista采用了两种方式来解决。对于常用的功能,比如安装打印机驱动、创建VPN连接,或者是进行Windows系统的升级,将不再需要用户以管理员权限登录系统进行操作了。另一种更完善的方式就是UAC。UAC可以让用户以管理员身份登录,但是会以普通用户权限执行大部分操作,当用户试图执行一些需要较高权限的操作时,系统才会提升用户的操作权限。
UAC是如何工作的
UAC的一个基本任务就是将需要特权的任务从“普通”任务中提取出来,这样,用户就可以以普通用户的权限执行大部分任务,而以更高的权限执行特殊任务。
在UAC下,登录过程与以往的操作系统有了重大的改变。当用户以管理员帐户登录时,会同时获得管理员访问令牌和普通用户访问令牌。普通用户访问令牌可以用来启动Explorer.exe(所有用户初始化进程的父进程,这些进程会继承Explorer.exe的访问令牌权限)。这意味着所有的程序将以普通用户权限进行工作,除非UAC对某个程序进行权限提升。当管理帐号被设定为Administrator Approval Mode模式时,系统会按以上描述工作。
Administrator Approval Mode是一种防护机制,可以防止用户在以管理员帐号登录后无意间在系统中植入恶意软件,从而使恶意软件具备了管理员权限。在这种模式下,用户虽然以管理员帐户登录,但是仍然是按照普通用户的权限执行大多数操作,除非某一程序需要用户以管理员权限进行操作,用户的权限才会被提升。当这种情况发生,UAC会弹出一个对话框,询问用户是否提升权限,如图A所示。
图A当用户以管理员帐号登录,运行的某个程序需要提升权限才能运行时,系统会询问用户是否提升权限。
不过,虽然有Administrator Approval Mode,与以普通用户帐号登录系统相比,以管理员身份登录系统的安全性还是要低一些。因为当用户以普通用户身份登录系统后,一旦某个程序需要提升权限才能运行,用户必须要在UAC对话框中输入管理员帐号和密码才能确认提升权限。而当用户以管理员帐号登录后,遇到同样的问题,只需要点击“继续”按钮就可以了。这使得用户很少对可能引发的安全威胁进行考虑,从而降低了这一机制的实际效果。
提示:虽然UAC可以帮助用户防止恶意软件获得更高的破坏力,但是用户仍然需要通过反病毒程序以及反恶意软件程序确保系统安全,并且要经常更新这类安全软件。
通过文件备份或计算机备份窗口的盾形图标,Vista可以帮助用户确认哪些功能或操作是需要提升权限才能完成的(如图B所示)。需要注意的是,恢复备份内容的按钮并没有盾形图标,所以也就不需要提升权限。
图B盾形标志可以确认某个操作是否需要提升权限
在Vista之前的系统中,包含一个叫做“Power Users”的用户权限,用户以这种权限登录系统,可以执行安装打印机驱动或者安装系统软件等工作。而在UAC下,用户不再需要这种超级用户的模式了,但是为了向后兼容以往的Windows系统,Vista依然保留了这一权限等级。如果用户需要在Vista中使用Power Users用户组,则需要修改默认的注册表许可权限和系统文件夹权限,使其与Windows XP的权限设置一致,并将其应用到安全模板上。
在Vista中,管理员不再需要在普通帐号和管理员帐号间反复登录,也不需要像前几个操作系统那样采用Run As方式实现不同权限级别的操作。因为Admin Approval Mode不但可以提升操作权限,还可以将管理权限降低到普通用户级别。
在默认情况下,当UAC对话框出现时,用户桌面的其它部分均转换为灰色,同时也不会响应用户的任何操作,这迫使用户只能对UAC进行操作。这种模式叫做Secure Desktop Mode,它可以防止其它程序(比如在用户不知情的情况下运行的恶意软件)与权限提升相互作用。
配置UAC
通过修改本地安全策略或基于域的组策略,管理员可以对UAC的动作进行控制。比如,如果用户不希望管理员帐号运行在Admin Approval Mode模式下(也就是说,不希望每次需要提升权限时都出现对话框),用户可以关闭这一功能。另外,用户可以通过配置组策略来限制普通用户只能安装可信的程序和设备。
用户可以在本地安全策略中的Local Policies | Security Options区域发现UAC策略设置项目。如图C所示。
图C通过修改本地安全策略或域组策略,管理员可以控制UAC的行为。
下面是用户可以配置的一些策略项目:
内置管理员帐号的Admin Approval Mode模式(Admin Approval Mode For The Built-in Administrator Account):对于新安装的Vista系统,或者从一个包含多个管理员帐号的系统升级到Vista系统,这一设置在默认情况下是禁用的。如果启用了这一设置,那么系统内置的管理员帐号将工作在Admin Approval Mode模式下,也就是在运行普通程序时以普通用户权限进行操作,在运行管理级别程序时,进行权限提升。
在Admin Approval Mode模式下进行管理员权限提升的提示动作(Behavior Of The Elevation Prompt For Administrators In Admin Approval Mode):在默认情况下,当程序需要提升权限时,UAC会对管理员进行提示。用户可以将其设置为No Prompt,这样当用户以管理员帐号登录后,遇到需要提升权限的操作,UAC将不再给出提示,而是自动进行权限提升。这种设置会降低用户以管理员身份登录后UAC提供的安全性,虽然很多管理员都通过这种方式减少UAC对话框带来的麻烦,但是一般情况下并不推荐这种设置。另一种设置方式则可以提升UAC的安全性,那就是用认证信息代替许可提示。在这种设置下,UAC不但会给出权限提升对话框,还需要用户在对话框中输入管理员帐号和密码,就算用户当前以管理员身份登录也一样需要输入。
普通用户的权限提升动作(Behavior Of The Elevation Prompt For Standard Users):这一策略的默认状态根据Vista系统环境有关。Vista家庭版用户如果以普通用户身份登录系统,当遇到需要提升权限才可以执行的功能时,UAC会给出对话框,用户只需要输入管理员帐号和密码即可。而对于Vista企业版环境,普通用户如果要执行一个更高权限的功能,会被UAC告知不具备执行该功能的权限。此时用户为了执行该功能,唯一的方式就是退出目前登录的帐户,再用管理员帐号登录系统,或者使用Run As命令,输入具有管理员权限的帐户名和密码。用户可以将该策略设置为不提示或根据需要提示。
应用程序安装检测和权限提升提示(Detect Application Installations And Prompt For Elevation):当这一策略设置为允许时,不论用户何时运行安装程序,UAC都会提示用户进行许可(以管理员帐号登录时)或者输入管理员帐号和密码(以普通用户登录时)。如果将这一策略设置为禁用,普通用户将无法安装新的应用程序。默认情况下,该策略在家庭版Vista中为允许,在企业版Vista中是禁用。
仅对签名有效的程序进行权限提升(Only Elevate Executables That Are Signed And Validated):在默认状态下,这一策略是禁用的,也就是说,不论是签名的,或者未经签名的可执行程序,都可以运行。如果要在企业环境下提高安全水平,用户可以开启这一策略,从而在程序要求提升运行权限前对其签名进行检查。
仅提升安装在安全目录下的UIAccess 应用程序的权限(Only Elevate UIAccess Applications That Are Installed In Secure Locations):默认情况下这一策略设置为允许,因此除了来自Program Files或Windows文件夹下的程序,系统不会给其它程序UIAccess特权和用户权限。这两个文件夹的访问控制列表可以防止用户随意改动这两个目录中的文件。如果一个UIAccess可执行程序从其它路径下运行,那么将不会附带任何特权。如果用户禁用了本策略,Vista将不再检查可执行程序的路径,这意味着任何UIAccess程序将以登录用户的完全权限运行(在用户允许该程序运行后)。
所有的管理员帐号均以Admin Approval Mode模式运行(Run All Administrators In Admin Approval Mode):默认情况下,本策略是允许状态,即管理员总会收到UAC的提示(根据上面提到的“在Admin Approval Mode模式下进行管理员权限提升的提示动作”策略)。如果禁用了本策略,那么Application Information Service (AIS)不会自动启动,而UAC则会被关闭。要让该策略生效,用户必须重新启动电脑。如果用户是通过这种方式关闭UAC的,那么在下次系统启动后,用户会收到一条对话框,提示用户系统的安全性已经降低了,并提供给用户重新开启UAC的选项。如果用户不希望在以管理员帐号登录后还出现UAC对话框,可以根据我们前面介绍的“在Admin Approval Mode模式下进行管理员权限提升的提示动作”策略进行设置。
出现权限提升对话框时切换到安全桌面模式(Switch To The Secure Desktop When Prompting For Elevation):默认情况下,该策略为允许状态。但是很多管理员可能不喜欢在出现UAC对话窗口时,桌面的其余部分都被禁用,因此大多数人都会将这一项设置为禁用状态。在该策略允许的状态下,桌面只会接受Windows进程的消息,其它应用程序都将暂时无法与桌面进行交互动作。如果该策略被禁用,UAC提示对话框仍然会出现(假设用户没有禁止该对话框),但是用户桌面不会被禁用,用户仍然可以与桌面上的项目进行交互。
虚拟文件和注册项写错误时的预定位置(Virtualize File And Registry Write Failures To Per-User Locations):这一策略在默认情况下是允许的,即任何Vista之前的程序(不兼容UAC的程序)在出现磁盘写错误时,会被重新定向到一个预先定义好的文件系统或注册表位置。如果用户仅用了这一策略,那么任何与UAC不兼容的程序在试图向Program Files, Windows, 或System 32文件夹中写入数据,都会失败。
如何应对遗留程序的兼容问题?
如果用户需要运行一些与UAC不兼容的遗留程序,用户需要对这些程序进行配置,以便它们可以在Vista下正常运行。如果该程序必须要以管理员权限运行,那么这个程序必须要被标记上所需的执行等级,以便在用户运行该程序时可以出现UAC提示。
用户可以根据程序运行所需的等级将该程序标记为以下三类中的任意一种:
RunAsInvoker:程序在运行时采用与父进程相同的权限和优先级 (一般程序的父进程为Explorer.exe,以普通用户级别运行)。
RunAsHighest:这类程序以登录用户所能拥有的最高权限和优先级运行。不论是管理员还是普通用户都可以使用该程序,但是由于权限不同,所能够实现的功能也不同。或者程序需要比普通用户权限更高的权限,但是并不需要本地管理员权限。
RunAsAdmin:这类程序需要以管理员权限运行,普通用户无法启动这类程序,如果要启动这类程序,登录用户必须属于本地管理员组。
用户可以通过Application Compatibility Toolkit应用程序兼容性工具来标记那些不兼容UAC的程序,并解决兼容性问题。更多的例子,可以参看TechNet的Windows Application Compatibility。
总结
用户帐户控制(UAC)是Vista重要的新功能之一。它可以防止恶意软件获得更高的执行权限,就算用户是以管理员身份登录系统,也可以起到防护作用。管理员可以通过修改本地安全策略或域组策略来修改UAC的执行动作,甚至关闭UAC(不推荐)。
词汇表
Admin Approval Mode(管理核准模式): 这是Vista的默认模式,在这种模式下,就算用户以管理员帐号登录,在执行大部分程序时,也将采用普通权限,当程序需要提升权限时,用户需要进行确认。
File/registry virtualization(文件/注册项虚拟化):这是Vista提供的新功能,可以让程序拥有自己的虚拟化空间,存放试图修改的项目内容。
Legacy applications(遗留程序):在Vista之前出现的程序,并不兼容UAC。
Secure Desktop(安全桌面): 当UAC对话框出现后,桌面的其余部分会逐渐变灰,显示桌面被锁定并且不会影响用户的操作。
Shield icon(盾形图标):如果某个操作的按钮上被标记了一个盾形图标,说明这个操作需要管理员权限。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
去集群 更超群——大容量网络演进之路
2019 IBM 中国论坛
H3C 2019 Navigate 领航者峰会
助推数据中心网络现代化转型 打造灵活可靠基础架构平台