xp系统下载-最好的系统光盘下载基地
您的位置:XP系统下载 > 系统教程 > Win7操作系统用户帐户控制功能详解

Win7操作系统用户帐户控制功能详解

作者:xp系统下载   来源:http://www.xpxtxz.com  发布时间:2011-06-09 11:01
文章内容

  在家庭和公司环境中,使用标准用户帐户可以提高安全性并降低总体拥有成本。当用户使用标准用户权限(而不是管理权限)运行时,系统的安全配置(包括防病毒和防火墙配置)将得到保护。这样,用户将能拥有一个安全的区域,可以保护他们的帐户及系统的其余部分。对于企业部署,桌面 IT 经理设置的策略将无法被覆盖,而在共享家庭计算机上,不同的用户帐户将受到保护,避免其他帐户对其进行更改。


  但是,很久以来,Windows 的用户一直都在使用管理权限运行。因此,软件通常都开发为使用管理帐户运行,并且(通常无意间)依赖于管理权限。为了让更多软件能够使用标准用户权限运行,并且帮助开发人员编写能够使用标准用户权限正常运行的应用程序,Windows Vista 引入了用户帐户控制 (UAC)。UAC 集成了一系列技术,其中包括文件系统和注册表虚拟化、受保护的系统管理员 (PA) 帐户、UAC 提升权限提示,以及支持这些目标的 Windows 完整性级别。我在我的会议演示文稿和 TechNet 杂志UAC 内部信息一文中详细讨论了这些内容。


  Windows 7 沿用了 UAC 的目标,基础技术相对未做改变。但是,它引入了 UAC 的 PA 帐户可以运行的两种新模式,以及某些内置 Windows 组件的自动提升机制。在此文章中,我将论述推动 UAC 技术发展的因素、重新探讨 UAC 和安全性之间的关系、描述这两种新模式,并介绍自动提升的具体工作方式。请注意,此文章中的信息反映了

 
  Windows 7 预发布版本的行为,该行为在许多方面与 beta 版有所不同。

  UAC 技术

  UAC 技术的最基本元素和直接效益在于它能使标准用户更方便地使用 Windows。演示示例展示了 Windows XP 和 Windows Vista 上有关设置时区的权限要求的不同之处。在 Windows XP 上,更改时区需要管理权限,实际上,即使是使用时间/日期控制面板小程序查看时区也需要管理权限。


  这是因为 Windows XP 未将更改时间(安全敏感的系统操作)与更改时区(只是影响时间的显示方式)区分开来。在 Windows Vista(和 Windows 7)中,更改时区不是一项管理操作,并且时间/日期控制面板小程序也将管理操作与标准用户操作进行了分隔。仅仅这一项更改就让许多企业能够为出差的用户配置标准用户帐户,因为用户将能够调整时区来反映他们的当前位置。Windows 7 进一步做出了改进,比如刷新系统的 IP 地址、使用 Windows Update 来安装可选的更新和驱动程序、更改显示 DPI,以及查看标准用户可访问的当前防火墙设置。


  文件系统和注册表虚拟化在后台工作,可以帮助许多无意间使用管理权限的应用程序在没有管理权限的情况下也能正常运行。对于不必要地使用管理权限而言,最常见的情况是将应用程序设置或用户数据存储在注册表或文件系统中系统所使用的区域内。举例来说,某些旧版应用程序将其设置存储在注册表的系统范围部分


  (HKEY_LOCAL_MACHINE/Software),而不是每用户部分 (HKEY_CURRENT_USER/Software),而注册表虚拟化会将尝试写入系统位置的操作转到 HKEY_CURRENT_USER (HKCU) 中的位置,同时保持应用程序兼容性。


  设计 PA 帐户的目的是为了鼓励开发人员将应用程序编写为只需要标准用户权限,同时使尽可能多的在管理组件和标准用户组件之间共享状态的应用程序能够继续工作。默认情况下,Windows Vista 或 Windows 7 系统上的第一个帐户(在 Windows 的早期版本上为完全权限管理员帐户)是 PA 帐户。PA 用户执行的任何程序都使用标准用户权限运行,除非用户明确提升了应用程序,即授予应用程序管理权限。诸如安装应用程序和更改系统设置等用户活动会触发提升权限提示。这些提升权限提示是最显著的 UAC 技术,表现形式为切换到一个包含允许/取消对话框的屏幕,背景为灰色的桌面快照。


  在安装之后创建的帐户是标准用户帐户,默认情况下,这些帐户通过一个“即时权限提升”提示提供提升功能,该提示要求提供将用于授予管理权限的管理帐户的凭据。利用这一便捷功能,只要共享家庭计算机的家庭成员或更注重安全的使用标准用户帐户的用户知道管理帐户的密码,他们就能够用管理权限来运行应用程序,而不必手动切换到其他用户登录会话。此类应用程序的常见示例包括安装程序以及家长控制配置。


  在启用了 UAC 后,所有用户帐户(包括管理帐户)都将使用标准用户权限运行。这意味着,应用程序开发人员必须考虑他们的软件默认情况下将没有管理权限这一事实。这应会提醒他们将其应用程序设计为使用标准用户权限工作。如果应用程序或其功能的某些部分需要管理权限,它可以利用提升机制来允许用户解锁该功能。通常,应用程序开发人员只需进行少许更改就可让其应用程序使用标准用户权限正常工作。如有关 UAC 的 E7 博客文章所述,UAC 成功地改变了开发人员编写软件的方式。


  提升权限提示的另一个优点是:它们能够在软件想要对系统进行更改时“通知”用户,并使用户有机会来阻止这种情况。例如,如果用户不信任或不想允许修改系统的软件包要求管理权限,则它们可以拒绝提示。

 

  提升和恶意软件安全性

  UAC 的主要目标是让更多用户能够使用标准用户权限运行。但是,其中一项 UAC 技术看起来像是安全功能:许可提示。许多人认为,因为软件必须要求用户授予其管理权限,因此他们能够防止恶意软件获得管理权限。提示是一种视觉暗示,它仅为其所述操作获取管理权限,除此之外,用户还可以切换到不同桌面来显示提升对话框,以及使用 Windows 完整性机制,包括用户界面特权隔离 (UIPI),这些都使人们更加坚信这一理念。


  正如在 Windows Vista 推出之前我们所谈到的,提升的主要目的不是安全性,而是其方便性:如果用户必须通过登录到管理帐户或通过“快速用户切换”切换到管理帐户,从而切换帐户以执行管理操作,则大多数用户都只会切换一次,而不会切换回来。更改应用程序开发人员进行设计所针对的环境将不会有进展。那么,安全桌面和 Windows 完整性机制的目的是什么?


  为提示切换到不同桌面的主要原因是:标准用户软件无法“欺骗”提升权限提示,例如,它们无法通过在对话框上的发布者名称上绘图来欺骗用户,让用户认为是 Microsoft 或另一个软件供应商(而不是这些软件)生成了提示,从而欺骗提升权限提示。这种替代桌面称为“安全桌面”,因为它是系统(而不是用户)所拥有的,就像系统显示 Windows 登录对话框的桌面一样。


  使用其他桌面还有一个重要目的,就是为了实现应用程序兼容性:在正在运行其他用户拥有的应用程序的桌面上,如果内置辅助功能软件(比如屏幕键盘)能够正常工作,那么此时就有一个第三方软件不能正常工作。当本地系统帐户拥有的提升对话框显示在用户拥有的桌面上时,该软件将无法正常工作。


  Windows 完整性机制和 UIPI 的设计目的是在提升的应用程序周围建立一道保护性屏障。它最初的目标其中之一是防止软件开发人员投机取巧,利用已经提升的应用程序来完成管理任务。使用标准用户权限运行的应用程序无法将合成鼠标或键盘输入发送到提升的应用程序中,以使应用程序执行其指令,也无法将代码注入提升的应用程序以执行管理操作。


  Windows 完整性机制和 UIPI 在 Windows Vista 中用于保护模式 Internet Explorer,使得感染 IE 的运行实例的恶意软件更难于修改用户帐户设置,例如,将本身配置为在每次用户登录时启动。尽管 Windows Vista 的一个早期设计目标是使用带有安全桌面的提升、Windows 完整性机制和 UIPI,在使用标准用户权限和管理权限运行的软件之间建立一个坚不可摧的屏障(称为安全边界),但由于以下两个原因,而导致该目标未能实现,并随之被放弃:可用性和应用程序兼容性。

 


 

  首先,考虑提升对话框本身。它显示将被授予管理权限的主要可执行文件的名称和发布者。遗憾的是,尽管越来越多的软件发布者为其代码添加了数字签名,但仍然有一些软件发布者没有这样做,并且还有许多未添加签名的旧版应用程序。对于未签名的软件而言,提升对话框只会显示可执行文件的文件名,因此,对于某些恶意软件(例如,已采用用户帐户运行并且正在监视未签名 Setup.exe 应用程序安装程序的提升)而言,将能够将可执行文件替换为恶意的 Setup.exe,而用户却一无所知(请参阅图 1)。


  其次,该对话框不会告知用户可执行文件在启动时将会加载哪些 DLL。如果可执行文件位于用户可以控制的目录中,则使用用户标准权限运行的恶意软件将能够替换该位置中软件将使用的任何关联 DLL。此外,恶意软件可以使用并行功能,使可执行文件加载应用程序或系统 DLL 的恶意版本。并且,除非用户警惕地单击详细信息按钮,并仔细查看为提升可执行文件列出的文件路径,否则恶意软件可以将可执行文件复制到名称类似的位置,例如,/ProgramFiles/Vendor/Application.exe(注意应为“Program Files”的内容中缺少的空格),在该位置中,恶意软件将可控制应用程序加载哪些 DLL。在图 2 中,我已将 Microsoft 网络监视器的一个组件复制到用户创建的 C:/ProgramFiles 目录(用户可控制该目录),并启动了该组件。


 
  最后,为了实现应用程序兼容性,提升的应用程序与标准用户环境共享实质性状态,恶意应用程序可以使用该状态来影响提升的应用程序的行为。就这一点而言,最直观的示例就是用户的注册表配置文件 HKEY_CURRENT_USER (HKCU)。该配置文件是共享的,因为用户希望他们作为标准用户注册的设置和扩展能够在提升的应用程序中工作。恶意软件可以使用 HKCU 中注册的外壳扩展来加载到使用任何外壳浏览对话框(比如“打开文件”和“保存文件”)的已提升应用程序中。其他各种状态也是共享的,特别是基本命名对象命名空间,应用程序将在其中创建同步和共享内存对象。举例来说,恶意软件可以利用该共享来劫持提升的应用程序使用的共享内存对象,从而对应用程序和系统造成危害。

  至于 Windows 完整性机制,由于我前面提到的提升问题,因此它作为屏障的有效性是有限的,而它还存在由于应用程序兼容性而导致的限制。举例来说,UIPI 不会阻止标准用户应用程序在桌面上绘图,这一点可能会被用来欺骗用户,采用为恶意软件授予管理权限的方式来与提升的应用程序交互。同时,Windows 完整性机制也不能跨网络应用。采用 PA 帐户运行的标准用户应用程序将能访问 PA 帐户具有管理权限的远程系统上的系统资源。如果解决这些限制,将会对应用程序兼容性造成很大影响。尽管如此,我们一直在探寻提高系统安全性(例如,改善保护模式 IE),同时解决应用程序兼容性问题并与软件开发人员密切配合的方法。

  那么,当您在启用了 UAC 的情况下采用 Windows Vista PA 帐户运行时,您将得到什么程度的恶意软件防护?首先,请记住,要使任何这种情况发生,恶意软件首先必须进入系统并且开始执行。Windows 具有许多深层防御功能,其中包括数据执行保护 (DEP)、地址空间加载随机化 (ASLR)、保护模式 IE、IE 8 SmartScreen 筛选器,以及可以帮助防止恶意软件进入系统并运行的 Windows Defender。

  至于恶意软件通过某种方式成功进入系统的情况,由于恶意软件作者(比如合法的开发人员)假设用户使用管理权限运行,因此大多数恶意软件将无法正常工作。仅这一点可以被视为一种安全优势。但是,已进入系统并且设计为可利用这些机会的恶意软件将能够在用户第一次提升时获得管理权限 — 但恶意软件甚至不需要等待“实际”提升,因为它可以促成提升,而这种提升甚至可以欺骗最注重安全的用户。我已经在我的 UAC 内部信息和 Windows 安全边界演示文稿中公开演示过恶意软件如何能够劫持提升过程(演示位于安全边界讨论的 1 分 03 秒处)。但是,请记住,如果恶意软件已经开始运行,它只需使用标准用户权限就可达到恶意软件想要达到的大部分目的,其中包括将本身配置为在每次用户登录时运行、窃取或删除所有用户的数据,或者甚至成为僵尸网络的一部分。
 
上一页12
顶一下
(0)
0.00%
踩一下
(0)
0.00%
收藏本站 | 帮助(?) | RSS | 网站地图
Copyright © 2011 XP系统下载. All Rights Reserved .

手机游戏手机应用电脑软件游戏资讯