深入了解Windows Vista用户帐户控制

时间:2007-06-03 09:53:04   来源:  作者:  点击:次  出处:技术无忧
关键字:UAC Reg 虚拟化状态 用户令牌


  具有“仅拒绝”标志的组只能用于拒绝(而不能允许)用户对某个资源的访问,这样就消除了当该组被整个删除时所产生的安全漏洞。例如,如果某个文件的访问控制列表 (ACL) 拒绝了 Administrators 组的所有访问,但为该用户所属的另一个组授予某些访问权限,那么如果令牌中没有管理员组,则会为用户授予访问权限,从而为该用户身份的标准用户版本赋予比管理员身份更多的权限。
  独立系统(通常是家用计算机)和加入域的系统对来自远程用户的 AAM 访问的处理不同,因为连接了域的计算机可以在其资源权限内使用域管理组。当用户访问独立计算机的文件共享时,Windows 将请求该远程用户的标准用户身份,但在加入域的系统上,Windows 将通过请求该用户的管理身份来支持其所有域组成员。
  方便地获得管理权限
  系统和应用程序可以通过多种方式标识对管理权限的需求。其中一个是显示在资源管理器 UI 中的“以管理员身份运行”上下文菜单项和快捷方式选项。这些项目包含一个彩色盾牌图标,它应放在任何按钮或菜单项上,当选中它时会导致权限的提升。选择“以管理员身份运行”菜单项将使资源管理器使用动词“runas”调用 ShellExecute API。
  绝大多数安装程序都要求使用管理权限,因此,映像加载程序(用于触发可执行文件的启动)包含了安装程序检测代码以发现可能的旧安装程序。它使用的某些启发方式很简单,只需检测该映像在其文件名或内部版本信息中是否具有设置 (setup)、安装 (install) 或更新 (update) 字样;较为复杂的启发方式则涉及扫描可执行文件中的字节序列,第三方安装包装实用工具大多为这种情况。
  映像加载器还会调用应用程序兼容性 (appcompat) 库,以查看目标可执行文件是否要求使用管理员权限。该库将查询应用程序兼容性数据库,以查看该可执行文件是否关联了 RequireAdministrator 或 RunAsInvoker 兼容性标志。
  可执行文件请求得到管理权限的最常用方式是在其应用程序指令清单文件中包含一个 requestedElevationLevel 令牌。指令清单是 XML 文件,其中包含有关某个映像的补充信息。它们是在 Windows XP 中引入的,作为标识与并列 DLL 和 Microsoft .NET Framework 程序集的依赖关系的一种方式。指令清单中出现的 trustInfo 元素(可在下面的 Firewallsettings.exe 字符串转储摘录中看到)表明这是一个为 Windows Vista 编写的可执行文件,并且其中嵌套了 requestedElevationLevel 元素。该元素的 level 属性可具有以下三个值之一:asInvoker、highestAvailable 和 requireAdministrator。
     xmlns=”urn:schema-microsoft-com:asm.v3”>
     Level=”requireAdministrator”
  uiAccess=”false”/>
  不需要管理权限的可执行文件(如 Notepad.exe)指定 asInvoker 值。某些可执行文件预期管理员始终希望具有最大访问权限,因此他们使用 highestAvailable 值。如果某用户运行具有该值的可执行文件,那么仅当他在 AAM 中运行或被视为管理员(根据早先定义的规测)且必须提升以获得其管理权限时,才会要求提升他的权限。例如,Regedit.exe、Mmc.exe 和 Eventvwr.exe 都是使用 highestAvailable 的应用程序。最后,requireAdministrator 始终会导致提升请求,任何没有管理权限就无法操作的可执行文件需要使用该值。
  可访问性应用程序为 uiAccess 属性指定“true”,以便驱动所提升进程的窗口输入,并且它们还必须带有签名并位于多个安全位置(包括 %SystemRoot% 和 %ProgramFiles%)之一以获取该能力。
  确定可执行文件所指定值的一种简单方法是使用 Sysinternals Sigcheck 实用工具查看其指令清单,如下所示:
  sigcheck –m
执行一个请求管理权限的映像将导致在服务主机进程 (%SystemRoot%\System32\Svchost .exe) 中运行的应用程序信息服务(也称为 AIS,它包含在 %SystemRoot%\System32\Appinfo.dll 中)启动 Consent.exe (%SystemRoot%\System32\Consent.exe)。Consent 将捕获屏幕的位图、向其应用一个淡入淡出效果、切换到只能由本地系统帐户访问的桌面、将该位图作为背景、并显示一个提升对话框,其中包含有关该可执行文件的信息。在单独的桌面上显示可防止用户帐户中的任何恶意软件修改对话框的外观。
    9560ff06b4ec729b70f14b7aaf2026ad.gif
图 11 OTS 提升对话框
  如果映像是由 Microsoft 数字签名的 Windows 组件,并且位于 Windows 系统目录中,则对话框顶部将显示一条蓝带,如图 11 顶部所示。灰带(对话框中间)表明映像由 Microsoft 以外的组织数字签名,橙色带(对话框底部)表明映像未经签名。提升对话框显示了映像的图标、描述以及数字签名映像的发布者,但对于未签名的映像只有一个通用的图标、文件名和“未能识别的发布程序”。这样就使恶意软件更难以模仿合法软件的外观。对话框底部的“详细信息”按钮展开后将显示当可执行文件启动时要传递给它的命令行。图 12 所示的“AAM 同意”对话框与此类似,但它不会提示提供管理员凭据,而是包含了“继续”和“取消”按钮。
443bf61ca1595c5baf5d3f73ae2c2049.gif  
  图 12 AAM 提升对话框
本文转自 技术无忧网 网址http://www.pc51.net 访问技术无忧网,软硬件通吃保你技术无忧!


相关文章

文章评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面