蠕虫的行为特征描述和工作原理分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
蠕虫的行为特征描述和工作原理分析*
郑辉** 李冠一 涂菶生
(南开大学 20-333# ,天津,300071)
E-mail: zhenghui@
/students/doctor/spark/zhenghui.htm
摘要:本文详细讨论了计算机蠕虫和计算机病毒的异同,指出它们除了在复制和传染方面具有相似性之外,还有很多不同点,如蠕虫主要以计算机为攻击目标,病毒主
要以文件系统为攻击目标;蠕虫具有主动攻击特性,而病毒在传播时需要计算机
使用者的触发。通过详细区分它们的不同行为特征,确定了在计算机网络安全防
范体系中不同角色的责任。然后描述了蠕虫发展的历史,从中可以看到,蠕虫产
生了越来越大的危害。通过分析计算机蠕虫的工作原理、功能结构、实体组成,
提出了蠕虫的统一功能结构模型,并给出了有针对性的对计算机蠕虫攻击进行防
范的措施。最后本文分析了一些新的蠕虫技术发展趋势,指出计算机蠕虫本质上
是黑客入侵行为的自动化,更多的黑客技术将被用到蠕虫编写当中来,由此可以
看出对蠕虫攻击的防治和对抗将是长期而困难的工作。
关键词:蠕虫,计算机病毒,计算机网络安全,蠕虫定义,蠕虫历史,行为特征,功能模型
一、 引言
计算机病毒给世界范围内的计算机系统带来了不可估量的危害,给人们留下了深刻的印象。同时给人们一种误解,认为危害计算机的程序就是病毒。从而不加区分把计算机病毒(Virus)、计算机蠕虫(Worm)、木马程序(Trojan Horse)、后门程序(Backdoor)、逻辑炸弹(Logic Bomb)等等这些概念都称为计算机病毒。这种误解不仅体现在媒体的宣传中,而且体现在病毒技术研究人员的文章[1][2]中,反病毒厂商对产品的介绍说明中,甚至政府部门制定的法律法规[3]当中。这种相近概念上的误解导致不能有效的给出针对不同类型危害计算机安全的程序的有效防治措施,也为整体的计算机安全防护带来了一定困难。另外,同一程序的不同分类也不利于对其性质的进一步研究和分析。
计算机病毒和计算机蠕虫在传播、复制等特性上非常相似,尤其容易造成人们的误解。导致误解的原因有很多,一方面由于反病毒技术人员自身知识的限制,无法对这两种程序进行清楚细致的区分;另一方面虽然病毒的命名有一定的规范[4][5],但病毒编写者在为自己的程序起名字的时候并不一定遵循这个规范,利用网络功能如电子邮件进行传播的病毒常常被病毒编写者冠以蠕虫的名字,这也给人们带来一些误导。为了照顾这种病毒的命名,曾有文献试图将蠕虫细分为活动蠕虫和邮件蠕虫[6]。由于用计算机病毒这个称谓不能涵盖所有危害计算机的程序的特征,而且容易产生误导,所以有的文献采用了含义更广泛的称谓“恶意软件”(malware)[7]来统一称呼它们。从蠕虫产生开始,十几年来,很多研究人员对蠕
*高等学校博士点学科点专项科研基金资助课题(编号:2000005516)。
**作者简介:郑辉(1972~),男,吉林伊通人,博士研究生,主要研究领域为网络与信息安全。李冠一(1978~),女,辽宁鞍山人,硕士研究生,主要研究领域为模式识别,计算机视觉与图像处理等。涂奉生(1937~),江西南昌人,博士生导师,主要研究领域为CIMS, DEDS理论,制造系统及通讯理论。
虫和病毒这两个概念进行了区分[7~14],但描述基本都很粗略,而且不同研究人员给出的分类也不一致。本文试图明确区分这两个概念。
通过对几种典型的蠕虫程序进行分析,本文讨论了蠕虫的主要行为特征。文献[6][14]提出了蠕虫的功能结构描述,但由于对蠕虫和病毒两种程序的行为特征区分的不明确,这些功能模型结构不清晰,体系不完整。本文在参考前人工作的基础上,提出了比较清晰全面的蠕虫程序的统一功能模型来完成对蠕虫程序的功能结构描述。并进一步对蠕虫的实体结构进行了分析,依据功能结构描述和实体结构分析,给出了针对蠕虫防治的几点建议。另外,本文也对蠕虫技术的未来发展趋势进行了描述。
二、 蠕虫的定义
1、蠕虫的原始定义:
蠕虫这个生物学名词在1982年由Xerox PARC 的John F. Shoch等人最早引入计算机领域[15],并给出了计算机蠕虫的两个最基本特征:“可以从一台计算机移动到另一台计算机”和“可以自我复制”。他们编写蠕虫的目的是做分布式计算的模型试验,在他们的文章中,蠕虫的破坏性和不易控制已经初露端倪。1988年Morris蠕虫爆发后,Eugene H. Spafford 为了区分蠕虫和病毒,给出了蠕虫的技术角度的定义,“计算机蠕虫可以独立运行,并能把自身的一个包含所有功能的版本传播到另外的计算机上。”(worm is a program that can run by itself and can propagate a fully working version of itself to other machines. )[8]。
2、病毒的原始定义:
人们在探讨计算机病毒的定义时,常常追溯到David Gerrold在1972年的发表的科幻小说《When Harlie Was One》,但计算机病毒的技术角度的定义是由Fred Cohen在1984年给出的,“计算机病毒是一种程序,它可以感染其它程序,感染的方式为在被感染程序中加入计算机病毒的一个副本,这个副本可能是在原病毒基础上演变过来的。”(a program that can 'infect' other programs by modifying them to include a possibly evolved copy of itself.)[9]。 1988年Morris蠕虫爆发后,Eugene H. Spafford 为了区分蠕虫和病毒,将病毒的含义作了进一步的解释。“计算机病毒是一段代码,能把自身加到其它程序包括操作系统上。它不能独立运行,需要由它的宿主程序运行来激活它。”(virus is a piece of code that adds itself to other programs, including operating systems. it cannot run independently and it requires that its 'host' program be run to activate it. )[8]。
3、蠕虫、病毒之间的区别与联系:
计算机蠕虫和计算机病毒都具有传染性和复制功能,这两个主要特性上的一致,导致二者之间是非常难区分的,尤其是近年来,越来越多的病毒采取了部分蠕虫的技术,另一方面具有破坏性的蠕虫也采取了部分病毒的技术,更加剧了这种情况。但对计算机蠕虫和计算机病毒进行区分还是非常必要的,因为通过对它们之间的区别、不同功能特性的分析,可以确定谁是对抗计算机蠕虫的主要因素、谁是对抗计算机病毒的主要因素;可以找出有针对性的有效对抗方案;同时也为对它们的进一步研究奠定初步的理论基础。
本文给出了病毒和蠕虫的一些差别,如下表(表1):