例如,Windows中的特权隔离长期以来对Windows安全都有一个问题,在Windows架构层面的确有一些特权隔离特性,但它只是一个半心半意的实现,依赖于用户级功能行为和使用意图。
系统模块化是Unix架构安全的另一个实例,而这是Windows所缺乏的。每一个Windows版本都捆绑了大量的应用程序,如IE浏览器。即使一次针对浏览器的攻击,也很容易获得内核空间的访问权,从而获得整个系统的控制权,而这种情况在Unix的基础系统中是不存在的。
特权隔离的重要性
有人可能会抱怨你想保护的系统信息存放在其他用户也能访问到的位置,因此特权隔离不能起到真正的作用。其实他们没有完全理解特权隔离的好处:可以防止入侵者获得root权限。
服务器进程通常运行在Unix系统一个特殊用户账户下,这意味着入侵者通过网络入侵得逞后,也只能拿到该服务对应用户账户的权限。大多数情况下这些用户都属于普通用户,大部分恶意软件都需要管理员账户才能正常工作。
键盘记录器是Windows用户的恶梦,但在Unix系统上,它们需要管理员级的系统组件才能正常运行。这意味着即使键盘记录器通过某些非特权用户账户成功注入到系统,但因没有足够的权限也不能开始它的工作。
其它安全威胁,如rootkit,木马和僵尸网络客户端也需要Unix系统的root用户权限才能工作。而在Windows系统上,缺乏严格的特权隔离致使其对恶意软件的防护能力不足。
用户控制和自动执行
众所周知,Windows很容易感染病毒,主要是因为它想为用户做太多的事情。恶意软件通常会随不相干的软件运行而自动启动,例如,当你打开一个Word文档时,巧妙设计的恶意软件也跟着运行,而这时Windows将重定向文件的执行路径,从Word文件转向恶意软件执行需要的文件。
相反,Unix系统在默认情况下是不会干这种蠢事的。在Unix上运行程序更规范,要打开的文件将作为一个参数传递给主程序。因此如果恶意软件试图用伪装的OpenOffice.org文档诱骗OO.o执行,操作系统是不会上当的;相反,文字处理软件无法打开该文件,因为它的文件类型不正确。
在Windows下还有一种无安全保证的自动执行 – 臭名昭著的AutoRun(自动运行)。美国国防部就曾被搞得很窝火,有人用U盘接入国防部电脑,恶意软件利用Windows的AutoRun特性自动运作,继而使它许多安装有Windows的电脑遭到入侵,虽然可以关闭Windows的自动运行功能,但并不是那么容易,这样的功能本身默认就不应该开启,不知为何微软没有意识到这一点,更糟糕的是,即便你关闭了自动运行功能,Windows自动更新也会暗中自动激活它。
不同的设计理念
Unix和Windows在安全方面的设计差异体现了不同的理念。遗憾的是,Unix从底层设计开始就将安全考虑进去了,而Windows的理念是“谁在乎安全呢?”。
但Windows并不孤单,类Unix的系统也正在朝这条路走去,如广为人知的Linux,拿现在最流行的Ubuntu为例吧,它在安全和受欢迎方面的平衡也如Windows一样,Ubuntu更注重用户体验,安全似乎不是它最关心的,但始终流淌着Unix系统安全设计的血液,可悲的是,它们之间的差距可能会随时间而越来越小。
原文:http://blogs.techrepublic.com.com/security/?p=4627