UAC 用户账户控制详解

 

Windows上有一个备受唾弃的功能—— UAC(用户账户控制)

我们安装软件、修改设置……它都会弹出一个窗口,让我们确定是不是要这样做。


但是对于一些人来说这个弹窗和脱了裤子放屁没什么两样,因为大多数弹窗都是在用户主动操作(安装软件,修改设置)的情况下进行的,多一个弹窗只是多了确认的步骤,徒增干扰。

所以很多人在进入新系统后会第一时间关掉这个提醒,以前七号也是这样,但如果你了解UAC的运作机制和带来的安全性,可能会重新考虑打开它。

 

01

用户账户与权限

Windows XP 是第一个引入不同账户不同权限的Windows操作系统,但默认使用系统管理员账户(最高权限)登录,这也导致一旦账户遭到入侵,病毒就可以在系统里畅通无阻。

从Vista开始微软引入了 UAC(用户账户控制),其目的是「用标准权限完成所有操作」。

都知道现在Windows中有不同的账户对应不同的管理权限:

开启UAC后,程序默认以Users的权限级别运行
(哪怕登录管理员账户),在程序试图修改系统设置,文件,注册表等等时,就会弹出提示框请求管理员级别的权限,类似MAC中的需要输入密码操作。
在Vista时代,UAC只有两个选项,开启或关闭,到了Windows 7后UAC拥有了自己的设置界面和4个通知档位,并一直延续至今。

 

02

不止一个弹窗

在资源管理器中,
不同权限级别的进程是隔离的。

如果一个程序在运行过程中申请高级别权限,哪怕用户同意,它也不能直接获得权限,这么做是为了避免恶意程序诱导用户,甚至绕过UAC获取权限。
无论程序怎么做,因为不同权限隔离,
想到管理员权限组的进程必须自杀重启,新的进程才能以管理员权限运行,
而所有新开的进程,资源管理器都会验证它的权限级别,如果是管理员级别权限则会需要用户同意。

 

03

UAC虚拟化

UAC刚问世的时候因为频繁弹窗的问题,被许多用户埋怨,微软为了推进UAC的使用率,引入了UAC虚拟化。

有很多程序运行时候只需要写入HKLM或Windows目录,而不加载驱动,Windows检测到这种程序后,便会启用UAC虚拟化。

程序对注册表HKLM里的修改将虚拟化到HKCR中的一个项,需要写到Windows目录的内容虚拟化到Appdata目录中。

这样做既减少了UAC弹窗的次数,也提升了系统的安全性(避免其他程序通过DLL注入等方法获得管理员权限甚至System权限)。

 

04

标准账户足以

刚才说过第一次登录Windows时创建的是一个管理员账户,实际上对于小白或数据安全要求高的用户,标准账户足以。
不管在那种账户下登录,程序都以Users标准权限运行

在管理员账户下运行的程序需要提升权限时,会直接申请,用户作为管理员直接给权限。

在标准账户下运行的程序需要提升权限时,因为标准账户中不具备管理员权限,所以必须输入管理员账户密码才能继续。

这就避免了程序绕过UAC获得管理员权限,特别是国产全家桶静默安装。因为标准账户中根本没有管理员权限。

 

05

4个档位的区别

前面提到Windows 7开始的UAC通知有四个档位,第三档是Windows默认的,但是七号推荐大家使用第四档“始终提醒”。

前面也说过一些程序会绕过UAC来达到提权的目的,其实这是Windows允许的静默提权行为,目的还是为了较少弹窗,避免用户反感。
但也相当于留了一个后门,让恶意程序有了可趁之机。

而“始终通知”可以避免掉静默提权行为,所有涉及管理员权限的行为都将弹窗。

中间两档在通知数量上没有差别,他们取消了以下行为的弹窗:

 

在控制面板里的管理操作时不弹窗;
在 Windows 资源管理器内部操作时不弹窗(启动子进程依然需要);

打开任务管理器时不弹窗;

更改防火墙设置时不弹窗;

打开 UAC 设置界面时不弹窗。
中间两档的区别是:
第三档弹窗界面背景为黑色,此时所有进程暂停,等待用户操作后才能继续运行,避免恶意程序控制鼠标自行获取管理员权限(常在用户未使用计算机的情况下)。


此界面截图程序也被暂停,只能拍照。

而第二档只是弹窗,背景就是原来的操作界面,只有申请权限的程序被暂停,其他程序照旧运行(存在帮凶风险)。

虽说是“始终通知”,但实际使用下来通知数量并没有很多,还远不到令人厌烦的地步。

06

UAC发展至今

现在看来UAC这个当初受人诟病的功能能够存活到现在,确实要感谢微软主动选择并坚持了这条对抗用户习惯的道路,有效避免了很多安全问题。

固然有些操作确实需要提供给程序管理员权限,比如修改开机启动项,但是这些操作本不该频繁出现,只有在偶尔调用时才会弹窗。

以后再遇到有程序频繁请求权限,或许我们不该急着骂微软多管闲事,而是怀疑为什么这个程序需要如此频繁的获取管理员权限?它想干什么?

更有甚者在用户没有使用计算机的时候弹出请求权限,这样的软件还是换掉的好。

难道你宁可看各种流氓卫士的弹窗, 也不愿意看Windows的UAC安全提示吗?