软件本身的安全尴尬:破鼓自有万人锤

在IT专业人士之间有一个永恒的话题:软件的受欢迎程度总是和安全呈反比的,随着软件人气的上升,被不怀好意的人盯上的可能性也呈不断上升的趋势,因此软件本身隐藏的安全漏洞就可能被一一挖出,进而给人们造成一种假象,越普及的软件越不安全。

其实一个软件在得到大众的接受后,黑客们就会开始研究它存在的缺陷,人气越旺,研究的人越多,因此暴露出来的问题肯定也就越多,因此那些现在被认为是安全的软件可能是研究它们的人并不多,要不就是人气不高,无利用价值。关于安全和人气之间的特殊关系,我们发现一些有趣的现象:

●  当人气最旺的软件被作为攻击目标后,人们开始寻求“安全性”更好一点的替代品,但很快这些替代品也将成为攻击目标,这似乎是一条没有尽头的路。

●  对于一款很受欢迎的软件而言,即使一个百分点的用户遭到攻击,其数量也是很惊人的。

●  使用价值越高的软件越容易成为被攻击的目标,即使它们不是最流行的软件。

●  如果一个软件能用来攻击其它系统,那么它也很可能成为首先被攻击的目标,这种间接攻击往往导致攻击面的扩大。

●  最受欢迎的Web服务器软件往往比第二受欢迎的Web服务器软件更安全,也许很多人现在都不愿相信这是真的。

虽然有人反对人气和安全成反比的观点,但不可否认,人气和安全的确有一定的联系,人气越旺的软件对犯罪份子的吸引力也越大,如果软件自身注重安全保护,对于犯罪份子来说,挑战难度会加大,也许他们会因此转向其它更脆弱的替代类产品。

由于人气软件用户数量众多,用户口味千奇百怪,对软件的改进需求非常多,开发商迫于用户的压力不得不快速发布新版本做出响应,但这样的恶果就是缺乏安全考虑,软件越做越复杂,越做越臃肿,缺陷也越来越多。

Microsoft Windows是大家最熟悉,最流行的操作系统,其次是苹果的Mac OS X,Canonical的Ubuntu Linux排在第三,有趣的是,它们暴露的安全漏洞排名也和这个一致。

Microsoft Windows的漏洞记录早已臭名昭著,有人认为其架构设计本身就不安全,其次Windows功能多,组件之间的关系复杂,往往是堵了东墙,漏了西墙,除了简单就是美的真理外,简单就是安全也一样被视为真理,虽然微软一再声称新版本Windows更安全,但总是一再不停地发布补丁,批评人士将责任归咎于微软,而微软则喜欢将责任推卸到别人,辩解Windows是树大招风,也许他们都说得对。

苹果的Mac OS X构建在更安全的核心架构上,包括一个微内核,一个BSD Unix用户形态下的GUI,一个从NeXT收购取得的创新高水平API,苹果在边界控制上处理得很好,那些试图破坏Mac OS X系统底层基础的阴谋一般不会得逞,因此苹果对漏洞的响应速度总是很慢,许多时候,人们都会认为微软Windows补丁策略相比之下做得更好。

最后,Canonical的Ubuntu的人气也越来越旺,由于它依赖于很多第三方开源软件,虽然这些软件都不受Canonical控制,但它们的安全性都很有保障,不过Ubuntu要将很多软件组织在一起,首先要保证兼容性,其次要保证组合后的安全性,因此Ubuntu中集成的软件总是使用稳定的版本,即使如此,Ubuntu仍然要面临诸多来自第三方软件和自身漏洞的威胁。

相比之下,那些不流行的操作系统之所以不流行很大程度是缘于其关注的重点不同,它们更注重简单和安全,在他们看来,稳定压倒一切,这样的操作系统有:

●  更面向技术人员的Linux发行版,如Debian和Slackware。

●  “流行的”BSD Unix系统,FreeBSD。

●  最有安全意识的BSD Unix系统,注重正确性的NetBSD和注重安全审计的OpenBSD。

实际上,可以认为这些系统的顺序是从最不安全到最安全的,也是从最流行的到最不流行的,这些都和系统的分布广泛程度和自身设计有着密切的联系,即使最不受欢迎的操作系统至少也有数百万用户,在某些特殊领域,操作系统还会进行定制,它们的数量虽然很少,与Windows,Mac OS X和Ubuntu比起来,它们的漏洞也更少,但一样会遭到犯罪份子的觊觎。

因此我们认为,一个软件的人气与它失败的安全性没有必然联系,那些专门研究软件漏洞的人一般会避开排在第二和第三的软件,可以肯定一点的是,一个人气很旺的软件往往会受到很大的社会压力,它会渐渐打破系统原有的安全设计,为了满足各种各样的需求,软件会变得越来越臃肿和复杂,安全性也因此得不到保障。