《普通高等教育信息安全类国家级特色专业系列规划教材:计算机病毒原理与防范技术》主要内容包括计算机病毒概述、计算机病毒的工作机制、计算机病毒的表现、新型计算机病毒的发展趋势、计算机病毒检测技术、典型病毒的防范技术、网络安全、即时通信病毒和移动通信病毒分析、操作系统漏洞攻击和网络钓鱼概述、常用反病毒软件等。本书内容丰富,具有先进性和实用性,既是一本计算机病毒与技术的专著,也是一本计算机病毒与防范技术的教材。本书可作为信息安全、计算机,以及各类信息技术、管理学等专业的大学本科生和硕士研究生的教材或参考书,也可作为从事计算机病毒研究和应用工程开发的科技、管理、工程人员的参考书。
《普通高等教育信息安全类国家级特色专业系列规划教材:计算机病毒原理与防范技术》既是一本计算机病毒与技术的专著,也是一本计算机病毒与防范技术的教材。本书可作为信息安全、计算机,以及各类信息技术、管理学等专业的大学本科生和硕士研究生的教材或参考书,也可作为从事计算机病毒研究和应用工程开发的科技、管理、工程人员的参考书。
丛书序
前言
第1章 计算机病毒概述
1.1 计算机病毒的产生与发展
1.1.1 计算机病毒的起源
l.1.2 计算机病毒的发展背景
1.1.3 计算机病毒的发展历史
1.2 计算机病毒的基本概念
1.2.1 计算机病毒的一般特征
1.2.2 计算机病毒在网络环境下表现的特征
1.2.3 计算机病毒的生命周期
1.2.4 计算机病毒的传播途径
1.2.5 计算机感染上病毒的一般症状
1.3 计算机病毒的分类
1.3.1 按照病毒的破坏情况分类
1.3.2 按照病毒攻击的系统分类
l.3.3 按照病毒的寄生部位或传染对象分类
l.3.4 按照病毒攻击的对象分类
1.3.5 按照病毒的连接方式分类
1.3.6 按照病毒的寄生方式分类
1.3.7 按照病毒特有的算法分类
1.3.8 按照病毒存在的媒体分类
1.3.9 按照病毒的“作案”方式分类
1.3.10 Linux平台下的病毒分类
1.3.11 网络病毒
习题
第2章 计算机病毒的工作机制
2.1 计算机病毒的工作过程
2.1.1 计算机病毒的引导模块
2.1.2 计算机病毒的感染模块
2.1.3 计算机病毒的表现模块
2.2 计算机病毒的引导机制
2.2.1 计算机病毒的寄生对象
2.2.2 计算机病毒的寄生方式
2.2.3 计算机病毒的引导过程
2.3 计算机病毒的传染机制
第3章 计算机病毒的表现
第4章 新型计算机病毒的发展趋势
第5章 计算机病毒检测技术
第6章 典型病毒的防范技术
第7章 网络安全
第8章 即时通信病毒和移动通信病毒分析
第9章 操作系统漏洞攻击和网络钓鱼概述
第10章 常用反病毒软件
参考文献
第1章 计算机病毒概述
计算机病毒与医学上的“病毒”相比不完全相同,计算机病毒不是天然存在的,而是某些人利用计算机软、硬件所固有的弱点所编制的、具有特殊功能的程序。计算机病毒是一个程序,或一段可执行代码,它像生物病毒一样具有独特的复制能力,能够很快蔓延,有很强的感染性、一定的潜伏性、特定的触发性和极大的破坏性,又常常难以被根除。随着计算机网络的发展,计算机病毒与计算机网络技术结合,其蔓延的速度更加迅速。
计算机病毒是一个靠修改其他程序,并把自身复制品传染给其他程序的程序。计算机病毒是一种人为的计算机程序,这种程序隐藏在计算机系统的可存取信息资源中,利用计算机系统信息资源进行生存、繁殖,影响和破坏计算机系统的运行。在《中华人民共和国计算机信息系统安全保护条例》中对计算机病毒有明确的定义,病毒指“编制者在计算机程序中插入的破坏计算机功能或者破坏数据,影响计算机使用并且能够自我复制的一组计算机指令或者程序代码” 。
计算机的信息需要存取、复制和传送,计算机病毒作为信息的一种形式可以随之繁殖、感染和破坏,并且,当计算机病毒取得控制权之后,它会主动寻找感染目标、广泛传播。随着计算机技术发展得越来越快,计算机病毒技术与计算机反病毒技术的对抗也越来越激烈。从1983年计算机病毒被首次确认以来,直到1987年才开始在世界范围受到普遍的重视,至今全世界已经发现万余种病毒,并且还在快速增加。现在每天都要出现几十种新的计算机病毒,其中很多计算机病毒的破坏性非常大,稍有不慎,就会给计算机用户造成严重的后果。计算机操作系统的弱点往往被计算机病毒利用,所以一方面要提高系统的安全性以预防计算机病毒;另一方面,信息保密的要求又让人在泄密和截获计算机病毒之间无法选择。这样,计算机病毒与反计算机病毒势必成为一个长期的技术对抗过程。计算机病毒主要由反计算机病毒软件来对付,而且反计算机病毒技术将成为一项长期的科研任务。
1.1 计算机病毒的产生与发展
1.1.1 计算机病毒的起源
计算机病毒的来源多种多样,一般来自玩笑与恶作剧、报复心理、版权保护等方面,有的是计算机工作人员或业余爱好者纯粹为了寻求开心而制造出来的,有的则是软件公司为保护自己的产品不被非法复制而制造的报复性惩罚。还有一种情况就是蓄意破坏,它分为个人行为和政府行为两种:个人行为多为雇员对雇主的报复行为,而政府行为则是有组织的战略战术手段。对病毒的起源有几种说法。
第一种为科学幻想起源说。1977年,美国科普作家托马斯•丁•雷恩推出轰动一时的《P-1的青春》一书,作者构思了一种能够自我复制、利用信息通道传播的计算机程序,并称之为计算机病毒。这是世界上第一个幻想出来的计算机病毒。
第二种为恶作剧起源说。恶作剧者是为了显示一下自己在计算机技术方面的天赋,或是要报复一下他人或单位而编写的计算机病毒,只是和对方开个玩笑。而出发点有些恶意成分的人所编写的病毒的破坏性很大,世界上流行的许多计算机病毒都是恶作剧者的产物。
第三种是游戏程序起源说。20世纪70年代,美国贝尔实验室的计算机程序员为了娱乐,在自己实验室的计算机上编制吃掉对方程序的程序,看谁能先把对方的程序吃光。有人猜测这是世界上第一个计算机病毒。
第四种是软件商保护软件起源说。软件制造商为了处罚那些非法复制者,在软件产品之中加入计算机病毒程序并由一定条件触发并传染。比如Pakistani Brain 计算机病毒,该病毒是巴基斯坦的两兄弟为了追踪非法复制其软件的用户而编制的,它只是修改磁盘卷标,把卷标改为Brain 以便识别。
归纳起来,计算机系统及Internet 的脆弱性是产生计算机病毒的根本技术原因之一,人性心态与人的价值和法制的定位是产生计算机病毒的社会基础,基于政治、军事等方面的特殊目的是计算机病毒应用产生质变的催化剂。现在流行的病毒是人为故意编写的,从大量的统计分析来看,病毒作者主要情况和目的是一些天才的程序员为了表现自己和证明自己的能力,出于对上司的不满,为了好奇,为了报复,为了祝贺和求爱,为了得到控制口令,为了怕软件拿不到报酬而预留的陷阱等。当然也有因政治、军事、宗教、民族、专利等方面的需要而专门编写的病毒软件,其中也包括一些病毒研究机构和黑客的测试病毒软件。
1.1.2 计算机病毒的发展背景
1.计算机病毒的祖先:Core War(磁芯大战)
早在1949年,距离第一部商用计算机的出现还有好几年时,计算机的先驱者冯•诺依曼就在他的一篇论文《复杂自动机组织论》中,提出了计算机程序能够在内存中自我复制的观点,即已把计算机病毒程序的雏形勾勒出来了。但在当时,绝大部分的计算机专家都无法想象这种会自我繁殖的程序是可能实现的,只有少数几个科学家默默地研究冯•诺依曼所提出的概念。直到10 年之后,在美国电话电报公司( AT & T)的贝尔实验室中,3 个年轻程序员在工作之余想出一种电子游戏叫做Core War(磁芯大战),他们是道格拉斯•麦耀莱( H. DouglasMcIlroy) 、维特•维索斯基(Victor Vysottsky)及罗伯•莫里斯(Robert T.Morris),当时3人的年纪都只有二十多岁。Core War 的玩法如下:双方各编写一套程序,输入同一部计算机中。
这两套程序在计算机内存中运行,它们相互追杀。有时它们会放下一些关卡,有时会停下来修复被对方破坏的指令。当它们被困时,可以自己复制自己,逃离险境。因为它们都在计算机的内存(以前均用Core 作为内存)中游走,因此叫Core War。这个游戏的特点在于双方的程序进入计算机之后,玩游戏的人只能看着屏幕上显示的战况,而不能做任何更改,一直到某一方的程序被另一方的程序完全“吃掉”为止。
2.计算机病毒的出现
在单机操作时代,每个计算机是互相独立的,如果有某部计算机因受到计算机病毒的感染而失去控制,那么只需把它关掉即可。但是当计算机网络逐渐成为社会结构的一部分之后,一个会自我复制的计算机病毒程序很可能带来无穷的祸害。因此,长久以来,懂得玩“磁芯大战” 游戏的计算机工作者都严守一条不成文的规则:不对大众公开这些程序的内容。
这项规则在1983 年被打破了。科恩• 汤普逊(Ken Thompson)是当年的一个杰出计算机得奖人。在颁奖典礼上,他做了一个演讲,不但公开地证实了计算机病毒的存在,而且还告诉所有听众怎样去写自己的计算机病毒程序。1984 年,《科学美国人》Scienti f ic A merican 月刊的专栏作家杜特尼(A. K.Dewdney)在5 月写了第一篇讨论Core War 的文章,并且只要寄上两美金,任何读者都可以收到他所写的有关编写这种程序的要领,并可以在自己家中的计算机上开辟战场。在1985年3月的《科学美国人》里,杜特尼再次讨论Core War 和计算机病毒,在该文章中第一次提到“计算机病毒”这个名称。从此,计算机病毒就伴随着计算机的发展而发展起来了。
1.1.3 计算机病毒的发展历史
20 世纪60 年代初,美国电话电报公司( AT & T)的贝尔实验室Core War 游戏问世。20世纪70年代早期的大型计算机时代,一些程序员制作了被称为“兔子”的程序,它们在系统中分裂出替身,占用系统资源,影响正常的工作。在一种大型计算机――Univax 1108 系统中,首次出现了一个和现代计算机病毒本质上一样的叫做“流浪的野兽”(Pervading Animal)的程序,该程序可以将自己附着到其他程序的后面。20世纪80年代,独立程序员写了很多游戏或者其他的小程序,并通过电子公告板(BBS)自由地流传,窃取相关账号和密码,由此就诞生了无数的“特洛伊木马病毒”( Trojan Horses) 。1982 年,在苹果机上诞生了最早的引导区计算机病毒――“埃尔科克隆者”(Elk Cloner)。
到1986年,随着计算机病毒数量的不断增大,计算机病毒的制作技术也逐步提高。计算机病毒是所有软件中最先利用操作系统底层功能,以及最先采用复杂的加密和反跟踪技术的软件之一,计算机病毒技术发展的历史就是软件技术发展的历史。一种新的病毒技术出现后,计算机病毒会迅速发展;接着,反计算机病毒技术的发展又会抑制其流传。操作系统进行升级时,计算机病毒也会调整为新的方式,产生新的计算机病毒技术。
计算机病毒的发展历程可以分为以下4个阶段。
第一代病毒(1986~1989 年),这期间出现的病毒称之为传统的病毒,为萌芽与滋生时期。
第二代病毒(1989~1991 年)为混合型病毒,是病毒由简单到复杂、由单纯到成熟的阶段。
第三代病毒(1992~1995 年)为多态性病毒、自我变形病毒,为病毒成熟发展阶段。
第四代病毒(1996~今),随着Internet 的普及,病毒的流行迅速突破地域的限制而传播。
1.第一代病毒――病毒的萌芽时期
第一代病毒产生于1986~1989 年,称为传统的病毒,是计算机病毒的萌芽和滋生时期。
由于那时计算机的应用软件少,且大多是单机运行环境,病毒的种类有限,病毒的清除工作相对来说较容易。这一阶段的计算机病毒具有如下的一些特点。
(1)病毒攻击的目标比较单一,传染磁盘引导扇区,或传染可执行文件。
(2)病毒程序主要采取截获系统中断向量的方式监视系统的运行状态,并在一定的条件下对目标进行传染。
(3)病毒传染目标以后的特征比较明显,如磁盘上出现坏扇区、可执行文件的长度增加、文件建立日期时间发生变化等。
(4)病毒程序不具有自我保护的措施。
随着计算机反病毒技术的提高和反病毒产品的不断涌现,病毒编制者也在不断地总结自己的编程技巧和经验,千方百计地逃避反病毒产品的分析、检测和解毒,从而出现了第二代计算机病毒。
2.第二代病毒――混合型病毒
第二代病毒称为混合型病毒(或“超级病毒”),年限为1989~1991年,它是计算机病毒由简单发展到复杂、由单纯走向成熟的阶段。当时计算机局域网开始应用与普及,应用软件开始转向网络环境,网络系统尚未有安全防护的意识,缺乏在网络环境下防御病毒的思想准备与方法对策,使计算机病毒形成了第一次流行高峰。这一阶段的计算机病毒具有如下特点。
(1)病毒攻击的目标趋于混合型,可以感染多个/种目标。
(2)病毒程序采取隐蔽的方法驻留内存和传染目标。
(3)病毒传染目标后没有明显的特征。
(4)病毒程序采取了自我保护措施,如加密技术、反跟踪技术,制造障碍,增加人们剖析和检测病毒、解毒的难度。
(5)出现许多病毒的变种,这些变种病毒较原病毒的传染性更隐蔽,破坏性更大。
这一时期出现的病毒不仅在数量上急剧增加,更重要的是病毒从编制的方式、方法,驻留内存以及对宿主程序的传染方式、方法等方面都有了较大的变化。
3.第三代病毒――多态性病毒
第三代病毒的产生年限为1992~1995年,此类病毒称为“多态性”病毒或“自我变形”病毒。所谓“多态性”或“自我变形”,是指此类病毒在每次传染目标时,放入宿主程序中的病毒程序大部分都是可变的,即同一种病毒的多个样本中,病毒程序的代码绝大多数是不同的。
此类病毒的首创者是Mark Washburn,他是一位反病毒的技术专家,他编写的“1260病毒”就是一种多态性病毒,该病毒有极强的传染力,被传染的文件被加密,每次传染时都更换加密密钥,而且病毒程序都进行了相当大的改动。他编写此类病毒的目的是为了研究,以证明特征代码检测法不是在任何场合下都是有效的。不幸的是,为研究病毒而发明的此种病毒超出了反病毒的技术范围,流入了病毒技术中。
1992年上半年,在保加利亚发现了“黑夜复仇者”(Dark Avenger)病毒的变种MutationD-ark Avenger,这是世界上最早发现的多态性的实战病毒,它可用独特的加密算法产生几乎无限数量的不同形态的同一病毒。据悉,该病毒作者还散布一种名为“多态性生成器”的软件工具,利用此工具将普通病毒进行编译即可使之变为多态性病毒。
1992年早期,第一个多态性计算机病毒生成器MtE被开发出来,计算机病毒爱好者利用这个生成器生成了很多新的多态计算机病毒。同时,第一个计算机病毒构造工具集(VirusConstruction Sets) ――“计算机病毒创建库”(Virus Create Library)开发成功,这类工具的典型代表是“计算机病毒制造机”(VCL),它可以在瞬间制造出成千上万种不同的计算机病毒,查解时不能使用传统的特征识别法,需要在宏观上分析指令,解码后才能查解计算机病毒。变体机就是增加解码复杂程度的指令生成机制。这段时期出现了很多非常复杂的计算机病毒,如“死亡坠落”( Night Fall)、“胡桃钳子”(Nutcracker)等,还有一些很有趣的计算机病毒,如“两性体”(Bisexual) 、RNMS 等。
国内在1994 年年底已经发现了多态性病毒――“幽灵”病毒,迫使许多反病毒技术部门开发了相应的检测和消毒产品。
由此可见,第三阶段是病毒的成熟发展阶段。在这一阶段中主要是病毒技术的发展,病毒开始向多维化方向发展,计算机病毒与病毒自身运行的时间、空间和宿主程序紧密相关,这无疑给计算机病毒检测和消除带来困难。
4.第四代病毒――Windows和Internet环境
20世纪90年代中后期,随着远程网、远程访问服务的开通,病毒的流行迅速突破地域的限制,通过广域网传播至局域网内,再在局域网内传播扩散。
随着Windows系统的日益普及,利用Windows系统进行传播的计算机病毒开始发展,它们修改NE、PE文件,典型的代表是DS.3873,这类计算机病毒的机制更为复杂,它们利用保护模式和API 调用接口工作。在Windows 环境下的计算机病毒有“博扎”(Win95.Boza)、“触角”(Tentacle)、AEP 等。随着微软新的操作系统Windows 95、Windows NT和微软办公软件Office的流行,计算机病毒制造者不得不面对一个新的环境,他们在这一年中开始使用一些新的感染和隐藏方法,制造出在新的环境下可以自我复制和传播的计算机病毒,在计算机病毒中增加多态、反跟踪等技术手段。随着Windows Word功能的增强,使用Word宏语言也可以编制计算机病毒,感染Word文件。针对微软字处理软件版本6 和版本7 的宏病毒“分享欢乐”(Share Fun)随后也出现了,这种计算机病毒的特殊之处在于除了通过字处理文档传播之外,还可以通过微软的邮件程序发送病毒自身。
1996年下半年,随着国内Internet的大量普及和E-mail的使用,夹杂于E-mail内的Word宏病毒已成为当时病毒的主流。由于宏病毒编写简单、破坏性强、清除繁杂,加上微软对DOC文档结构没有公开,给直接基于文档结构清除宏病毒带来了诸多不便。从某种意义上来讲,宏病毒对文档的破坏已经不仅仅属于普通病毒的概念,如果放任宏病毒泛滥,不采取强有力的彻底解决方法,宏病毒对中国的信息产业将会产生不测的后果。
这一时期的病毒的最大特点是利用Internet作为其主要传播途径,因而病毒传播快、隐蔽性强、破坏性大。新型病毒的出现向以行为规则判定病毒的预防产品、以病毒特征为基础的检测产品以及根据计算机病毒传染宿主程序的方法而消除病毒的反病毒产品提出了挑战,迫使人们在反病毒的技术和产品上进行更新和换代。
随着Internet的发展,各种计算机病毒也开始利用Internet进行传播,一些携带计算机病毒的数据包和邮件越来越多,出现了使用文件传输协议(FTP)进行传播的蠕虫病毒――“本垒打”( Homer) 、“mIRC 蠕虫” 、破坏计算机硬件的CIH 、远程控制工具“后门” (Back Orifice)、“网络公共汽车”(NetBus)、“阶段”(Phase)等软件。
随着Internet上Java的普及,开始出现利用Java语言进行传播和资料获取的计算机病毒,典型的代表是JavaSnake计算机病毒,还有利用邮件服务器进行传播和破坏的计算机病毒Mail-Bomb 。第一个感染Java 可执行文件的计算机病毒是“陌生的酿造”(Strange Brew);名为“兔子”(Rabbit)的计算机病毒则充分利用了Visual Basic脚本语言专门为Internet所设计的一些特性进行传播;“梅丽莎”(Melissa)病毒利用邮件系统大量复制、传播,造成网络阻塞,甚至瘫痪,还会造成泄密。随着微软Windows操作系统逐步.COM化和脚本化,脚本计算机病毒成为这一时期的主流。脚本计算机病毒和传统的计算机病毒、木马程序相结合,给计算机病毒技术带来了一个新的发展高峰,如“爱虫”就是一种脚本计算机病毒,它通过微软的电子邮件系统进行传播。
到目前为止,反病毒技术已经成为了计算机安全的一种新兴的计算机产业或称反病毒工业。
人类历史进入21世纪以来,互联网渗入每一户人家,网络成为人们日常生活和工作的不可缺少的一部分。一个曾经未被人们重视的病毒种类遇到适合的滋生环境而迅速蔓延,这就是蠕虫病毒。蠕虫病毒是一种利用网络服务漏洞而主动攻击的计算机病毒类型。与传统病毒不同,蠕虫不依附在其他文件或媒介上,而是独立存在的病毒程序,利用系统的漏洞通过网络主动传播,可在瞬间传遍全世界。蠕虫已成为目前病毒的主流。这些病毒利用操作系统的漏洞进行进攻型的扩散,不需要任何媒介和操作,用户只要接入互联网络,就有可能被感染,其危害性极大。
综上所述,计算机病毒的发展可以概括如下:世界上第一个计算机病毒于1983年11月在美国实验室诞生,巴基斯坦两兄弟在1986年为追踪非法复制自己软件的人,制造了世界上第一个传染个人计算机兼容机的“巴基斯坦”病毒。计算机病毒1988年传入我国。直至20世纪90年代中期,最流行的病毒仍是引导型病毒和文件型病毒。这类病毒主要感染磁盘引导扇区和可执行文件,采取截获系统中断向量的方式监视系统的运行状态,并在一定的条件下对目标进行传染;目标被感染后,出现磁盘坏扇区,可执行文件的长度、建立日期、时间发生变化等,可通过人工或杀毒软件发现并清除。随着汇编语言的发展,多态性病毒开始大行其道。多态性病毒通常采取加密、反跟踪等自我保护技术,放入宿主程序中的大部分病毒代码都是可变的,每种病毒可以演变出6万~4000亿个形态,像幽灵一样无处不在。由于这一特点,使利用特征码法检测病毒的传统反病毒产品无法检测出此类病毒。1996年之后,感染Windows可执行程序并在Windows环境下运行的病毒开始传播,感染Windows 3.X NE 格式和Windows95/98 PE格式文件,利用保护模式和API接口进行破坏活动。随着互联网的普及和远程访问服务的开通,使得病毒的流行迅速突破地域限制。这些病毒能够通过网络自我复制,大量消耗系统资源。在自我复制过程中,它们利用网络机制、协议和软件的漏洞,主动进行网络探测,对目标系统发起攻击,将自身代码植入系统中,并启动代码,从而完成病毒的传播。
1.2 计算机病毒的基本概念
1.2.1 计算机病毒的一般特征
计算机病毒是指编制或者在计算机程序中插入的破坏计算机功能或者毁坏数据,影响计算机使用,并能自我复制的一组计算机指令或者程序代码。
1.程序性
计算机病毒具有正常程序的一切特性:可存储性、可执行性。计算机本身绝对不会生成计算机病毒,而程序是由人来编写的,是人为的结果,这就决定了计算机病毒表现形式和破坏行为的多样性和复杂性。程序性是计算机病毒的基本特征,也是最基本的表现形式。
2.传染性
计算机病毒会通过各种渠道从已被感染的计算机扩散到未被感染的计算机,在某些情况 ……