您的位置:首页 > 其它

深入探索Windows 7下User Account Control

2014-10-29 11:08 253 查看


1.安全桌面

  当我们在普通用户模式下,运行非系统信任软件的时候,就会弹出UAC提示,这和我们所用的安全软件的主动防御提示是相仿的。当UAC弹出时就会出现所谓的安全桌面,这个安全桌面又是什么东西呢?

  安全桌面(Secure Desktop)就是Winlogon desktop,当Winlogon desktop处于激活状态的时候,任何其它进程都不能访问与桌面相关联的代码或者数据,这样就有效的保护了用户的使用安全。

  为了便于了解,可以做个试验。

  在我们关闭安全桌面之前,如果弹出了安全桌面,那么我们是无法对桌面文件进行操作的。而我们通过组策略的本地安全策略的安全策略关闭安全桌面,那么我们再次通过普通用户运行类似regedit这样的自带程序时,UAC同样会弹出提示,但是安全桌面就消失了。当安全桌面消失后,这里有两种情况,第一种就是是不可以在桌面下进行操作但是任务栏的窗口还是可以的,这种情况是我们通过右键的以管理员身份运行程序时出现的。而另一种情况则是我们通过运行功能执行程序时出现,这样的情况下,桌面是可以进行操作的。


组策略关闭安全桌面:





关闭安全桌面后的UAC提示:





官方的详细介绍:

  The security on the Winlogon desktop is created so that only Winlogon can access that desktop. The other desktop allows both Winlogon and users to access it. This arrangement means that any time the Winlogon desktop is active, no other process has access
to any active code or data associated with the desktop. Windows uses this feature to protect the secure operations that involve passwords and locking and unlocking the desktop.


2.UAC是何文件实现的?

  UAC这个功能的核心文件是什么呢?我们通过Process Explorer来观察下,当我们运行regedit程序的时候,系统进程明显多了个consent进程,这个进程到底是什么呢,来一看究竟。原来这个consent程序是需要管理员权限运行程序的运行界面提示程序,隶属于NT AUTHORITY\SYSTEM用户组。


consent文件:





consent文件属性中的安全选项卡:





详细信息:





  consent进程触发原理:当运行需要管理员权限的文件时,这一事件会触发软件信息服务application information service (AIS, contained in %SystemRoot%\System32\Appinfo.dll),并且这项服务又是由Svchost.exe进程来管理的。当这一服务被触发后就会运行consent.exe文件,而这个文件将暗淡的位图作为系统的背景图像而提示用户UAC提示框已近被启动(前提是安全桌面没有被关闭)。


3.UAC提示的区别:

  蓝色的提示横条:

  如果我们运行的系统部件是在Windows系统目录下并且拥有Microsoft官方的数字签名的话,那么弹出的AAM对话框(Admin Approval Mode)就是蓝色的横条,同样的如果我们运行的程序信息被记录在注册表中,而且拥有完整的数字签名的话,也是会弹出蓝色的提示框的。

  黄色的提示横条:

  系统组件,如果拥有Mircosoft的数字签名并且在系统目录的话,是不会出现黄色横条的。如果上述两种条件有一项不满足的话,则会出现黄色提示,详细请参考试验2。如果是一般应用程序的话,拥有完整的数字签名就不会弹出黄色横条AAM提示框。(红色的貌似是风险软件运行时才会出现,这里就不举例了)


试验1:

  我们来通过管理员身份运行firefox程序,提示框为蓝色:





  而我们运行VMware的时候提示则为黄色:





  这到底是什么原因呢?我们通过Smallfrogs大大写的FileDigitalSignVerify程序来检查这两个执行文件的数字签名,结果如下所示:





  哦,原来如此,firefox的签名是完整的,而VMware则什么也没有。这和我的结论也是一致的。


试验2:

  我们将consent.exe文件从system32目录复制到桌面上,然后运行之,结果如下图:





4.右键“以管理员身份运行”的原理:

  当我们在运行某些需要管理员权限的软件时,一般会点击右键然后选择“以管理员方式运行”,那么这个简单的点击事件背后的原理是什么呢?原来在Explorer下我们点击这个选项的时候,就是执行ShellExecute函数,然后在进而通过执行CreateProcessAsUser函数调出consent.exe文件,故而然出AAM提示框。

  过程如图:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