1、可执行文件型病毒,这个主要就是指能够寄生在文件中的以文件为主要感染对象的病毒。
2、蠕虫(worm)病毒,Linux平台下的蠕虫病毒极为猖獗,像利用系统漏洞进行传播的ramen、lion、Slapper等,这些病毒都感染了大量的Linux系统,造成了巨大的损失。
3、脚本病毒,这样的多为使用shell脚本语言编写的病毒,这类病毒编写较为简单,但破坏力却同样惊人,像以.sh结尾的脚本文件,一个短短数十行的shell脚本就可以在短时间内感染硬盘中所有的脚本文件。
4、后门程序,从增加系统超级用户帐号的简单后门,到利用系统服务加载、共享库文件注射、rootkit工具包,甚至可以装载内核模块(LKM)而产生的后门,Linux平台下的后门技术发展非常成熟,隐蔽性强,难以清除,已经成为Linux系统管理员极为头疼的问题。
Linux账号限制
对一个二进制的Linux病毒,要感染可执行文件,这些可执行文件对启动这个病毒的用户一定要是可写的。而实际情况通常并不是这样的。实际情况通常是,程序被root拥有,用户通过无特权的帐号运行。而且,越是没有经验的用户,他拥有可执行文件的可能性就越小。因此,越是不了解这种危险的用户的主目录越不适合病毒繁殖。
即使这个病毒成功地感染了这个用户拥有的一个程序,由于这个用户权限受限,它进一步传播的任务也会非常困难(当然,对于运行单用户系统的Linux新手,这个论证可能不适用。这样的用户可能会对root帐户比较粗心)。
Linux网络限制
Linux网络程序构建地很保守,没有使现在Windows病毒如此快速传播变的可能的高级宏工具。这并不是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
提供的敌对的环境中茁壮成长
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)