- Linux服务器安全策略详解(第2版)
- 曹江华
- 2246字
- 2020-08-28 07:40:16
1.4 开源软件网络安全概述
Linux服务器运行的软件主要包括Samba, VsFtp, OpenSSH, MySQL, PHP和Apache等,这些软件大多数是开源软件,而且都在不停升级,稳定版和测试版交替出现。
什么是开源软件?字面意思是公开源代码的软件,它的英文为Open Source Software,简称为OSS。软件既然连源代码都公开,那么自然可以免费使用,一般概念上,它与自由软件(Free Software)是一个等价的概念,用户可以自由地对它进行研究、改进、传播,而无须付出任何费用。随着网络的流行,软件的安全性问题越来越成为人们讨论的焦点,每年大量的黑客攻击事件,病毒、蠕虫、木马的泛滥,使人们不得不高度重视软件的安全性问题。而与此同时,随着开源软件的应用越来越广泛,到底是开放源代码的软件更安全还是不开放源代码的商业软件(Commercial Software)更安全,成为长期以来人们一直关注的问题。
有人认为由于开源软件源代码是开放的,因此即使有漏洞和Bug也极易被人们发现并及时进行修改和完善,但是商业软件却由于不开放源代码,仅有少数人知道源代码,因此在漏洞和Bug方面,可能很晚才会发现,所以也极易造成破坏和损失。但也有人从另一个角度认为,由于开源软件的源代码开放,不法分子从中发现漏洞的机会将会更大,向其中加入病毒木马也更容易,而商业软件由于源代码保密,知悉源代码的人少,被发现漏洞的机会也会小一些。可以说双方都有自己的优点,也都有自己的缺点。
那么,究竟谁会更安全一些呢?事实证明,很多软件使用者,还有一些研究机构,从他们的使用和研究状况来看,开源软件的安全性确实要好一些,而这很大程度上就在于开源软件的开放性和随时弥补性。
事实上,不管是开放源代码的软件还是不开放源代码的软件,漏洞都无可避免,可以毫不夸张地说,所有的软件都有漏洞,只是这些漏洞是不是能及时被发现并进行弥补。软件安全与否,与是否开放源代码关系并不大,把源代码公开并不一定能确保代码本身的安全性,同样,封闭源代码也不一定使代码本身变得不安全。从某种程度上讲,人们所依赖的所谓软件的“安全性”其实更多的是一种臆想和希望,而不是现实。即使是像微软这样的软件巨人,也以每年要在自己的软件上修正多少漏洞,打上多少补丁而著名,而这些还仅仅是已经发现的漏洞,更不用说还没有被发现的漏洞。我们要知道“没有绝对安全的软件”,这是一个基本道理。
因此,追求软件代码自身的安全性,做到让软件本身没有任何漏洞,这几乎是不可能的,人们所谓的软件安全性,更大程度上在于对漏洞的及时发现以及修补。而开源软件,恰恰在这方面具有商业软件所不具有的先天优势。现在的开源软件,很大程度上是一种全球的智慧,是全体软件设计研究人员共同的兴趣和爱好的结晶,其中积累了大部分人的智慧。由于其开放性和共享性,它会充分受到广大的软件研究者和使用者的评审,因而漏洞会较少。即使有漏洞,也能被及时发现,出现问题之后也能更快更容易地进行弥补。所以,从这个角度上来说,开源软件的确会比商业软件更安全。
Linux确实有自己的安全弱点。最常见的弱点是对于某些高级技术缺乏可靠的本地支持。厂商一般开发的硬件和相关的驱动程序软件只为大多数Windows用户使用。Linux团体通常对这些产品做逆向工程处理,使这些产品兼容开源软件操作系统。这首先就使他们的工作没有预见性。在某些情况下,可兼容的Linux硬件要比Windows落后几个月甚至几年。幸运的是,由于IBM和Novell支持开源软件标准,帮助优化兼容过程,这个问题并没有引起多大麻烦。
在Linux的图形界面接口之外,Linux的命令行是非常复杂的,通常是不容易学会的。这就延缓了管理员掌握加强系统安全的时间。Linux主要用做支持网络功能的操作系统,默认安装时不必要地启动了很多网络应用程序。这就可能造成不为人知的安全漏洞。幸运的是,让管理员操作简单的命令行工具弥补了这些弱点。
最好是了解Linux和Windows这两种操作系统相对的优点,在充分分析各个系统的弱点的同时,根据业务的主要需求来选择操作系统。
评定安全等级的更客观的方法是跟踪一个特定的套装软件发布的修复漏洞的补丁数量。当与Linux进行对比的时候,这种衡量方法表明Windows似乎安全漏洞更多。美国计算机应急反应小组最近发表的安全漏洞测评报告称,微软的Windows出现了250次安全漏洞,其中有39个安全漏洞的危险程度达到了40分或者40分以上。而Red Hat Linux只有46次安全漏洞,其中只有3个安全漏洞的危险程度在40分以上。对于这两个操作系统的对比已经有数千份报告了,但是,像这种独立的政府机构发布的报告是最值得考虑的。
在安全方面存在这种差别是有充分理由的。例如,Linux的开源软件开发方式有助于更容易地暴露错误,这是微软不具备的优势。微软的Windows另一个不利因素是其许多应用程序依靠远程程序调用。远程程序调用是计算机内部通信的一种方式,无法预知地和主动地分配通信通路。与限制使用远程程序调用的Linux相比,这种方式将使Windows的防火墙没有Linux那样严格。
有些安全差别不仅系统管理员可以看到,最终用户也可以看到。例如,Windows受到的病毒感染最多,促使大多数用户购买杀毒软件以保证自己的系统安全。最近,流氓软件和间谍软件开始入侵Windows系统,在用户浏览网络时不明智地下载和启动流氓软件、间谍软件之后,流氓软件、间谍软件就会暗地里获取和发布用户的个人信息并且骚扰用户。使用管理员权限和普通的用户账号都可以操作Windows和Linux系统。但是,某些第三方Windows应用软件没有严格坚持这个特点,经常需要管理员的权限才能正确运行软件。因此,这些用户发起的病毒攻击的破坏性是很大的。Linux应用软件通常都遵守这个安全要求,因此很少被攻击者利用。Windows易学易用的目的达到了,但是,其代价是牺牲了全面的安全。此外,Windows需要兼容不安全的老版本软件,这个缺点是Linux所没有的。