Vista用户帐户控制、PsExec和安全边界
2007-12-06 16:50:08 来源:WEB开发网在安全性和易用性之间取得平衡,其中的一个例子是:在标准用户环境下即时提升权限(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所说,有总比没有好。同时安全不仅仅是操作系统的责任,用户习惯、应用程序等都非常重要,而且很可能成为木桶上最短的一块木板。
更多精彩
赞助商链接