欢迎光临 Enjoy IT (ITECN.NET) 登录 | 注册 | 帮助

[Windows Vista]安全桌面凭什么那么安全?

写了三篇系列《Windows Vista如何以SYSTEM权限启动进程》小文章,借着这股劲,再来简单分析一下安全桌面。

安全桌面,大家应该不会感到陌生。UAC的权限提升提示对话框、用户网络凭据的保存对话框,还有欢迎登录界面,都是运行在安全桌面上。

究其本质,安全桌面,也叫做Winlogon桌面,实际上是WinSta0窗口站里默认具有的三个桌面之一。另外两个桌面,一个是Default桌面,也就是用户桌面,就是我们平时登录后所在的桌面,还有一个是屏保桌面(且不去管它)。

那么为什么安全桌面那么安全,以至于Windows把那么重要的任务都交给它?

难道是因为它的名字?当然不会!Windows并没有因为它的名字里有“安全”,就放心地把安全攸关的任务交给它(就这一点来说,很有点类似湖南卫视的武警战士,并没有因为某位超女的名头大,就随便放行)。

1. 一切还是得看安全权限设置

和窗口站一样,桌面也是一个安全对象,也需要通过安全描述符对其进行安全保护。

怎么才能查看Winlogon桌面的安全权限?

很简单,只需通过Process Explorer查看Winlogon进程的句柄表,里面会有一个\Winlogon的句柄,查看其安全属性。可以发现只有SYSTEM帐户才有所有可能的权限,而Administrators组帐户,只有有限的一些权限,如附图所示。

这就充分说明,在安全桌面上,只有以SYSTEM权限运行的进程,才可以读取安全桌面上的内容;其他进程呢,哪怕是以Administrators身份运行(够大了吧),还是不行。

所以UAC对话框运行在安全桌面上,真的是安全得很哪!只有SYSTEM运行的进程,才有可能读写UAC对话框的窗口。当然用户本身自然也可以,安全桌面本身也属于WinSta0,可以接受用户键鼠事件。

2. Mark Russinovich说过桌面才是安全边界

还记得盆盆翻译过一篇来自大牛Mark Russinovich的文章《Windows Vista用户帐户控制、PsExec和安全边界》吗?里面就曾经强调过,桌面才是Windows的安全边界,而UAC和IE保护模式都不是安全边界(充其量只是大大提升了安全级别,但并不是安全边界)。

如果理解桌面的ACL,就可以很好地理解桌面是安全边界这句话。

3. 其他桌面呢?

可以用Process Explorer查看其他桌面的安全权限设置情况,其中默认用户桌面\Default的安全权限和WinSta0窗口站完全一样。这没什么,默认用户桌面本来就是继承WinSta0的权限。

已发表 2007年7月19日 13:03 作者 ahpeng

评论通知

如果您想在帖子更新时接到邮件通知,请先登录。这里

订阅帖子评论使用 RSS

评论

2007年7月19日 14:00 by Asuka Zhang

# re: [Windows Vista]安全桌面凭什么那么安全?

今天看这些文章看得太过瘾了,谢谢盆盆老大!

2008年8月2日 8:22 by Asuka's Blog

# Mark's Webcasts: Windows Security Boundries(Windows安全边界)

好久没有看到Mark的大作了,难道是去备战奥运了?呵呵。 刚刚在Sysinternals的blog看到了有个Mark在今年Teched US上面的Session,是和安全边界有关的。 地址: http://blogs.technet.com/sysinternals/archive/2008/07/30/mark-s-webcasts-windows-security-boundries.aspx

说说您的看法?

(必填) 
必填 
(必填)