网络安全 频道

安全扫盲贴 到底什么样的杀毒软件好

  (2)病毒篇

  所谓病毒就是一段代码,其本质和大家使用的QQ、WORD什么的程序没有区别,只不过制作者令其具有了自我复制和定时发作进行破坏功能。一般病毒都在1K到数K大小。

  一、病毒种类

  我们所遇到的病毒可分引导型(感染磁盘引导区)程序型(感染可执行文件)宏病毒(感染WORD文档)等。

  二、病毒工作原理

  计算机系统的内存是一个非常重要的资源,我们可以认为所有的工作都需要在内存中运行(相当与人的大脑),所以控制了内存就相当于控制了人的大脑,病毒一般都是通过各种方式把自己植入内存,获取系统最高控制权,然后感染在内存中运行的程序。(注意,所有的程序都在内存中运行,也就是说,在感染了病毒后,你所有运行过的程序都有可能被传染上,感染那些文件这由病毒的特性所决定)

  1、程序型病毒的工作原理。

  这是目前最多的一类病毒,主要感染.exe 和 .dll等可执行文件和动态连接库文件,比如很多的蠕虫病毒都是这样。注意蠕虫病毒不是一个病毒,而是一个种类。他的特点是针对目前INTERNET高速发展,主要在网络上传播,当他感染了一台计算机之后,可以自动的把自己通过网络发送出去,比如发送给同一居欲网的用户或者自动读取你的EMAIL列表,自动给你的朋友发EMAIL等等。感染了蠕虫病毒的机器一秒种可能会发送几百个包来探测起周围的机器。会造成网络资源的巨大浪费。所以这次我们杀毒主要是针对这种病毒。

  那么病毒是怎么传染的那?

  切记:病毒传染的前提就是,他必须把自己复制到内存中,硬盘中的带毒文件如果没有被读入内寸,是不会传染的,这在杀毒中非常重要。而且,计算机断电后内存内容会丢失这我想大家都知道。

  所以:病毒和杀毒软件斗争的焦点就在于争夺启动后的内存控制权。

  2、程序型病毒是怎么传播的。

  病毒传播最主要的途径是网络,还有软盘和光盘。比如,我正在工作时,朋友拿来一个带病毒的软盘,比如,该病毒感染了磁盘里的A文件,我运行了一下这个A文件,病毒就被读如内存,如果你不运行染毒文件,程序型病毒是不会感染你的机器的(不要骂,我这里说的是程序型病毒,后面我会说引导型病毒,他只要打开软盘就会感染)当染毒文件被运行,病毒就进入内存,并获取了内存控制权,开始感染所有之后运行的文件。比如我运行了WORD。EXE,则该文件被感染,病毒把自己复制一份,加在WORD.EXE文件的后面,会使该文件长度增加1到几个K。(不是所有病毒都这样,我举这个离子只是想介绍病毒感染过程)

  好,接下来,比如说我关机了,则内存中的病毒被清除,我机子中所有的染毒文件只有WORD.exe。第二天,我又开机时,内存是干净的。比如我需要用WORD,于是,该染毒文件中的病毒被读如内存,继续感染下面运行的程序,周而复始,时间越长,染毒文件越多。

  到了一定时间,病毒开始发作(根据病毒作者定义的条件,有的是时间,比如CIH,有的是感染规模等等)执行病毒作者定义的操作,比如无限复制,占用系统资源、删除文件、将自己向网络传播甚至格式化磁盘等等。

  但是,无论如何,病毒只不过是一段代码,他不可能破坏硬件(欢迎和我讨论),就算是CIH也不是破坏硬件,他只是改写了BIOS中的数据,实际上还是软破坏。什么叫破坏硬件?就是病毒发作时,你的硬盘啪的一下裂成两半,可能吗?

  所以,完全不必惧怕病毒,他不会让我门受到太大的经济损失,如果我们养成良好的工作习惯的话(比如自己的文档不要保存在C盘等,后面我会细说)

  3、引导型病毒的工作原理

  看了前面的病毒传染过程,大家很容易想到,只要我启动计算机后不运行染毒程序,直接删除不就可以了。实际上,现在的病毒没有那么弱智的,下面我门来看看其他的几种传染机制,首先看看引导型病毒

  刚才说了,病毒必须进入内存才可以继续感染,只有被运行他才可以进入内存,那么与等用户来运行,如果用户长期不用这个染度文件,岂不是等的花而也谢了。引导型病毒感染的不是文件,而是磁盘引导区,他把自己写入引导区,这样,只要磁盘被读写,病毒就首先被读取入内存。这就是为什么杀毒要用干净的启动盘启动,为的就是防止引导型病毒。下面我详细的谈一下磁盘引导区,看不懂的可以跳过去。

  4、引导型病毒是如何传播的

  在计算机启动时,必须读取硬盘主引导区获得分区信息,再读取C:盘引导区获取操作系统信息,这时候任何杀毒软件都无法控制,这样我先介绍一下计算机的启动顺序,大家只要记住一点就是:任何程序都要被读入内存才会起作用。

  计算机加电后,内存是空的,首先从BIOS中读取一些启动参数到内存中,这些命令控制计算机去做下一步工作就是自检。(BIOS就是固化在ROM中的基本输入输出系统的意思,ROM是只读存储器,因为计算机是一个机电设备,他不会自己干什么事情,必须由软件,也就是人事先写好的程序来控制他工作,而这些程序必须被读入内存才可以控制计算机,哈哈越扯越远了,不说了,在将就变成计算机基础讲座了,哈哈)

  接下来,计算机自检,发现硬盘,读取硬盘主引导程序到内存中,再读取C盘的引导程序到内存中,再读取操作系统文件到内存中,然后开始由操作系统文件控制计算机开始启动。启动完毕后,读入各种自动运行的文件,比如天网放火墙、QQ、病毒监测软件、等等,

  前面说过,谁先进入内存,谁先占据系统控制权,从上面的启动顺序可以发现,如果病毒在引导区,那么,他被读入内存的时候,杀毒软件还不知道在那里呢。

  举个离子:比如我拿了一张染有引导型病毒的软盘用,当我双击A盘图标后,计算机开始读软盘,首先读入软盘引导区,病毒随之进入内存,并立即把自己写入硬盘引导区(如果开了病毒检测,则时可以检测到并杀之)。如果没有装杀毒软件,检测布道,则下次开机时,计算机自检之后,读硬盘引导区时就会同时读入病毒,接下来,病毒获得系统控制权,改写操作系统文件,隐藏自己,然后计算机继续启动进入WIN200桌面,然后病毒检测才开始运行,病毒完全可能已经把自己伪装起来,让杀毒软件找不到。

  所以这中病毒一定要用启动盘启动后,再杀,就是为了跳过读硬盘引导区那一段。在后面我会纤细介绍。

  5、病毒如何自动把自身装入内存。

  刚才介绍了现在的病毒不会等待用户去运行染毒文件才进驻内存,他们都有自己的办法运行自己,进驻内存,但是有一个共同的特征就是,他必须把自己放在合适的位置,让系统在启动的某个阶段自动去调用他。因为计算机刚刚加电的时候,系统控制权是在BIOS手里的(因为他最早装入内存),而BIOS是保存在只读的ROM中的,所以这时,系统是无毒的,所以引导型病毒要做的就是在BIOS向操作系统交权之前也就是读取启动盘时截取之。

  那么程序型病毒怎么把自身装如内存呢?他没有截取控制权的这个能力,BIOS会顺利的把控制权交给操作系统,这时,用户看到的就是开始启动WIN200,由于操作系统在启动时会读取大量的动态联结库文件,病毒就可以把自己放在一个合适的位置上,然后告诉WIN2000启动时把自己读如内存,这一步很好实现,比如大家都知道,QQ启动时会被自动运行,实际上,程序型病毒自动运行自己的办法和QQ从本质上是相同的。就是让系统在启动的某个阶段自动去调用而已。

  下面先介绍蠕虫病毒,用他携带的木马程序的自动运行方式来介绍一下这个过程。

  三、关于蠕虫病毒

  我们学校网络中最多的就是蠕虫病毒,所以我要单独的说一下。

  蠕虫病毒是在INTERNET高速发展后出现的病毒,他具有了一些新特性。大部分的蠕虫病毒是程序型的,不会感染引导区,他们一般通过邮件传播(注意,不是唯一的传播方式,所有传统的传播方式都会传播之,并且许多蠕虫病毒会自己搜索网络上没有感染的机器并感染之,他实际上是一个写的很好的以太网传输状态的检测工具^_^),并且大多携带木马程序,具有根据微软服务软件的漏洞来入侵计算机的攻击能力,大部分蠕虫病毒并不破坏计算机里的信息,只是疯狂的去感染其他的计算机。感染了蠕虫病毒的计算机会不停的向外发送信息包,占用CPU可在80%以上,造成本机运行极其缓慢,网络拥塞,甚至可以导致网络瘫痪。

  一般蠕虫病毒会携带木马程序,安装在系统目录中,那么他是怎么自动运行的那,等一会我通过一个例子来介绍。

  四、什么是木马

  木马就是远程控制软件的一种,也称为后门软件,其作用就是利用操作系统的漏洞或者使用者的疏忽来进入系统并在远程控制下从系统内部攻击系统。因特洛伊木马病毒是一种比较早期的成功的此种软件,且有古代战争典故,想必大家都知道。所以,后来多称此种带有攻击性质的远程控制软件为木马而其他的一些不带攻击性质的远程控制软件其实原理都是一样的,比如,

  塞门铁客(英文不会写)的大名鼎鼎的PCANYWHERE就是一个很成功的远程控制软件

  木马可以被杀毒软件查杀,所以,这里也把他作为病毒来处理。

  五、杀毒软件为什么能杀毒

  1、 为什么杀毒软件必须不停的升级

  病毒就是一段代码,用一些语言写出来,比如汇编等。没种病毒都会有一些特征,叫做病毒特征码,实际上就是病毒代码中的一段读一无二的字符。举个容易理解的例子(实际上不是这样):比如有个病毒发作后会格式化C:盘,那么病毒代码中就会有这么一句命令:FORMAT C:/U (实际上病毒不会去用DOS命令的,那太高级了,他会直接调用13号中断写硬盘,所以这里只是一个例子),那么就可以用FORMAT C: /U这样一个字符串作为这个病毒的特征代码,杀毒时,把所有的文件打开,从头到尾的搜索,如果找到着段代码,就报告发现病毒,然后清除之。

  从我描述的这个过程大家就可以明白,为什么杀毒软件必须不停的升级,因为,只有一种病毒被发现后,他的特征代码才能被找到,才能被杀毒软件识别。

  2、 一个病毒从制作、传播到被杀死过程的例子:

  某个软件天才某天心情好,写了一个病毒,然后开始通过网络传播,然后大批的机器被感染,然后用户向杀毒软件公司抱怨有病毒杀不了,(其实大部分是杀毒软件公司的工作人员更早发现该病毒),然后,软件公司得到病毒样本,开始分析样本,找到病毒特征码,然后更新其病毒库,令其在杀毒时也查找这种病毒码,然后通知用户,请他们升级其购买的软件。然后用户升级,再杀毒,结果,该病毒被杀死,同时新的病毒被发现,周而复始。

  所以,杀毒软件永远跟在病毒的后面这是毫无疑问的。从我的叙述中大家可以发现,实际上,如果一种病毒被发现,几乎所有的公司都会得到他的样本并分析出他的特征码,然后另其自己的杀毒软件可以杀死该毒,那么,各种杀毒软件的优劣从何而来呢?

  3、 什么杀毒软件好?

  其实,大家都有一样的病毒库,但是,在我刚才描述的查毒过程中,大家不知道有没有注意到,实际上他是等于在磁盘的所有文件中寻找某段特征代码,如果你的硬盘有200G的数据,他就要把这200G的数据过滤一遍,逐个字符来对比,其速度我不说你们也能想到。更要命的是一般的病毒库都装了几万中病毒代码,哈哈,这么查上几万遍,查下来,估计你也从我们学校毕业了。所以实际上各个公司都有自己的杀毒引擎,实际上这才是核心技术,他使用的独特的算法高速检查,但就算这样,查一遍下来至少也要几个小时。所以,为了提高杀毒效率,可以令杀毒程序只检查一些可能被感染的文件,比如。EXE 。DLL等,象。BMP 。MPG就不会被检查,这样,时间就缩短了很多,然后,他们可以只检查每个。EXE文件的文件头,从这里可以发现病毒修改的蛛丝马迹。然后,他们开始把一些不常见的病毒排除出病毒库之外,只检查一些常见的病毒,就是所谓的快速杀毒。这是为什么不同软件查出不同病毒的原因之一,再下来,也是最关键的一点,就是杀毒软件根据病毒代码判断病毒是完全有可能发生误判,错判的,提高判断的准确性必须以牺牲查毒时间为代价。所以,不同公司的杀毒引擎提供不同的判断方法,导致了可能有的软件查不出来的毒别的软件可以查出。

  所以,所有的杀毒软件都包括两个主要的部分,一是杀毒引擎,另一个是病毒数据库。病毒数据库必须不停的更新。

  我认为,各种杀毒软件其实功能相差不多,主要是看哪个可以迅速更新,再好的杀毒软件不跟新等于没有。

0
相关文章