前言:想要写出一篇引人入胜的文章?我们特意为您整理了计算机病毒防范研究范文,希望能给你带来灵感和参考,敬请阅读。
一、重写病毒是不能从系统中彻底删掉的
只能删掉被感染的文件,然后再从备份介质恢复。一般来说,重写病毒不是非常成功的威胁,因为病毒造成的威胁明显太容易被发现了。然而,这种病毒效果如果基于网络的传播技术结合起来,可能产生很大的威胁,比如:VBS/LoveLetter.A@mm通过群发邮件把病毒发送到其他系统中,当该病毒执行时,它会用自己的拷贝重写本地所有下面扩展名的文件:.vbs,.vbe,.js,.css,.wsh,.sct,.gta,.jpg,.jpeg,.wav,.txt,.gif,.doc,.htm,.html,.xls,.ini,.bat,.com,.avi,.mpg,.mpeg,.cpp,.c,.h,.swd,.psd,.wri,.mp3,.and,.mp2等。重写技术的另一种罕见形式是不改变文件顶部的代码,而是在宿主文件中随机找一个位置把自己写进去。显然,这种病毒不太可能获得控制权,它通常会导致宿主在执行到病毒代码之前就崩溃了。这种病毒的例子是俄罗斯的Omud。现在的反病毒扫描程序会为了提高性能而减少磁盘I/O,因此如果可能的话,只查找已知的位置。扫描器在查找随机重写病毒时有一定的问题,因为扫描器必须搜索宿主程序的全部内容,这种操作的I/O开销太大了。有些比较简单的而病毒并不主动驻留在内存中,最先感染IBMPC的文件感染类型病毒Virdem和Vienna就是这样,通常,直接感染型病毒的传播速度比较慢,传播范围也比较窄。直接感染型病毒随着宿主程序一起装入内存中。在取得系统控制权后,他们以搜索新文件的方式搜索可能感染的对象。很多常见的计算机病毒都使用直接感染方式的传播引擎,这种病毒在各个平台都很容易构造,无论是二进制还是脚本形式。历史上曾经有过这样的例子。Borland公司在DOS环境下开发的Quattrospreadsheet系统的第一个版本是全部使用Hungary汇编语言开发的。在系统的开发过程中发生了意见非常有趣的事情。有时候,系统命名在执行一个循环,可是系统的实际流程和控制流程的期望值刚好相反。代码本身并没有什么错误,因此通过阅读代码的方式根本不可能解释发生这种现象的原因。最后发现产生这个错误的原因是因为一个时钟程序偶尔会改变系统的执行流程,原因是时钟程序改变了方向标记,而有时又忘记恢复这个标记,结果,时钟程序五一地破坏了spreadsheets系统的内容,当然它也会对其他程序造成破坏。这个具有破坏性的时钟程序就是一个TSR程序。病毒采用各种方式入侵电脑程序和服务器程序,大部分电脑书籍对病毒检测的讨论都停留在相当浅的层次上,就连一些比较新的书都把防毒扫描器描述为“在文件和内存中检索病毒特征字节序列的普通程序”。这种说法所描述的当然是最流行的计算机病毒检测方法之一———这种方法也很有效,但当今最先进的防毒软件使用了更多出色的方法检测仅用第一代扫描器无法对付的复杂病毒。例如:字符串扫描、通配符扫描、不匹配字节数、通用检测法、书签、首位扫描、入口点固定点扫描等等。随着时代的进步第二代扫描器也随之来临,第二代扫描器采用近似精确识别法(nearlyexactidentification)和精确识别法(exactidentifica-tion),有助于提高对计算机病毒和恶意程序的检测精度。第二代扫描器同样包括很多种方式,例如:智能扫描、骨架扫描法、近似精确识别法和精确识别法等。扫描技术的多样性清楚地表明:给予对一只病毒的识别能力来检测病毒是多么困难。因此,看来采取更为通用的方法———如给予文件和可执行对象的完整性来检测和预防病毒对其内容的篡改———可以更好的解决病毒检测这个问题。手工启动型完整性扫描工具需要使用一个校验和数据库,该数据库要么在受保护的系统中生成的,要么是一个远程在线数据库。完整性检查工具每次检查系统中是否有新生成对象,或者是否有任何对象的校验值发生变化,都用到该数据库。通过检验出新的或发生了变化的对象,显然最容易发现病毒感染及系统受到的其他侵害。然而,这种方法也有很多缺点,例如:
(1)虚警;
(2)要有干净的初始化状态,而实际上不一定会有这么一个状态;
(3)速度。完整性检查通常很慢;
(4)特殊对象。工作需要懂得一些特殊对象;
(5)必须有对象发生改变等等。还有一些方案试图基于应用程序的行为来阻断病毒传染。最早的反病毒软件之一FluShot就是属于这一类病毒防护方案。如果一个应用程序以写入模式打开了可执行文件,则阻断工具就会显示一条警告,要求用户授权写操作。不幸的是这种低级别时间可能会引起太多的警告,因而阻断工具受用户欢迎的程度常常还不如完整性检测工具。而且,不同类型的计算机病毒的行为可能差异很大,因而可能导致感染的行为模式数量有无穷多种。
二、结语
由于WindowsNT的内存管理器会回收未使用分界面,而内存中页面只有当被访问的时候才会被读取,因此内存扫描的速度大体上取决于内存的大小,一台计算机的内存越大则内存扫描器的速度就会越快———如果计算机拥有的物理内存非常有限,则页面错误数量将会大很多。每当SCANPROC.EXE对所有运行中的进程扫描时,这些进程的内存会明显提高。对于病毒的防范也更加规范。
作者:林清风 单位:齐齐哈尔工程学院