Linux 为何对病毒免疫?http://lyanry.is-programmer.com/show/452.html

lyanry posted @ 2007年10月02日 10:10AM in 我爱用Gentoo with tags linux 病毒 我的Gentoo系统备份与还原方案 申明 1:为降低文本输入量,本文所言及 Linux,皆指 Gnu/Linux。 申明 2:本文主要内容取自 “南京大学小百合站《 一个Linux病毒艰辛短暂的一生》”

可能不少人持这样一种观点,认为 Linux 病毒少是因为Linux不像Windows那么普及,其实这种观点很早已经被人批驳过了,一个最有力的论据是:如果写病毒的人写 Windows 病毒是因为 Windows 用户多而因此破坏性大,那么 Internet 上大多数服务器都是基于 Unix/Linux 的,***这些服务器,破坏性岂不是更大么?如果有时间,可以阅读一下欧盟的一份有关 Windows vs Linux 安全性的报告:
http://www.theregister.co.uk/security/security_report_windows_vs_linux/

对一个二进制的 Linux 病毒,要感染可执行文件,这些可执行文件对启动这个病毒的用户一定要是可写的。而实际情况通常并不是这样的。实际情况通常是,程序被 root 拥有,用户通过无特权的帐号运行。而且,越是没有经验的用户,他拥有可执行文件的可能性就越小。因此,越是不了解这种危险的用户的主目录越不适合病毒繁 殖。

即使这个病毒成功地感染了这个用户拥有的一个程序,由于这个用户权限受限,它进一步传播的任务也会非常困难(当然,对于运行单用户系统的 Linux 新手,这个论证可能不适用。这样的用户可能会对 root 帐户比较粗心)。

Linux 网络程序构建地很保守,没有使现在 Windows 病毒如此快速传播变的可能的高级宏工具。这并不是 Linux 的固有特征;它仅仅是两种用户基础的不同和这种不同导致的在这两种市场中的成功产品的不同的反映。通过观察这些问题学到的经验也会被用到将来的 Linux 产品中。

Linux的应用软件和系统软件几乎都是开源的。这对病毒有两方面的影响。首先,病毒很难藏身于开源的代码中间。其次,对仅有二进制的病毒,一次新 的编译安装就截断了病毒一个主要的传播途径。虽然 Linux 发行商也提供大量的二进制软件包,但是用户大都是从发行商提供的可靠的软件仓库中下载这些软件包,大都具有 md5 验证机制,安全性极高。

这些障碍每一个都是病毒成功传播的一个重要阻碍。然而当把他们放在一起考虑的时候,基本的问题才浮现出来。

一个计算机病毒,像生物病毒一样,要想传播开来,其繁殖速度必须超过其死亡(被消灭)的速度。上面提到的障碍有效地降低了 Linux 病毒的繁殖速度。如果它的繁殖速度降到取代原来种群所需要的阈值之下,那么这个病毒的厄运从一开始就注定了--甚至在潜在受害人意识到它们之前。

我们没有看到一个真正的 Linux 病毒疯狂传播,原因就在于存在的 Linux 病毒中没有一个能够在 Linux 提供的敌对的环境中茁壮成长。现在存在的 Linux 病毒仅仅是技术上的好奇;现实是没有能养得活的 Linux 病毒。

当然,这并不意味着永远没有 Linux 病毒能够流行。然而它确实意味着一个成功的 Linux 病毒要在不适合生存的 Linux 生态系统中存活下来必须是精心制作并具创新的。