系统安全:认识Linux病毒做好操作系统防护工程

对使用Windows的人来说,病毒无处不在,各种各样的新型病毒层出不穷,近年来,一种类似Unix的操作系统也在发展壮大,开始走进我们的视野,并在各领域内得到应用,它就是Linux系统,对于受病毒困扰的用户来说,Linux会是一块没有病毒的乐土吗? 

一、当心Linux病毒

在Linux出现之初,由于其最初的优秀设计,似乎具有先天病毒免疫能力,所以当时有许多人相信不会有针对Linux的病毒出现,但是Linux终于也不能例外。1996年秋,澳大利亚一个叫VLAD的组织用汇编语言编写了据称是Linux系统下的第一个病毒的Staog,它专门感染二进制文件,并通过三种方式去尝试得到root权限。当然,设计Staog病毒只是为了演示和证明Linux有被病毒感染的潜在危险,它并没有对感染的系统进行任何损坏行动。 

 

2001年,一个名为Ramen的Linux蠕虫病毒出现了。Ramen病毒可以自动传播,无需人工干预,虽然它没有对服务器进行任何破坏,但是它在传播时的扫描行为会消耗大量的网络带宽。Ramen病毒是利用了Linux某些版本(Redhat6.2和7.0)的rpc.statd和wu-ftp这两个安全漏洞进行传播的。 

 

同年的另一个针对Linux的蠕虫病毒Lion则造成了实际的危害,当时Lion通过互联网迅速蔓延,并给部分用户的电脑系统造成了严重破坏。Lion病毒能通过电子邮件把一些密码和配置文件发送到互联网上的某个邮箱中,攻击者在收集到这些文件后就可能通过第一次突破时的缺口再次进入整个系统,进行更进一步的破坏活动,比如获机密信息、安装后门等。当用户的Linux系统感染了这个病毒,很有可能因为不能判断入侵者如何改动了系统而选择重新格式化硬盘。而且,一台Linux主机在感染了Lion病毒后就会自动开始在互联网上搜寻别的受害者。事后的反馈表明Lion病毒给许多Linux用户造成了的严重的损失。 

 

其它Linux平台下病毒还有OSF.8759、Slapper、Scalper、Unux.Svat和BoxPoison等,当然,大多数普通的Linux用户几乎没有遇到过它们。这是因为直到目前,Linux上的病毒还非常少,影响的范围也很小。但随着Linux用户的增加,越来越多的Linux系统连接到局域网和广域网上,自然增加了受攻击的可能,可以预见到会有越来越多的Linux病毒出现,因此如何防范Linux病毒就成为每个Linux用户现在就应该开始注意的事情了。

二、抓住弱点,个个击破

Linux的用户也许听说甚至遇到过一些Linux病毒,这些Linux病毒的原理和发作症状各不相同,所以采取的防范方法也各不相同。为了更好地防范Linux病毒,我们先对已知的一些Linux病毒进行分类。

从目前出现的Linux病毒来看,可以归纳到以下几个病毒类型中去:

 

1、感染ELF格式文件的病毒

这类病毒以ELF格式的文件为主要感染目标,通过汇编或者C可以写出能感染ELF文件的病毒。Lindose病毒就是一能感染ELF文件的病毒,当它发现一个ELF文件时,将检查被感染的机器类型是否为Intel80386。如果是,则查找该文件中是否有一部分的大小大于2784字节(或十六进制AEO),如果有,病毒就会用自身代码覆盖它并添加宿主文件的相应部分的代码,同时将宿主文件的入口点指向病毒代码部分。

防范:由于Linux下有良好的权限控制机制,所以这类病毒要有足够的权限才能进行传播。在防范此类病毒时,我们要注意管理好自己Linux系统中的各种文件的权限,特别要注意的是在做日常操作时不要使用root账号,最好不要以root身份运行来历不明的可执行文件,以免无意中触发了含病毒的文件从而传染到整个系统中。

2、脚本病毒

脚本病毒是指使用shell等脚本语言编写的病毒。此类病毒编写较为简单,不需要具有很高深的知识,很容易就实现对系统进行破坏,比如删除文件、破坏系统正常运行、甚至下载安装木马等。但它传播性不强,通常是在本机上造成破坏。

