诺亚威胁检测中心

Worm

蠕虫病毒

一般认为蠕虫是一种通过网络传播的主动攻击的恶性计算机病毒,是计算机病毒的子类。早期恶意代码的主要形式是计算机病毒COHE1985 COHE1989 COHE1990。1988年“Morris”蠕虫爆发后,Spafford为了区分蠕虫和病毒,对病毒重新进行了定义,他认为:“计算机病毒是一段代码,能把自身加到其他程序包括操作系统上;它不能独立运行,需要由它的宿主程序运行来激活它”SPAF1988。而网络蠕虫强调自身的主动性和独立性。worm在磁带的术语里是一写多读,worm还是星际争霸2中出现的新兵种,具备运输本族单位的能力。

历史

“蠕虫”最早出自一本1975出版的名为《Shockwave Rider》的科幻小说。最先由Xerox Palo Alto Research Center(PARC)于1980引入计算机领域,但当时引入它的目的是进行分布式计算而不是进行恶意的破坏。 蠕虫被用做恶意攻击的历史可以追溯到1988年11月2日爆发的Morris 蠕虫[SPAF1988],它是由Morris在Cornell大学就读研究生期间作为研究项目开发的,它在互联网上发布后几天之内就感染了互联网上6 000多台服务器,造成了巨大的损失。它的出现一方面给社会造成了巨大的损失,另一方面引起了人们对这种攻击的重视。Morris蠕虫是通过fingerd、sendmail、rexec/rsh三种系统服务中存在的漏洞进行传播的。它之所以如此出名,除了因为它是第一个出现的恶意蠕虫外,更重要的是因为它对蠕虫开发所涉及的各个方面考虑得比较周全,它的很多技术至今仍被蠕虫开发者所使用。

1988年12月23号,HI蠕虫开始通过DECnet协议进行传播,它仅感染VMS系统,并且通过使用默认口令来连接其他网络系统进行传播。由于该蠕虫在圣诞节那天发给被感染系统的消息中会包含“Your Father Christmas”的字样,所以该蠕虫有时也被称为“Father Christmas”蠕虫。 1989年10月16日,另一个与HI相类似的蠕虫——WANK蠕虫开始在运行于DECnet的VMS系统上进行传播,与HI不同的是,该蠕虫的作者用意不在于用它搞破坏而是用它来表达自己的政治主张,这从它所散布的标语“Worms Against the Nuclear Killers”上可以看得出来。WANK蠕虫是通过系统弱口令缺陷进行传播的。

1998年5月,一个名为“ADM”的地下安全组织发布了ADM蠕虫,它借助BIND8.1及其以前版本反向查询中的缓冲区溢出漏洞在Linux系统上进行传播,但由于程序自身的限制,它的传染效率较低。ADM蠕虫是UNIX平台上蠕虫的重要里程牌,因为:① 它引入了随机地址生成器;② 它通过Shell脚本对攻击代码进行了封装。这两种技术都被后来的很多蠕虫作者所采纳。 1999年9月,ADM Millennium蠕虫爆发,由于该蠕虫将其所有文件的时间戳设置为2000年1月1日,所以人们称其为“Millennium”蠕虫。由于它在很多方面类似于1998年的ADM蠕虫,所以被认为是ADM 蠕虫的仿制品。Millennium蠕虫只感染Linux系统,它入侵系统后,会修补所有它利用的系统漏洞,以此来防止重复感染。它通过imap4、qpopper、bind、rpc.mountd 4种系统服务中存在的漏洞进行传播。 2000年5月4日,求爱信(LOVE LETTER)蠕虫爆发,这是一个用VBScript语言写成的蠕虫程序,它可以通过多种方式进行传播,包括:E-mail、Windows文件共享、IRC、USENET新闻组等。根据CERT的统计,截至2000年5月8日,仅5天的时间,就有近500 000台机器被感染。该蠕虫一旦感染了某台机器就会采取下面的动作:① 用自身的副本来替代系统内部的特定类型的文件;② 生成mIRC脚本;③ 修改浏览器的主页,将其指向一个可能含有恶意代码的网页;④ 从地址簿中获取邮件地址来发送自己的副本;⑤ 修改注册表以保证自己在机器启动时得到执行。另外,值得注意的一点是,它利用了人们的好奇心理,比如将邮件的主题定为“I LOVE YOU”,导致很多人会因为好奇而去打开附件,从而被感染。这种手段被后来的很多蠕虫所借鉴。

