究竟什么是计算机病毒
随着电脑不断地影响我们的生活,电脑病毒也随着各种网络,磁盘等等日新月异的方式企图入侵我们的家用电脑、公司电脑,严重影响了我们使用计算机与网络。下面是小编跟大家分享的是究竟什么是计算机病毒,欢迎大家来阅读学习~
究竟什么是计算机病毒
病毒历史
自从1946年第一台冯-诺依曼型计算机ENIAC出世以来,计算机已被应用到人类社会的各个领域。然而,1988年发生在美国的“蠕虫病毒”事件,给计算机技术的发展罩上了一层阴影。蠕虫病毒是由美国CORNELL大学研究生莫里斯编写。虽然并无恶意,但在当时,“蠕虫”在INTERNET上大肆传染,使得数千台连网的计算机停止运行,并造成巨额损失,成为一时的舆论焦点。
在国内,最初引起人们注意的病毒是80年代末出现的“黑色星期五”,“米氏病毒”,“小球病毒”等。因当时软件种类不多,用户之间的软件交流较为频繁且反病毒软件并不普及,造成病毒的广泛流行。后来出现的word宏病毒及win95下的CIH病毒,使人们对病毒的认识更加深了一步。
最初对病毒理论的构思可追溯到科幻小说。在70年代美国作家雷恩出版的《P1的青春》一书中构思了一种能够自我复制,利用通信进行传播的计算机程序,并称之为计算机病毒。
病毒定义
“计算机病毒”为什么叫做病毒。首先,与医学上的“病毒”不同,它不是天然存在的,是某些人利用计算机软、硬件所固有的脆弱性,编制具有特殊功能的程序。由于它与生物医学上的“病毒”同样有传染和破坏的特性,因此这一名词是由生物医学上的“病毒”概念引申而来。
从广义上定义,凡能够引起计算机故障,破坏计算机数据的程序统称为计算机病毒。依据此定义,诸如逻辑炸弹,蠕虫等均可称为计算机病毒。在国内,专家和研究者对计算机病毒也做过不尽相同的定义,但一直没有公认的明确定义。
直至1994年2月18日,我国正式颁布实施了《中华人民共和国计算机信息系统安全保护条例》,在《条例》第二十八条中明确指出:“计算机病毒,是指编制或者在计算机程序中插入的破坏计算机功能或者毁坏数据,影响计算机使用,并能自我复制的一组计算机指令或者程序代码。”此定义具有法律性、权威性。(此节内容摘自《计算机安全管理与实用技术》一书)
病毒的产生
那么究竟它是如何产生的呢?其过程可分为:程序设计--传播--潜伏--触发、运行--实行攻击。究其产生的原因不外乎以下几种:
开个玩笑,一个恶作剧。某些爱好计算机并对计算机技术精通的人士为了炫耀自己的高超技术和智慧,凭借对软硬件的深入了解,编制这些特殊的程序。这些程序通过载体传播出去后,在一定条件下被触发。如显示一些动画,播放一段音乐,或提一些智力问答题目等,其目的无非是自我表现一下。这类病毒一般都是良性的,不会有破坏操作。
产生于个别人的报复心理。每个人都处于社会环境中,但总有人对社会不满或受到不公证的待遇。如果这种情况发生在一个编程高手身上,那么他有可能会编制一些危险的程序。在国外有这样的事例:某公司职员在职期间编制了一段代码隐藏在其公司的系统中,一旦检测到他的名字在工资报表中删除,该程序立即发作,破坏整个系统。类似案例在国内亦出现过。
用于版权保护。计算机发展初期,由于在法律上对于软件版权保护还没有象今天这样完善。很多商业软件被非法复制,有些开发商为了保护自己的利益制作了一些特殊程序,附在产品中。如:巴基斯坦病毒,其制作者是为了追踪那些非法拷贝他们产品的用户。用于这种目的的病毒目前已不多见。
用于特殊目的。某组织或个人为达到特殊目的,对政府机构、单位的特殊系统进行宣传或破坏。或用于军事目的。
病毒特征
这种特殊程序有以下几种特征:
传染性是病毒的基本特征。在生物界,通过传染病毒从一个生物体扩散到另一个生物体。在适当的条件下,它可得到大量繁殖,并使被感染的生物体表现出病症甚至死亡。同样,计算机病毒也会通过各种渠道从已被感染的计算机扩散到未被感染的计算机,在某些情况下造成被感染的计算机工作失常甚至瘫痪。与生物病毒不同的是,计算机病毒是一段人为编制的计算机程序代码,这段程序代码一旦进入计算机并得以执行,它会搜寻其他符合其传染条件的程序或存储介质,确定目标后再将自身代码插入其中,达到自我繁殖的目的。只要一台计算机染毒,如不及时处理,那么病毒会在这台机子上迅速扩散,其中的大量文件(一般是可执行文件)会被感染。而被感染的文件又成了新的传染源,再与其他机器进行数据交换或通过网络接触,病毒会继续进行传染。
正常的计算机程序一般是不会将自身的代码强行连接到其它程序之上的。而病毒却能使自身的代码强行传染到一切符合其传染条件的未受到传染的程序之上。计算机病毒可通过各种可能的渠道,如软盘、计算机网络去传染其它的计算机。当你在一台机器上发现了病毒时,往往曾在这台计算机上用过的软盘已感染上了病毒,而与这台机器相联网的其它计算机也许也被该病毒侵染上了。是否具有传染性是判别一个程序是否为计算机病毒的最重要条件。
未经授权而执行。一般正常的程序是由用户调用,再由系统分配资源,完成用户交给的任务。其目的对用户是可见的、透明的。而病毒具有正常程序的一切特性,它隐藏再正常程序中,当用户调用正常程序时窃取到系统的控制权,先于正常程序执行,病毒的动作、目的对用户时未知的,是未经用户允许的。
隐蔽性。病毒一般是具有很高编程技巧、短小精悍的程序。通常附在正常程序中或磁盘较隐蔽的地方,也有个别的以隐含文件形式出现。目的是不让用户发现它的存在。如果不经过代码分析,病毒程序与正常程序是不容易区别开来的。一般在没有防护措施的情况下,计算机病毒程序取得系统控制权后,可以在很短的时间里传染大量程序。而且受到传染后,计算机系统通常仍能正常运行,使用户不会感到任何异常。试想,如果病毒在传染到计算机上之后,机器马上无法正常运行,那么它本身便无法继续进行传染了。正是由于隐蔽性,计算机病毒得以在用户没有察觉的情况下扩散到上百万台计算机中。
大部分的病毒的代码之所以设计得非常短小,也是为了隐藏。病毒一般只有几百或1k字节,而PC机对DOS文件的存取速度可达每秒几百KB以上,所以病毒转瞬之间便可将这短短的几百字节附着到正常程序之中,使人非常不易被察觉。
潜伏性。大部分的病毒感染系统之后一般不会马上发作,它可长期隐藏在系统中,只有在满足其特定条件时才启动其表现(破坏)模块。只有这样它才可进行广泛地传播。如“PETER-2”在每年2月27日会提三个问题,答错后会将硬盘加密。著名的“黑色星期五”在逢13号的星期五发作。国内的“上海一号”会在每年三、六、九月的13日发作。当然,最令人难忘的便是26日发作的CIH。这些病毒在平时会隐藏得很好,只有在发作日才会露出本来面目。
破坏性。任何病毒只要侵入系统,都会对系统及应用程序产生程度不同的影响。轻者会降低计算机工作效率,占用系统资源,重者可导致系统崩溃。由此特性可将病毒分为良性病毒与恶性病毒。良性病度可能只显示些画面或出点音乐、无聊的语句,或者根本没有任何破坏动作,但会占用系统资源。这类病毒较多,如:GENP、小球、W-BOOT等。恶性病毒则有明确得目的,或破坏数据、删除文件或加密磁盘、格式化磁盘,有的对数据造成不可挽回的破坏。这也反映出病毒编制者的险恶用心。
从对病毒的检测方面来看,病毒还有不可预见性。不同种类的病毒,它们的代码千差万别,但有些操作是共有的(如驻内存,改中断)。有些人利用病毒的这种共性,制作了声称可查所有病毒的程序。这种程序的确可查出一些新病毒,但由于目前的软件种类极其丰富,且某些正常程序也使用了类似病毒的操作甚至借鉴了某些病毒的技术。使用这种方法对病毒进行检测势必会造成较多的误报情况。而且病毒的制作技术也在不断的提高,病毒对反病毒软件永远是超前的。
病毒分类
从第一个病毒出世以来,究竟世界上有多少种病毒,说法不一。无论多少种,病毒的数量仍在不断增加。据国外统计,计算机病毒以10种/周的速度递增,另据我国公安部统计,国内以4种/月的速度递增。如此多的种类,做一下分类可更好地了解它们。
按传染方式分为:引导型病毒、文件型病毒和混合型病毒。
文件型病毒一般只传染磁盘上的可执行文件(COM,EXE)。在用户调用染毒的可执行文件时,病毒首先被运行,然后病毒驻留内存伺机传染其他文件或直接传染其他文件。其特点是附着于正常程序文件,成为程序文件的一个外壳或部件。这是较为常见的传染方式。
混合型病毒兼有以上两种病毒的特点,既染引导区又染文件,因此扩大了这种病毒的传染途径(如97年国内流行较广的“TPVO-3783(SPY)”)。
按连接方式分为:源码型病毒、入侵型病毒、操作系统型病毒、外壳型病毒。
源码病毒较为少见,亦难以编写。因为它要攻击高级语言编写的源程序,在源程序编译之前插入其中,并随源程序一起编译、连接成可执行文件。此时刚刚生成的可执行文件便已经带毒了。
入侵型病毒可用自身代替正常程序种的部分模块或堆栈区。因此这类病毒只攻击某些特定程序,针对性强。一般情况下也难以被发现,清除起来也较困难。
操作系统病毒可用其自身部分加入或替代操作系统的部分功能。因其直接感染操作系统,这类病毒的危害性也较大。
外壳病毒将自身附在正常程序的开头或结尾,相当于给正常程序加了个外壳。大部份的文件型病毒都属于这一类。
按破坏性可分为:良性病毒,恶性病毒。前面已介绍过。
新兴一族:宏病毒。宏病毒是近两年才出现的,如分类它可算做文件型。在此对其专门介绍。
病毒命名
对病毒命名,各个反毒软件亦不尽相同,有时对一种病毒不同的软件会报出不同的名称。如“SPY”病毒,KILL起名为SPY,KV300则叫“TPVO-3783”。给病毒起名的方法不外乎以下几种:
按病毒出现的地点,如“ZHENJIANG_JES”其样本最先来自镇江某用户。按病毒中出现的人名或特征字符,如“ZHANGFANG—1535”,“DISK
KILLER”,“上海一号”。按病毒发作时的症状命名,如“火炬”,“蠕虫”。按病毒发作的时间,如“NOVEMBER
9TH”在11月9日发作。有些名称包含病毒代码的长度,如“PIXEL.xxx”系列,“KO.xxx”等。
病毒初步分析
计算机病毒的种类虽多,但对病毒代码进行分析、比较可看出,它们的主要结构是类似的,有其共同特点。整个病毒代码虽短小但也包含三部分:引导部分,传染部分,表现部分。
引导部分的作用是将病毒主体加载到内存,为传染部分做准备(如驻留内存,修改中断,修改高端内存,保存原中断向量等操作)。
传染部分的作用是将病毒代码复制到传染目标上去。不同类型的病毒在传染方式,传染条件上各有不同。
表现部分是病毒间差异最大的部分,前两个部分也是为这部分服务的。大部分的病毒都是有一定条件才会触发其表现部分的。如:以时钟、计数器作为触发条件的或用键盘输入特定字符来触发的。这一部分也是最为灵活的部分,这部分根据编制者的不同目的而千差万别,或者根本没有这部分。
病毒的初步识别与预防
想要知道自己的计算机中是否染有病毒,最简单的方法是实用较新的反病毒软件对磁盘进行全面的检测。但反病毒软件对于病毒来说总是致后的。如何及早地发现新病毒呢?用户可做以下简单判断:无论如何高明的病毒,在其侵入系统后总会留下一些“蛛丝马迹”。
首先应注意内存情况,绝大部分的病毒是要驻留内存的。对于DOS用户可用C盘启动机器,然后用“MEM”命令查看全部基本内存是否为640K(因为大多数引导型病毒驻留内存时会更改此数)。如果有病毒可能会被改为638K,637K,有些机器在正常情况下639K亦是正常的(如某些COMPAQ机)。还应注意被占用的内存数是否无故减少。
其次应注意常用的可执行文件(如COMMAND.COM)的字节数。绝大多数的病毒在对文件进行传染后会使文件的长度增加。在查看文件字节数时应首先用干净系统盘启动。
对于软盘,则应注意是否无故出现坏块(有些病毒会在盘上做坏簇标记,以便将其自身部分隐藏其中)。其他如出现软件运行速度变慢(磁盘读盘速度影响除外),输出端口异常等现象都有可能是病毒造成的。最准确的方法是查看中断向量及引导扇区是否被无故改变,当然这需要对系统及磁盘格式有一定的了解。