蓝盟IT外包聊聊为啥Linux病毒这么少?

发布者:但丁 来源:www.linemore.com

平时大家聊到windows病毒巨多,而linux病毒少,往往会有这么一个主流观点就是,linux病毒少是因为Linux不像Windows那么普及,这个观点看似很有道理,其实站不住脚,一个最有力的论据是:如果写病毒的人写Windows 病毒是因为 Windows 用户多而因此破坏性大,那么 Internet 上大多数服务器都是基于 Unix/Linux 的,攻击这些服务器,破坏性岂不是更大么?攻击服务器产生的破坏效果远远大于供给客户端产生的破坏效果!
从具体层面分析,linux有几个特性导致了病毒传播是难于windows系统的,首先是linux账号限制,对一个二进制的 Linux 病毒,要感染可执行文件,这些可执行文件对启动这个病毒的用户一定要是可写的。而实际情况通常并不是这样的。实际情况是,程序被 root 账户拥有,普通用户并不具有root权限,通过无特权的帐号运行。而且,越是没有经验的用户,他拥有可执行文件的可能性就越小。因此,越是不了解这种危险的用户的主目录越不适合病毒繁殖,其实也就是说linux对账号的权限管理更严格,这种严格非常不利于病毒的传播。即使这个病毒成功地感染了这个用户拥有的一个程序,由于这个用户权限受限,它进一步传播的任务也会非常困难(当然,对于运行单用户系统的 Linux 新手,这个论证可能不适用。新手往往会直接使用root账号,这是很尴尬的事情)。
其次,是linux网络限制,linux 网络程序构建地很保守,导致现在 Windows 病毒如此快速传播变的高级宏工具在linux系统中是不存在的,这并不是 linux 的固有特征,它仅仅是两种用户基础的不同和这种不同导致的在这两种市场中的成功产品的不同的反映。
再次是linux内核和用户空间,linux的内核和用户空间分得很清晰,用户甚至可以在启动时定义自己的init=XXX参数使得用户空间的第一个进程是自己定义的,这种内核空间和内核空间的不耦合是十分重要的,内核在init内核线程中通过execve一个用户进程让用户接手系统,这个进程是可以自己定义的,不过一般是/sbin/init进程,这样的结果就是即使用户空间全部被注入了,那么你第一,可以删除这些肮脏的文件;第二,可以设置一个你自己定义的干净的init进程,需要做的就是重新启动一下系统,一切就搞定了,linux中强大shell命令使得你可以很简单的备份一份干净的无病毒的根文件系统,因此在linux下杀毒将是一件很简单的事情。用户可以自主控制用户空间的第一个进程是这里的要点,在windows下这是很难的,你想替换smss程序,试试看,系统会提示你“请确定磁盘未满或未被写保护而且文件未被使用”,并且system32下的dllcache也是一个让你又爱又恨的目录,不信的话,请手动删除一下IE试试看。
最后是开源的linux,linux的应用软件和系统软件几乎都是开源的。这对病毒有两方面的影响。首先,病毒很难藏身于开源的代码中间。其次,对仅有二进制的病毒,一次新的编译安装就截断了病毒一个主要的传播途径。虽然 Linux 发行商也提供大量的二进制软件包,但是用户大都是从发行商提供的可靠的软件仓库中下载这些软件包,大都具有 md5 验证机制,安全性极高。所以病毒制造者对于linux系统的开源特性,可以说是又爱又恨。
一个计算机病毒,像生物病毒一样,要想传播开来,其繁殖速度必须超过其死亡(被消灭)的速度。上面提到的障碍有效地降低了linux 病毒的繁殖速度。我们没有看到一个真正的 linux 病毒疯狂传播,原因就在于存在的 linux 病毒中没有一个能够在 linux 提供的敌对的环境中茁壮成长。
不过话说回来,虽然linux很难感染病毒,但是基本上感染上就是很难处理的rootkit病毒,最难搞的rookit病毒即使重新安装操作系统也无法处理,很多处理病毒的老手对于最难缠的rootkit病毒的最终解决方案也是更换硬件!当然这种情况概率是很低的。
linux也无法在病毒的攻击中全身而退,就像虚拟机的宿主机,大部分时间是对病毒免疫的,但是遇到可以进行虚拟机逃逸的病毒也是无可奈何,linux虽然很难中毒,但是一中毒就是rootkit这种最严重情况需要更换硬件才能处理的病毒。对于linux主机的安全防护同样应该是企业安全关注的重点,不容轻视!
 
>
400-635-8089
立即
咨询
电话咨询
服务热线
400-635-8089
微信咨询
微信咨询
微信咨询
公众号
公众号
公众号
返回顶部