2001年1月,Ramen蠕虫在Linux系统下发现,它的名字取自一种面条。该蠕虫通过三种方式进行攻击:① 利用wu-ftpd2.6.0中的字符串格式化漏洞;② 利用RPC.statd未格式化字符串漏洞;③ 利用LPR字符串格式化漏洞。由于以上所涉及的软件组件可以安装在任何的Linux系统上,所以Ramen能够对所有的Linux系统造成威胁。同时它也向人们显示出构造一个蠕虫并不是非常复杂的事情,因为该蠕虫所用到的漏洞和脚本等大多数来自互联网上公开的资料,但这并没有影响该蠕虫爆发后给互联网所带来的巨大损失。 2001年3月23日,Lion(或1i0n)蠕虫继Ramen之后在互联网上出现,最初发布的版本中只包含了如下几个作为蠕虫所必需的几个组件:一个用于传播蠕虫工具包的微型服务器端,一个B类地址的随机生成器,一个扫描工具和一段针对BIND8.1服务器的攻击代码,但后来出现的变体中又引入了其他的一些组件来隐藏自己。Lion蠕虫通过域名解析服务程序BIND中的TSIG漏洞进行传播,代码中有明显的对Ramen蠕虫的抄袭痕迹,而且所有关键模块都来自于网上其他的工具包。

2001年4月3日,Adore蠕虫被发现,它也曾被称为Red蠕虫,攻击受害者系统后,该蠕虫会发送系统信息,所以有计算机专家推断Adore蠕虫为中国黑客编写。经分析Adore蠕虫是基于Ramen蠕虫和Lion蠕虫写成的,它综合利用了这两个蠕虫的攻击方法。Adore蠕虫通过wuftpd、rpc.statd、LPRng、bind 4种系统服务中存在的漏洞进行传播。

2001年5月8日,sadmind/IIS蠕虫爆发,它被认为是第一个同时攻击两种操作系统的蠕虫。它利用SUN公司的Solaris系统(UNIX簇)中的sadmind服务中的两个漏洞进行传播,另外还可以利用微软公司IIS服务器中的Unicode解码漏洞来攻击安装了IIS的服务器。 2001年5月17日,Cheese蠕虫在互联网上出现,这个蠕虫号称是良性蠕虫,是针对Lion 蠕虫编写的,它利用Lion蠕虫留下的后门(10008 端口的rootshell)进行传播。进入系统后,它会自动修补系统漏洞并清除掉Lion 蠕虫留下的所有痕迹。它的出现,被认为是对抗蠕虫攻击的一种新思路,但由于在实现上没有采取很好的控制措施,它最终还是对互联网的性能造成了负面的影响。

2001年7月18日,CodeRed蠕虫爆发,该蠕虫感染运行于Microsoft Index Server 2.0系统,或是在Windows 2000、IIS中启用了索引服务(Indexing Service)的系统。该蠕虫只存在于内存中,并不向硬盘中拷贝文件,它借助索引服务器的ISAPI扩展缓冲区溢出漏洞进行传播,通过TCP端口80,将自己作为一个TCP流直接发送到染毒系统的缓冲区,它会依次扫描Web,以便能够感染其他的系统,而且将感染对象锁定为英文系统。一旦感染了当前的系统,蠕虫会检测硬盘中是否存在c:\notworm,如果该文件存在,蠕虫将停止感染其他主机。随后几个月内产生了威力更强的几个变种,其中CodeRed II蠕虫造成的损失估计达12 亿美元,它与CodeRed相比作了很多优化,不再仅对英文系统发动攻击,而是攻击任何语言的系统,而且它还在遭到攻击的机器上植入特洛伊木马,使得被攻击的机器后门大开。CodeRed II拥有极强的可扩充性,可通过程序自行完成木马植入的工作,使得蠕虫作者可以通过改进此程序来达到不同的破坏目的。

2001年9月18日,Nimda蠕虫被发现,不同于以前的蠕虫,Nimda开始结合病毒技术,它通过搜索[SOFTWAREMicrosoftWindowsCurrentVersionApp Paths]来寻找在远程主机上的可执行文件,一旦找到,就会以病毒的方式感染文件。它的定性引起了广泛的争议,NAI(著名的网络安全公司)把它归类为病毒,CERT把它归类为蠕虫,Incidents(国际安全组织)同时把它归入病毒和蠕虫两类。自从它诞生以来到现在,无论哪里、无论以什么因素作为评价指标排出的十大病毒排行榜,它都榜上有名。该蠕虫只攻击微软公司的Windows系列操作系统,它通过电子邮件、网络共享、IE浏览器的内嵌MIME类型自动执行漏洞、IIS服务器文件目录遍历漏洞以及CodeRed II和sadmind/IIS蠕虫留下的后门共五种方式进行传播。其中前三种方式是病毒传播的方式。对Nimda 造成的损失评估数据从最早的5亿美元攀升到26亿美元后,继续攀升,到现在已无法估计。

