购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.2 UAC

1.2.1 UAC原理概述

用户账户控制(User Account Control,UAC)为Windows Vista推出的一项安全技术,其主要原理在于通过限制应用软件对系统层级的访问,提升Windows操作系统的安全性。虽然此类机能一直遭到部分用户的批评,但后续的Windows操作系统仍保留了此类机能。例如在Windows 7中,微软公司保留并改进了此项功能(自定义UAC的安全等级)。

1.2.2 UAC级别定义

在Windows Vista中只有开启和关闭UAC的选项,而后续的Windows 7对UAC进行了更新,增加了UAC白名单,并且设置了以下4个安全级别,而不再只有开启和关闭。用户可以根据自身应用场景需求动态调整UAC的安全级别。

1)第一级别(最高级别),如图1-9所示,相当于Windows Vista中的UAC,即对所有改变系统设置的行为(如安装程序、更改Windows设置)进行提醒。

图1-9 UAC第一级别(最高级别)

2)第二级别(默认级别),如图1-10所示,仅在程序尝试改变系统设置时才会弹出UAC提示,用户改变系统设置时不会弹出提示。(如果使用常见程序和访问常见网站,推荐使用这一级别。)

图1-10 UAC第二级别(默认)

3)第三级别,如图1-11所示,仅当程序尝试更改计算机时弹出通知提示,用户自行设置更改计算机时不会弹出通知提示。(与第二级别基本相同,但不使用安全桌面。)

图1-11 UAC第三级别

4)第四级别,如图1-12所示,UAC从不提示(相当于关闭UAC)。

图1-12 UAC第四级别

1.2.3 UAC触发条件

Windows 7开始在涉及UAC的操作时弹出一个窗口,并且会黑屏询问你是否继续使电脑处于“安全桌面”状态,如图1-13所示。此时这个桌面具有System的权限,其他程序无任何权限进行操作。

图1-13 UAC安全桌面

以下动作会触发UAC。

❑以管理员身份运行程序。

❑配置Windows Update。

❑增加或删除用户账户。

❑改变用户的账户类型。

❑配置来宾(Guest)账户(Windows 7和8.1)。

❑改变UAC设置。

❑安装ActiveX。

❑安装或移除程序。

❑安装设备驱动程序。

❑设置家长控制。

❑修改系统盘根目录、Program Files(x86和x64)目录或Windows目录。

❑查看其他用户文件夹。

❑配置文件共享或流媒体。

❑配置家长控制面板。

❑运行Microsoft Management Console控制台和以.msc为后缀名的程序(部分.mmc程序除外)。

❑运行系统还原程序。

❑运行磁盘碎片整理程序。

❑运行注册表编辑器或修改注册表。

❑安装或卸载显示语言(Windows 7)。

❑运行Windows评估程序。

❑配置Windows电源程序。

❑配置Windows功能。

❑运行日期和时间控制台。

❑配置轻松访问。

❑激活、修改产品密钥。

1.2.4 UAC用户登录过程

在整个Windows操作系统资源中会有一个ACL,这个ACL决定了各个不同权限的用户/进程能够访问不同的资源。当一个线程尝试访问某个对象时,当前的系统会先检查该线程所持有的访问令牌以及被访问对象的安全描述符中的DACL规则。如果安全描述符中不存在DACL规则,则当前系统会允许线程直接访问。图1-14所示为整个线程访问对象的流程。

正常来说,在我们使用账号登录操作系统之后会产生令牌,令牌会记载我们所拥有的权限。如果我们以管理员角色权限进行登录,会生成两份访问令牌,标准用户访问令牌和完全管理员访问令牌,如图1-15所示。

图1-14 线程访问对象的流程

图1-15 管理员角色权限登录后生成的令牌

当我们登录的是Administrator用户的时候(已开启UAC),想在管理控制台中执行“添加或删除用户”操作,UAC会弹出“安全桌面”。可根据实际情况选择是或否,如图1-16所示。出现这种情况的原因是在访问之前,系统会先检查进程所持有的访问令牌以及被访问对象的安全描述符中的DACL规则,确保携带的令牌及规则正确无误。因为我们携带的访问令牌是权限最低状态下的受保护的管理员访问令牌,所以当进程请求触发了UAC操作的时候,UAC就会弹出通知,询问我们是否允许。单击“是”按钮,其实就向进程发送了我们的管理员访问令牌,使得管理员的状态由“受保护状态”变更为“提升状态”。通过提升状态下的管理员访问令牌即可对计算机执行更改操作。

假设登录的用户是标准用户,Windows会给用户分配一个标准用户访问令牌,如图1-17所示。

要访问某个携带标准用户访问令牌的进程,在进程触发UAC操作的时候会弹出通知,让我们输入管理员密码,如图1-18所示。此时我们并不具备管理员访问令牌,通过输入管理员密码可获取管理员的访问令牌操作。输入管理员密码的过程本质上就是通过管理员凭据为标准用户提权。

图1-16 UAC弹窗通知

图1-17 普通用户登录令牌生成

图1-18 通过管理员凭据为标准用户提权

1.2.5 UAC虚拟化

UAC虚拟化也称为重定向操作。当用户权限没有达到程序要求的权限时,就会进行重定向操作。虚拟化由两个部分构成,即文件虚拟化和注册表虚拟化。例如,如果一个程序试图写入C:\Program Files\Contoso\Settings.ini,但用户没有写入那个目录的权限,这个写操作就会被重定向至C:\Users\Username\AppData\Local\VirtualStore\Program Files\contoso\settings.ini。对于注册表,如果一个程序试图写入HKEY_LOCAL_MACHINE\Software\Contoso,它会被自动重定向至HKEY_CURRENT_USER\Software\Classes\VirtualStore\Machine\Software\Contoso或者HKEY_USERS\UserSID_Classes\VirtualStore\Machine\Software\Contoso。 W3iIgjBpr6dDJ6qmPqh1Bxfe8iecfhAMuFjYKLUr36JaKvdxKfxBZqA2GXUCqm5l

点击中间区域
呼出菜单
上一章
目录
下一章
×