在整个领域,所谓“一元化”有着很广泛的应用。但不幸的是,由于过于频繁的使用,滥用这一概念的情况就可能会经常出现,在某些时间,这还有可能导致IT系统面临的风险增加。
--------------------------------------------------------------------------------------------
在此之前,没有了解IT安全领域的时间,你可能就已经听说过“一元化”这个词。它是对进化生物学中的一个概念作出的一种隐喻表达方式,意味着缺乏遗传多样性。这种遗传多样性的缺乏意味着,如果整个群体中的一员(在这里通常指的是一个物种)可能被或者其它有害物质感染的话,所有的成员也都会被感染。也就是说,单种病毒就可以消灭整个群体。这也是我们为什么认为乱伦是坏的的重要原因之一,因为它增加的是具备单一特征群体成员的数量,没有从外部引进遗传多样性因子。
而对于IT安全领域来说,“一元化”通常是指所有用户运行相同的软件,对于相同攻击同样也存在着相同的漏洞。尽管它也可以被用来指代其它类型的应用软件,但在绝大多数情况下,主要是被用来说明的应用情况。最初,IT安全领域采用这个词是用来说明Windows操作系统在相关领域占有支配地位。根据工业统计的数据显示,微软Windows操作系统的市场占有率已经超过了百分之九十,剩余的部分已经基本可以忽略不计了。
这种工作站和家用台式机市场上单一操作系统占有压倒性支配地位以及某些关键应用只能运行在该种操作系统的情况是令人担忧的,最明显的迹象就是,对于病毒和其它类型的攻击来说,通过会让这样的系统面临的风险急剧扩大。在最近几年,这样的情况已经出现了多次了。从早期肆虐于互联网和大型广域网中的蓝宝石病毒(SQL Slammer),到现在频频出现在新闻中的Conficker变种,这样的例子比比皆是。
随着时间的推移,IT系统单一化的观念在具体领域也开始普及了。举例来说,最近我经常看见的说法就是单一网络。人们在讨论“单一化”的家庭或网络是会带来更大的风险,认为(主要)采用了单一操作系统的网络简直是找死,采用差异化的操作系统可以让网络受到更好的保护。
但事实的真相是,单一化的影响并不会以这种方式现在在单独的网络中。人们看到关于软件单一化的警告时,会以为这意味着包含了一种操作系统的计算机比包含了多种操作系统的更容易受到攻击。但是这个观点是片面的,关于这种脆弱性根据情况的不同需要具体问题具体分析。
在互联网的级别上,“单一化”导致的危险是最大的,我们在上面所讨论的漏洞会让整个系统都受到同样的威胁。这就意味着,如果你和其它人使用的软件是一样的话,在遇到可以影响其它人系统的计算机病毒的时间,你也会受到影响。在这里说的单独网络遇到的威胁就是指网络上所有的系统都会受到威胁。因此,在这种情况下,你在选择软件的时间需要在系统功能和安全性之间找到最佳的平衡点。采用多种操作系统可以提高网络的冗余能力,但这不意味着在单独的本地网络中选择多种操作系统可以带来安全方面的真正改善。
实际上,如果没有充分的理由就选择使用多种操作系统的话,不仅仅让你面临的风险增加,而且也会让系统变得更加不安全。我就在一个网络中采用了多种操作系统;实际情况是,我在整个网络中运行了七种不同的操作系统(尽管更准确的说法是五种操作系统,因为其它两种是同一操作系统的不同发布版本)。我为什么使用这些操作系统是有充分的原因的,减少网络上运行的操作系统,尽管可以减少漏洞,但可能导致找到正确操作系统进行攻击的机会增加。
实际上,如果你要作出使用一种以上操作系统的任何决定时,都必须从安全的角度进行完善的考虑。举例来说,不管你在网络上运行了多少种操作系统,最新出现名为Trojan.Flush.M的可以影响到整个基于动态主机分配协议网络的安全。所有你需要了解的就是运行微软Windows操作系统的单台计算机存在弱点。
尽管这一具体事例就是一个很好的例子,可以说明微软Windows操作系统的脆弱性,并且实际上就是由于其臭名昭著的易用性宣传,让Windows操作系统成为最有可能受到攻击的目标。但事实是,所有操作系统都可能在错误的时间出现在错误的地点。当你决定为网络增加一种新的操作系统时,无论涉及到的是什么具体操作系统,都必须进行仔细而审慎的考虑;特别是在你考虑增加的操作系统比网络中已经存在的有更多漏洞可以利用的时间。
如果你已经有了充分的理由进行软件多样化的选择,请继续这样做。但,换句话说,仅仅是为了尽力避免“单一化”并不是一个很充分的利用。请务比记住:进行安全决策的时间必须作到对原则的完全理解,否则的话,错误的认识有可能导致作出的决定给安全带来损害。