2002年5月22日,SQL Snake蠕虫被发布,该蠕虫攻击那些配置上有漏洞的Microsoft SQL服务器。虽然蠕虫的传播速度并不快,但也感染了好几千台计算机,这充分说明了蠕虫作者所用技术的先进性,其中最重要的一点是该蠕虫的扫描地址不是随机产生的而是由蠕虫作者将最有可能被感染的那些地址集成到蠕虫个体当中去的,这大大提高了蠕虫成功的概率和攻击目标的明确性。SQL Snake蠕虫扫描指定地址的端口1433(这是SQL Server的默认端口),对那些开放了此端口的服务器则进一步用“SA”管理员账号进行连接,成功后,蠕虫会在系统内建立一个具有管理员级别的“GUEST”账号,并修改“SA”的账号口令,将新的口令发送到指定的邮箱,以备后用。 2003年1月25日,SQL Slammer(又名:Sapphire)蠕虫爆发,它是曾经出现过的传播速度最快的蠕虫,每隔8.5秒的时间它所感染的主机的数目就要翻一番,在10分钟的时间内它就感染了近90%的脆弱性主机。该蠕虫利用的是SQL服务器或MSDE 2000中包含的缓冲区溢出漏洞。该蠕虫的另一个特点是:它的代码仅有376字节,其负载也不过404字节。幸运的是,该蠕虫所利用的随机地址产生器存在缺陷,使很大一部分IP空间逃过了它的攻击。

在2002年后期至2003年初期,出现了很多新的蠕虫针对Windows系统的文件共享服务,但其中最厉害的一个是2003年3月11日发布的“deloder”蠕虫,该蠕虫并没有利用任何编程方面的漏洞,它借助的是弱口令给系统所带来的脆弱性,最终也同样造成了大量主机被攻击。这就警示用户在进行口令设置时不能只从易于记忆方面加以考虑,还要充分考虑口令的复杂性。 2003年8月11日,“冲击波”(WORM_MSBlast.A)开始在国内互联网和部分专用信息网络上传播。该蠕虫传播速度快、波及范围广,对计算机正常使用和网络运行造成了严重影响。该蠕虫在短时间内造成了大面积的泛滥,因为该蠕虫运行时会扫描网络,寻找操作系统为Windows 2000/XP的计算机,然后通过RPC DCOM(分布式组件模型)中的缓冲区溢出漏洞进行传播,并且该蠕虫会控制135、4444、69端口,危害计算机系统。被感染的计算机中Word、Excel、Powerpoint等类型文件无法正常运行,弹出找不到链接文件的对话框,“粘贴”等一些功能也无法正常使用,计算机出现反复重新启动等现象,而且该蠕虫还通过被感染系统向windowsupdate.microsoft网站发动拒绝服务攻击。自11日夜晚至12日凌晨在中国境内发现,仅3天的时间冲击波就已经使数十万台机器受到感染。

2004年1月27日和28日,网络蠕虫“Mydoom”及其变种“Mydoom.B”相继开始在互联网上迅速传播。它是一种利用邮件进行传播的蠕虫,可以利用自身的SMTP引擎创建邮件信息。感染后,它会从被感染计算机上获取邮件地址,并把自身发送到所获取的“寄件人”地址里,而且它还可以终止安全程序的运行。由于信件来自自己熟悉的人,所以很容易使人受骗而被感染。 2004年4月30日,震荡波(Sasser)被首次发现,虽然该蠕虫所利用的漏洞微软事先已公布了相应的补丁,但由于没能引起计算机用户的充分重视,还是导致其在短短一个星期时间之内就感染了全球1 800万台电脑,成为2004年当之无愧的“毒王”。它利用微软公布的Lsass漏洞进行传播,可感染WindowsNT/XP/2003等操作系统,开启上百个线程去攻击其他网上的用户,造成机器运行缓慢、网络堵塞。震荡波攻击成功后会在本地开辟后门,监听TCP 5554端口,作为FTP服务器等待远程控制命令,黑客可以通过这个端口偷窃用户机器的文件和其他信息。“震荡波”发作特点类似于前面所说的“冲击波”,会造成被攻击机器反复重启。