防范:防范此类病毒也是要注意不要随便运行来源不明的脚本,同时,要严格控制对root权限的使用。

3、蠕虫病毒

Linux下的蠕虫病毒与Windows下的蠕虫病毒类似,可以独立运行,并将自身传播到另外的计算机上去。 

 

在Linux平台下的蠕虫病毒通常利用一些Linux系统和服务的漏洞来进行传播,比如,Ramen病毒就是利用了Linux某些版本(Redhat6.2和7.0)的rpc.statd和wu-ftp这两个安全漏洞进行传播的。 

 

防范:防范此类病毒要堵住蠕虫病毒发作的源头,从已经出现的几个Linux病毒爆发事件来看,它们都是利用了Linux已经公布了的几个安全漏洞,如果用户及时采取了对应的安全措施就不会受到它们的影响。不过遗憾的是,许多Linux的管理员并没有紧密跟踪与自己系统和服务相关的最新信息,所以还是给病毒有可乘之机。 

 

用户要做好本机的安全工作,特别要关心Linux的安全漏洞信息,一旦有新的Linux安全漏洞出现,就要及时采取安全措施。此外,还可以配合防火墙规则来限制蠕虫病毒的传播。 

 

3、后门程序

后门程序也可以被看成广义的病毒,在Linux平台上也非常活跃。Linux后门利用系统服务加载、共享库文件注射、rootkit工具包、甚至可装载内核模块(LKM)等技术来实现,许多Linux平台下的后门技术与入侵技术相结合,非常隐蔽,难以清除。 

 

防范:防范此类病毒可以借助一些软件来进行,有一些软件可以帮助用户找出系统中的各种后门程序,比如chkrootkitR、rootkits可以发现蠕虫、后门等。 

 

4、其它病毒

在Linux平台除了面对针对Linux的病毒之外,还要注意到许多Windows病毒会存在于Linux的文件系统中,当然,这类windows病毒是不会在Linux中发作的,但它们有机会传递到Windows系统中。

比如,Linux的Samba服务器可以作为整个网络中的文件服务器,当有用户将含有Windows病毒的文件上传到Samba服务器后,Samba服务器就成为一个病毒携带者,虽然它不会感染这种Windows病毒,但是其它访问过Samba服务的人就有可能从中感染到病毒。   

防范:为了整体的安全,在Linux系统中也需要能查找和杀除Windows病毒。这就需要使用一些专门的反病毒软件。现在,已经有一些开放源码软件和商业软件可供用户选择了,而且其数量正在逐渐增加。

三、多方入手,剿杀Linux病毒

与Windows的病毒相比,从数量上看,Linux的病毒几乎可以忽略不计,但是Linux病毒的制造者们并不会停止,他们多是一些精通编写代码的黑客,Linux自身不可避免地存在的脆弱点很有可能会被他们利用从而编写出各式各样的新Linux病毒来。虽然,Linux病毒还没有开始泛滥,但如果用户毫无防范概念的话,一旦某个Linux病毒暴发,就很可能造成严重的后果。所以Linux用户应该及早重视起Linux病毒这个问题。 

 

最后,笔者对Linux平台下病毒的防范总结出以下几条建议,仅供参考:

 

(1)做好系统加固工作。

(2)留心安全公告,及时修正漏洞。

(3)日常操作不要使用root权限进行。

(4)不要随便安装来历不明的各种设备驱动程序。

(5)不要在重要的服务器上运行一些来历不明的可执行程序或脚本。

(6)尽量安装防毒软件,并定期升级病毒代码库。

(7)对于连接到Internet的Linux服务器,要定期检测Linux病毒。蠕虫和木马是否存在。

(8)对于提供文件服务的Linux服务器,最好部署一款可以同时查杀Windows和Linux病毒的软件。

(9)对于提供邮件服务的Linux服务器,最好配合使用一个E-mail病毒扫描器。

总而言之,对于Linux平台下病毒的防范要采取多种手段,决不可因为现在Linux病毒很少就掉以轻心。