【IT168 服务器频道】在Windows 7中,微软改变了用户帐户控制功能的工作方式,根据来自安全专家的观点,这将会降低操作系统的安全性。可信赖计算技术是否会因此受到影响,而变得无关紧要?
2002年1月,比尔·盖茨发布了可信赖计算技术,从根本上将微软的工作重点从创建功能丰富的操作系统,转移到保障用户的安全和隐私。盖茨先生在备忘录中解释说:
“过去,我们致力于让软件变得拥有更多新功能和特色,让整个平台具有丰富的可扩展性,以便为用户提供更多服务。在这一领域,我们已经作出了出色的工作,但除非用户信赖我们的软件,否则,所有的伟大功能都将变成无关紧要的。”
为了强调这一点,盖茨先生继续说:
“因此,当需要在新功能和安全之间进行选择时,现在我们必须选择安全。我们的产品必须可以立即使用,随着安全形式的发展变化,还必须不断地进行完善和改进。”
大多数人认为这种持续的努力获得了成功,特别是随着用户帐户控制(UAC)功能的到来。
什么是用户帐户控制
微软意识到,如果要建立可信赖计算技术,容许用户在所有时间都拥有系统管理员权限(安全方面的主要风险来源)是不可接受的。因此,从Vista操作系统开始,微软开始了调整。这些调整最终成为用户帐户控制功能,包含了如下所示的内容:
- 在可行的情况下,进行操作的权限将从系统管理员调整为标准用户。在这方面,最明显的一个例子就是给予标准用户调整时区设置的权限。
- 利用虚拟化技术在没有获得系统管理员权限的情况下协助程序运行。
- 对程序进行再处理,这样用户帐户控制功能就可以知道在什么情况下需要系统管理员权限。
- 确保在系统管理员权限下运行的程序和在标准用户权限下运行的程序是分离的。
用户帐户控制功能的工作原理
用户帐户控制功能是相当复杂的。因此,我推荐大家阅读微软公司的马克·鲁西诺伟奇发表在TechNet上的文章《深入了解WindowsVista的用户帐户控制功能》,在文中他对用户帐户控制功能的工作原理进行了详细的介绍。
在默认设置下,用户帐户控制功能会授予用户标准权限。如果一个程序需要系统管理员权限才能运行的话,用户帐户控制功能将询问用户是否提高该任务的权限。这样的调整可以防止恶意软件在自动安装的时间获取系统管理员权限。
系统管理员批准模式
用户帐户控制功能利用系统管理员批准模式(AAM)来处理权限的调整。AAM在用户的登陆日志中创建了两个配置文件,一个用来处理标准的用户权限,一个用来提供系统管理员权限。正如我前面提到的,UAC可以提升用户的权限。我并不知道这里存在两种类型的调整方式。一种叫作“即时权限提升”(OTS)型,另一种则是“同意”型。
用户使用的权限调整类型,取决于他是否属于本地系统管理员组。如果不属于的话,UAC将使用OTS型,这时请求需要获得属于本地系统管理员组的用户批准。如果用户属于本地系统管理员组的话,UAC将使用同意型的权限调整方式,请求当前用户许可。
看起来UAC是一个非常好的创意。它模仿自Linux的超级用户,同时操作起来更加便利。正如我所想的。进一步的深入研究发现了一些问题。
便利与安全
马克·鲁西诺伟奇和吉姆·阿尔钦(原微软成员)都承认,AAM模式的关注重点是方便,而不是安全。在关于AAM模式的文章中,阿尔钦先生提到:
“该功能(AAM)仅仅是为了方便系统管理员的操作而设计的。系统管理员可以利用该模式在不同的进程之间建立安全边界。在这种情况下,处在隔离中的进程是有可能被干扰的。”
阿尔钦先生进一步解释道:
“如果系统管理员在同一桌面上运行多个任务的话,那恶意软件就有可能从一个非提高进程中攻击或者干预权限提高的进程。”
这是我对此逻辑的理解。如果用户需要在配置文件中进行切换以获得系统管理员权限的话,我相信大多数用户只会切换一次,并永远不会再返回到使用标准用户权限的状态。不过,对于UAC来说,运行权限和程序分离是一条重要的原则。因此,这是否属于可信赖计算技术的一个缺陷。
鲁西诺伟奇先生在另一篇文章《深入了解Windows 7用户帐户控制功能》中解释了微软放弃使用进程隔离技术的原因:
“尽管这属于Windows Vista的一个早期设计目标,利用安全桌面系统的权限调整,Windows诚信机制和用户界面特权隔离来建立安全边界,对标准权限下的进程和系统管理员权限下的进程进行隔离,但有两个原因阻止了该目标的实现,它们是:可用性和应用程序兼容性。”
对于微软来说,公平地讲UAC是聊胜于无的。鲁西诺伟奇先生指出,UAC可以提供哪些帮助:
“因为恶意软件编写者的目标是拥有系统管理员权限的用户,在某种程度上恶意软件的目标是控制整个系统,因此,大多数恶意软件将无法正常使用。”