您现在的位置: IT专家网 > WinSystem子站 > Windows Vista
Vista用户帐户控制、PsExec和安全边界
这篇文章主要描述:对用户帐户控制、IE保护模式、UIPI和MIC等的安全意义和不足之处进行描述。为了保证原汁原味,翻译文章保留第一人称,文中的“我”就是指Mark Russinovich……
然而我们必须清楚,无论这种攻击方法有多么困难,但是既然这种隔离沙盒存在突破口,这就说明完整性级别并没有定义安全边界。什么是安全边界?安全边界就是一道隔离墙,如果没有通过安全策略的验证,代码和数据就不能打破这道隔离墙。举个例子,在不同的会话中运行的用户帐户,会通过Windows安全边界进行分隔。如果没有其他用户的允许,一个用户不能读取或者修改其他用户的数据,也不能让其他用户执行代码。如果由于某些原因而可以绕过安全策略,这就意味着Windows系统存在bug(或者是第三方代码的原因)。
我们还必须清楚,不管是用户帐户控制、还是IE保护模式,都没有定义新的Windows安全边界。虽然微软已经表明了这个观点,但是我希望大家对此能够有一个明确的认识。此外,正如Jim Allchin在他的博客文章《Security Features vs Convenience》里所写的,Windows Vista在安全性和易用性上作了权衡,用户帐户控制和IE保护模式在设计时已经考虑到应用程序兼容性和易用性,可以有方法绕过完整性级别的隔离墙限制。
在安全性和易用性之间取得平衡,其中的一个例子是:在标准用户环境下即时提升权限(OTS)时,我们不需要按“Ctrl+Alt+Del”组合键才能调出“用户帐户控制”对话框。还有其他的一些例子,例如我在TechEd/ITForum上所讲的课程《User Account Control Internals and Impact on Malware》,Jim Allchin的博客文章里也提到一些安全增强的方法(可能会减弱易用性),例如我们可以配置Windows必须按“Ctrl+Alt+Del”组合键才能调出“用户帐户控制”对话框。举一个例子,在管理员环境下,以提升权限运行的高级进程,和其他进程一样都是以当前登录用户的身份运行,方便这些进程访问当前用户的代码和数据,但是同时也允许其他进程修改同样的代码和数据,这样就可能导致高级进程运行恶意代码。
盆盆评注 大家知道,在Windows Server上,默认需要按“Ctrl+Alt+Del”组合键(SAS序列),而只有Winlogon进程才能接受该SAS序列,以确保安全性。所以也可以设置,只有按“Ctrl+Alt+Del”组合键(SAS序列),才能弹出“用户帐户控制”对话框,以便确保安全性。否则的话,恶意代码完全可以伪造一个“用户帐户控制”对话框,让用户输入管理员凭据。
按照Jim Allchin的说法,我们可以打开组策略编辑器,然后进入计算机配置→管理模板→Windows组件→凭据用户界面,然后确保启用“要求输入凭据的受信任路径”策略项,如下图所示。
这样,当我们以标准用户身份登录系统时,如果需要执行管理任务,系统就会提示按下“Ctrl+Alt+Del”组合键(SAS序列),然后系统就会切换到Winlogon桌面(看上去是“真正”的安全桌面,而不是灰色的当前桌面背景),并显示“用户帐户控制”对话框,以提示输入管理员凭据。

因为提升权限和完整性级别并没有定义新的安全边界,所以虽然存在可能的安全攻击方法,不管是否容易或者使用范围,都不能算是安全上的bug。所以,既然不能保证防止更低级别的进程攻击高级别的进程,为什么Windows Vista还要那么麻烦引入提升权限和完整性级别的功能?原来这是为了能够让所有用户都运行在标准用户权限下,同时让所有应用程序都按照这个标准进行开发,以达到一个新的境界。
如果提升权限缺乏易用性,那么绝大多数用户就会回到以前Windows版本的状态:始终使用管理员特权。IE保护模式和“PsExec -l”命令,就可以利用完整性级别,在恶意程序的周围建立隔离沙盒,哪怕恶意程序已经突破了其他安全防护手段。提升权限和IE保护模式所构建的隔离沙盒虽然可能存在可攻击的方法,但是总比没有好。如果把安全性看的比易用性更加重要,那么就利用安全边界的作用,平时用独立的帐户以标准用户身份运行,当执行管理任务时,再切换到专门的帐户中。
盆盆评注 安全性和易用性是一对矛盾,不可能找到一种一劳永逸的方法,以杜绝所有的攻击手段。用户帐户控制和IE保护模式照样存在可能的攻击手段,但是尽管如此,还是希望大家启用这些安全功能,正如Mark所说,有总比没有好。同时安全不仅仅是操作系统的责任,用户习惯、应用程序等都非常重要,而且很可能成为木桶上最短的一块木板。
- 本文关键词:
- Windows
- Windows Vista
- 操作系统

