计算机病毒的预防技术探讨.docx
《计算机病毒的预防技术探讨.docx》由会员分享,可在线阅读,更多相关《计算机病毒的预防技术探讨.docx(9页珍藏版)》请在冰豆网上搜索。
![计算机病毒的预防技术探讨.docx](https://file1.bdocx.com/fileroot1/2023-2/2/f1f68c95-9d4b-4b2f-8efc-c2f46c3e506e/f1f68c95-9d4b-4b2f-8efc-c2f46c3e506e1.gif)
计算机病毒的预防技术探讨
计算机病毒的预防技术探讨
摘要
随着人们对计算机安全要求的不断提高,计算机病毒作为计算机安全的主要威胁,正在受到人们广泛的关注。
只有透彻理解病毒的内在机理,知己知彼,才能更好的防范病毒。
本论文研究总结了网页病毒、宏病毒、邮件病毒的感染、传播及如何获得系统控制权机理,总结了防治脚本病毒、宏病毒、邮件病毒的一般做法,并针对这些病毒的特点提出了基于命令式的预防病毒方案。
当前,病毒的传播途径主要依赖于网络,网络是主机感染病毒的主要来源,并给出了常见的病毒检测技术并简要介绍了防火墙的概念。
关键词:
脚本病毒;蠕虫病毒;木马;病毒检测;防火墙
目录
摘要I
1绪论1
2计算机病毒特征1
2.1计算机病毒的定义和特征1
2.1.1基本定义1
2.1.2基本特征1
3计算机病毒的分类2
3.1按病毒攻击对象的机型分类2
3.2按病毒攻击计算机的操作系统分类2
3.3按计算机病毒的传染方式分类2
3.4按计算机病毒破坏情况分类2
3.5按计算机病毒寄生方式分类2
4病毒对抗技术2
4.1病毒的检测技术3
4.1.1检查磁盘的主引导扇区3
4.1.2检查可执行文件3
4.1.3检查内存空间3
4.2特征值检测技术3
4.3校验和检测技术3
4.4行为监测技术4
4.5启发式扫描技术4
4.6防火墙技术概述5
5异常处理5
5.1异常处理的方式5
5.2异常处理的过程6
6计算机病毒预防6
6.1杜绝传染渠道6
6.2设置传染对象的属性7
6.3关于宏病毒7
6.3.1检测宏病毒7
6.3.2预防宏病毒7
7结论8
参考文献9
1绪论
自1949年计算机刚刚诞生,就有了计算机病毒的概念。
计算机之父冯.诺依曼在《复杂自动机组织论》中便定义了病毒的基本概念,他提出“一部事实上足够复杂的机器能够复制自身”。
20世纪60年代初,在美国贝尔实验里,3个年轻的程序员编写了一个名为“磁芯大战”的游戏,游戏中通过复制自身来摆脱对方的控制,这就是所谓“病毒”的第一个雏形。
1983年11月,在国际计算机安全学术研讨会上,美国计算机专家首次将病毒程序在VAX/750计算上进行了实验,世界上第一个计算机病毒就这样出生在实验室里。
80年代后期,微机的普及和Internet的应用,计算机病毒的发展步伐大大加快。
1986年,巴基斯坦的两个软件人员为了搞清楚自己编制的软件究竟都跑到了谁的手里,于是炮制了一个“巴基斯坦智囊”病毒,这可能是最早广泛流行的计算机病毒。
从此,以PC为主要传播对象的计算机病毒开始疯狂传播大肆泛滥。
2计算机病毒特征
由于DOS系统的源码是对外开放的,而且作为单机系统在安全性方面也未做充分的考虑,所以在DOS时代,病毒数量多,技巧性强。
但随着微软windows系统的推出,绝大多数电脑用户选择了界面友好的windows操作系统,宣告了DOS时代的终结,同时DOS系统下的病毒也就没有了用武之地。
因此本论文选择了windows病毒作为研究对象。
2.1计算机病毒的定义和特征
2.1.1基本定义
计算机病毒(computervirus)最早由美国计算机病毒研究专家F.Cohen博士提出。
计算机病毒的定义有多种,目前流行的定义为:
计算机病毒是一段附着在其他程序上的、可以自我繁殖的程序代码。
复制后生成的新病毒同样具有感染其它程序的功能。
在其生命周期中,病毒一般会经历如下四个阶段:
潜伏阶段;传染阶段;触发阶段;发作阶段。
2.1.2基本特征
计算机病毒各种各样,其特征各异,但只要是计算机病毒,就必然具备如下7个基本特征:
传染性;潜伏性;非授权性;隐蔽性;破坏性;不可预见性;可触发性。
3计算机病毒的分类
自第一例计算机病毒于20世纪80年代初面世以来,伴随着计算机技术、信息技术及其应用突飞猛进,获得令人瞩目的空前的同时,也促进了计算机病毒技术亦步亦趋的发展。
面对这种纷繁杂乱的表面现象,针对如此众多的计算机病毒进行科学系统的分类既有学术研究方面的重要意义,又有防止计算机病毒的现实应用意义。
3.1按病毒攻击对象的机型分类
针对病毒攻击的机型而异,目前出现的病毒被分为如下4种:
(1)攻击微型计算机的病毒
(2)攻击小型计算机的病毒(3)攻击大、中型计算机的病毒(4)攻击计算机网络的病毒
例如2001年7月出现的CodeRed(红色代码)病毒和同年8月出现的CodeRedⅡ病毒,它们针对因特网上的服务器突施攻击,且能迅速传播,造成网络访问速度的下降乃至断;2003年8月出现的冲击波蠕虫病毒造成大批计算机瘫痪和网络连接速度减慢,该病毒认为是当年出现的破坏力最强的病毒之一等。
3.2按病毒攻击计算机的操作系统分类
(1)攻击DOS系统的病毒
(2)攻击Windows系统的病毒(3)攻击UNIX系统的病毒
3.3按计算机病毒的传染方式分类
(1)引导型病毒
(2)文件型病毒(3)混合型即引导型兼文件型病毒(4)网络型病毒
3.4按计算机病毒破坏情况分类
(1)良性病毒
(2)恶性病毒
3.5按计算机病毒寄生方式分类
(1)覆盖式寄生病毒
(2)链接式寄生病毒(3)填充式寄生病毒(4)转储式寄生病毒
计算机病毒数量剧增,花样更新,传播迅速。
根据其不同的特征进行分类,以掌握各种类型病毒的工作原理,是防范、遏制病毒蔓延的前提。
4病毒对抗技术
计算机病毒危害计算机本身的安全和信息安全。
自第一个病毒出现后,人们通过与病毒长期的斗争,积累了大量反病毒的经验,掌握了很多实用的反病毒技术,并开发出了一些优秀的抗病毒产品。
病毒对抗主要研究病毒的检测、病毒的清除和病毒的预防。
病毒的检测技术主要有特征植检测技术、校验和检测技术、行为监测技术、启发式扫描技术、虚拟机技术。
4.1病毒的检测技术
常规计算机病毒的检测是对主引导区、可执行文件、内存空间和病毒特征值进行对比分析,寻找病毒感染后留下的痕迹。
4.1.1检查磁盘的主引导扇区
硬盘的主引导扇区,分区表以及文件分配表,文件目录区是病毒攻击的主要目标。
引导病毒主要攻击磁盘上的引导扇区。
硬盘存放主引导记录的主引导扇区一般位于0面0道1扇区。
病毒侵犯引导扇区的重点是前面的几十个字节。
发现与引导扇区信息有关的异常现象,可通过检查主引导扇区的内容来诊断故障。
4.1.2检查可执行文件
主要是检查后缀为COM和EXE等可执行文件的长度、内容、属性等来判断是否感染了病毒。
一般检查这些程序的头部,即前面的20个左右字节,因为大多数病毒会改变文件首部。
4.1.3检查内存空间
计算机病毒在传染或执行时,必然要占有一定内存空间,并驻留在内存中,等待时机进行攻击或传染。
病毒占据的内存空间一般是用户不能覆盖的,因此可通过检查内存的大小和内存中的数据来判断是否有病毒。
可采取一些常用的简单工具如DEBUG、PCTOOLSG来检查。
4.2特征值检测技术
计算机病毒的特征值是指计算机病毒本身在特定的寄生环境中确认自身是否存在的标记符号,即指病毒在传染宿主程序时,首先判断该病毒欲传染的宿主是否已染有病毒时,按特定的偏移量从文件中提出的特征值。
一般而言,一种病毒的标识可以作为一种病毒的特征值,但一种病毒的特征值并不一定表示该病毒的标识。
如1575病毒的特征值可以是0A0CH,也可以是从病毒代码中抽出的一组16进制的代码:
06128CC0021F0E07A3等,前者是1575病毒的传染标识,而后者则不是。
4.3校验和检测技术
计算正常文件的内容和正常的系统扇区校验和,将该校验和写入数据库中保存。
在文件使用/系统启动过程中,检查文件现在内容的校验和与原来保存的校验和是否一致,因而可以发现文件/引导区是否感染,这种方法叫校验和检测技术。
这种方法既能发现已知病毒,也能发现未知病毒,但是,它不能识别病毒种类,不能报出病毒名称。
由于病毒感染并非是文件内容改变的惟一原因,文件内容的改变有可能是正常程序引起的,所以校验和检测技术常常误报警,而且此种方法也会影响文件的运行速度。
此外校验和检测技术也对隐蔽性病毒无效。
4.4行为监测技术
一般来说,反病毒技术包括病毒的防范、检测和清除。
其中如何发现计算机染毒就成了反病毒的重中之重,这就要求有先进、有效的病毒检测技术。
病毒的检测技术通常采用的策略不外乎以下两大类:
(1)针对某个或某些领域特定病毒的专用病毒检查技术,如特征值检测技术和校验和检测技术;
(2)针对广义的所有病毒的通用病毒检测技术。
病毒无论伪装得如何巧妙,它总是存在着一些和正常程序不同的行为。
行为监测是指通过审查应用程序的操作来判断是否有恶意倾向并向用户发出警告。
这种技术能够有效防止病毒的传播,但也很容易将正常的升级程序、补丁程序误报为病毒。
病毒程序的伪装行为越多,它们露出的马脚就越多,因而就越容易被监测到。
人们通过对病毒多年的观察、研究,发现病毒有一些共同行为。
在正常应用程序中,这些行为比较罕见,这就是病毒行为特性。
4.5启发式扫描技术
病毒和正常程序的区别可以体现在许多方面,比较常见的如通常一个应用程序在最初的指令是检查命令行输入有无参数项、清屏和保存原来屏幕显示等,而病毒程序则从来不会这样做,它通常最初的指令是远距离跳转、搬移代码、直接定盘操作、解码指令、或搜索某些路径下的可执行程序等相关操作指令序列。
这些显著的不同之处,一个熟练的程序员在调试状态下只需一瞥便可一目了然。
启发式扫描技术实际上就是把这种经验和知识移植到一个查病毒软件中的具体程序体现。
启发式扫描主要是分析文件中的指令序列,根据统计知识,判断该文件可能感染或者可能没有感染,从而有可能找到未知病毒。
因此,启发式扫描技术是一种概率方法,遵循概率理论的规律。
早期的启发式扫描软件采用代码编译技术作为它的实现基础。
这类病毒检测软件在内部保存数万种病毒行为代码的跳转表,每个表项存储一类病毒行为的必用代码序列,如病毒格式化磁盘必用到的代码。
启发式病毒扫描软件利用代码反编译技术,反编译出被检测文件的代码,然后在这些表格的支持下,使用“静态代码分析法”和“代码相似比较法”等有效手段,就能有效地查出已知病毒的变种以及判定文件是否含有未知病毒。
4.6防火墙技术概述
随着计算机网络的普及和发展,网络安全也成为必须考虑和必须解决的一个重要问题,并得到越来越多的人的关注。
防火墙,作为近几年发展起来的一种网络安全技术,成为了当前网络安全中最常用和最基本的设备,能有效的防止外部网络对内部网络的非授权访问。
在防火墙的发展过程中,网络安全的意义在实际应用中也有着不断的新的变化,最初网络安全是从防范黑客非法入侵的角度考虑的,但在实际的应用中,越来越多的用户发现病毒的危害在网络的普及应用过程中变得愈加严重,因此防病毒也日益成为解决网络安全的一个重要话题和课题,而现在病毒入侵的主要方式也主要集中在网页、嵌入在邮件附件或从因特网下载的文件和MSOffice文件的宏病毒/蠕虫病毒等网络传播形式,有研究结果表明,当前病毒的87%是通过邮件的方式传播的,所以防止病毒从网络入侵成为对付病毒的重要途径,防火墙集防毒功能于一体成了当今防火墙发展的一个方向。
由于本课题的研究方向是病毒,所以设计是基于现有防火墙的一个功能补充,侧重于检测病毒。
5异常处理
病毒在运行过程中,由于环境的变化、程序设计上的失误等原因,有时候轻则弹出提示窗口,重则会导致程序、甚至系统崩溃。
为了不被发现,异常处理也经常用在计算机病毒中。
5.1异常处理的方式
Windows下异常处理有两种方式:
筛选器异常处理和SHE异常处理。
筛选器异常处理的方式由程序指定一个异常处理回调函数,当发生异常的时候,Windows系统将调用这个回调函数并根据回调函数的返回值决定下一步如何操作。
于一个进程来说,只有一个筛选器回调函数。
很明显,这种异常处理方式不便于模块的封装:
由于筛选器回调函数是基于整个进程的,无法为一个线程或子程序单独设置一个异常处理回调函数,这样就无法将私有处理代码封装进某个模块中。
SEH(“StructuredExceptionHandling”),即结构化异常处理,是操作系统提供给程序设计者的强有力处理程序错误或异常的武器。
筛选器异常处理和SHE异常处理都是以回调函数的方式提供的;另外,系统都会根据回调函数的返回值选择不同的操作。
但它们之间也有如下区别:
(1)SEH可以为每个线程设置不同的异常处理程序,而且可以为每个线程设置多个异常处理程序。
(2)两者的回调函数的参数定义和返回值的定义不一样。
(3)SEH使用了与硬件相关的数据指针,所以在不同的硬件平台中使用SEH的方法会有所不同。
5.2异常处理的过程
当系统遇到一个它不知如何处理的异常时,它就查找异常处理链表。
当一个异常发生时,操作系统要向引起异常的线程的堆栈里压入3个结构,分别是EXCEPTION_RECORD、EXCEPTION_POINTERS、CONTEXT。
EXCEPTION_RECORD结构包含有关已发生的独立于CPU的信息,CONTEXT结构包含已发生异常的依赖于CPU信息,EXCEPTION_POINTERS结构只有两个指针数据成员,分别指向被压入栈的EXECPTION_RECORD和CONTEXT结构。
CONTEXT结构包含T特定处理的寄存器数据,如调试寄存器、段寄存器、通用寄存器、控制寄存器等,系统使用该结构执行各种内部操作。
CONTEXT结构非常重要,程序通过修改结构中的成员,改变了线程的运行环境,从而达到反跟踪的目的。
如通过修改结构中偏移为B8的Eip成员,就可使异常处理完毕后,从原程序的任意Eip指定位置开始执行。
整个过程基本上是这样的:
系统按照调试器、SEH链上的从新到旧的各个回调函数、筛选器回调函数的步骤一个一个地去调用它们,直到有一个回调函数愿意处理异常为止,如果都不愿意处理该异常,则由系统默认的异常处理程序来终止发生异常的进程。
6计算机病毒预防
6.1杜绝传染渠道
病毒的传染无非是两种方式:
一是网络,二是软盘与光盘。
如今由于电子邮件的盛行,通过互联网传递的病毒要远远高于后者。
为此,我们要特别注意在网上的行为。
1、不要轻易下载小网站的软件与程序。
2、不要光顾那些诱人的小网站,因为这些网站很有可能就是网络陷阱。
3、不要随便打开某些来路不明的E-mail与附件程序。
4、安装正版杀毒软件公司提供的防火墙,比如瑞星的个人防火墙软件,并注意时时打开运行。
5、不要在线启动、阅读某些文件,否则你很有可能成为网络病毒的传播者。
6、经常给自己发封E-mail,看看是否会收到第二封未属标题及附带程序的邮件。
对于软盘,光盘传染的病毒,预防的方法就是不要随便打开程序或安装软件。
可以先复制到硬盘上,接着用杀毒软件检查一遍,再执行安装或打开命令。
6.2设置传染对象的属性
病毒其实是一段程序或指令代码,它主要针对的是以EXE与COM结尾的文件,由于它天生的局限性,因此预防病毒的另一种方法便是设置传染对象的属性,即:
把所有以EXE与COM为扩展名的文件设定“只读”。
这样一来就算病毒程序被激活,也无法对其他程序进行写操作,也就不能感染可执行程序了,因此病毒的破坏功能受到了很大的限制。
6.3关于宏病毒
不夸张地说,几乎所有使用Word的朋友都曾经与宏病毒狭路相逢过。
宏病毒的产生主要是因为Word本身配有内置语言,简单地说就是具备编程功能,因此有很多别有用心的人就利用了它的这一功能制作出宏病毒。
宏病毒的破坏性虽不大,但对于靠笔杆为生的人的来说确实是一种负担,为此笔者特意借此文告诉大家一些检测、预防宏病毒的方法。
6.3.1检测宏病毒
宏病毒的检测其实非常简单,只要点击Word界面上菜单栏的[工具]→[宏]→[宏],接着在“宏名”列表中查看是否有AutoExce与AutoOpen两个自动宏便可。
6.3.2预防宏病毒
宏病毒通常是驻留在文档或模板的宏中,如果打开这样的文档或模板,就会激活宏病毒,并使病毒进入Normal.dot模板文件中。
为此要预防宏病毒,可以采用以下方法:
1、利用Word本身具有清除宏(病毒)的功能。
当Word识别出一个打开的文档中具有自动执行宏时,它会出现一个对话框,让用户选择是否打开宏,为了预防宏病毒一般我们选择[取消宏]按钮。
2、在Normal.dot模板文件中创建一个自己的宏(AutoExce),具体代码为:
“SubMain
DisableAutoMacros1
EndSub”
这样就能禁止其他自动宏的运行,预防宏病毒的感染。
另外注意一点,此程序是在Word的“工具/宏/VisualBasic编辑器”中完成。
3、将文件保存为TXT(纯文本文件)或RTF形式(文本文件,但可以包括其他一些非文本文件信息,例如:
图片,表格等)。
其实大可不必对病毒感到非常恐惧,甚至闻风丧胆,只要大家对病毒有所认识并加以预防,我想它就不会如此嚣张跋扈。
另外,安装杀毒软件保护你的计算机是必不可少的,并定期升级、定期查杀即可。
7结论
计算机病毒己成为目前信息安全的严重威胁,只有透彻理解病毒的内在机理,知己知彼,才能更好的防治病毒。
本论文深入剖析了Windows系统下各种病毒的相关技术,并给出了相关的防范措施。
在本论文中,所做的工作主要有以下几方面:
(1)研究总结了网页病毒、宏病毒、邮件病毒的感染及如何获得系统控制权机理,并针对这些病毒的特点、机理提出了相应的防范措施。
(2)蠕虫病毒成为当前网络环境下病毒的重要形式,由于该病毒本身的特点加上网络用户安全意识的淡薄,一个新型蠕虫病毒往往迅速扩散,并在全球范围内造成重大损失。
本论文在此分析了蠕虫的机理,并给出了一般防范措施。
(3)研究整理了病毒的常见反检测技术,包括隐藏、变形,异常处理等。
并详细分析了引导型、文件型、宏病毒、及Windows病毒的隐藏技术。
(4)分析了破坏性程序特洛伊木马工作的基本原理及预防和清除方法。
(5)根据计算机病毒的特点、机理论文最后分析了目前常用的病毒检测技术。
参考文献
[1]付建民,彭国军,张焕国.计算机病毒分析与对抗[M].武汉:
武汉大学出版社,2004
[2]卓新建.计算机病毒原理及防治[M].北京:
北京邮电大学出版社,2004
[3]慈庆玉.基于Windows环境的计算机病毒防治技术研究及其检测设计[D].西南交通大学研究生学位论文,2005
[4](美)斯考迪斯,陈贵敏.决战恶意代码[M].北京:
电子业出版社,2005
[5]清弋,启红.黑客在线[M].北京:
现代工作出版社,2002