浅谈反病毒软件运行时占用计算机系统资源的问题

时间:2022-08-08 12:38:30

浅谈反病毒软件运行时占用计算机系统资源的问题

摘要:随着计算机及计算机网络的发展,伴随而来的计算机病毒的传播问题越来越引起人们的关注,与止同时计算机杀毒软件也应运而生,现在市场上销售的杀毒软件也有几十种之多,但是计算机各销售商家之间的竞争主要围绕计算机性能的竞争,杀毒软件在运行时占用系统资源的多少势必影响到计算机的性能,本文对此问题做初步探索。

关键词:病毒软件;占用;系统资源

中图分类号:TP307 文献标识码:A 文章编号:1007-9599 (2012) 10-0000-02

一、病毒检测机制

反病毒软件也称杀毒软件,一般由扫描器、病毒库与虚拟机组成,并由主程序将他们结为一体。扫描器是杀毒软件的核心,用于发现病毒,一个杀毒软件的杀毒效果好坏就直接取决于它的扫描器编译技术与算法是否先进,而且杀毒软件不同的功能往往对应着不同的扫描器,也就是说,大多数杀毒软件都是由多个扫描器组成的。而病毒库存储的特征码形式则取决于扫描器采用哪种扫描技术。它里面存储着很多病毒所具有的独一无二的特征字符,我们称之为“特征码”。特征码总的说来只有两个,文件特征码与内存特征码。文件特征码存在于一些未执行的文件里,例如EXE文件、RMVB文件、jpg文件甚至是txt文件中都有可能存在文件特征码,也都有可能被查杀。而内存特征码仅仅存在于内存中已运行的应用程序。而虚拟机则是最近引进的概念,它可以使病毒在一个由杀毒软件构建的虚拟环境中执行,与现实的CPU、硬盘等完全隔离,从而可以更加深入的检测文件的安全性。

早期的反病毒技术是采取单纯的病毒特征判断,将病毒从带毒文件中清除掉。这种方式可以准确地清除病毒,可靠性很高。后来病毒技术发展了,特别是加密和变形技术的运用,使得这种简单的静态扫描方式失去了作用。随之而来的反病毒技术也发展了一步。

随后的技术是采用静态广谱特征扫描方法检测病毒,这种方式可以更多地检测出变形病毒,但另一方面误报率也提高,尤其是用这种不严格的特征判定方式去清除病毒带来的风险性很大,容易造成文件和数据的破坏。

之后反病毒技术的主要特点是将静态扫描技术和动态仿真跟踪技术结合起来,将查找病毒和清除病毒合二为一,形成一个整体解决方案,能够全面实现防、查、消等反病毒所必备的各种手段,以驻留内存方式防止病毒的入侵,凡是检测到的病毒都能清除,不会破坏文件和数据。随着病毒数量的增加和新型病毒技术的发展,静态扫描技术将会使查毒软件速度降低,驻留内存防毒模块容易产生误报。

近来反病毒技术则是针对计算机病毒的发展而基于病毒家族体系的命名规则、基于多位CRC校验和扫描机理,启发式智能代码分析模块、动态数据还原模块(能查出隐蔽性极强的压缩加密文件中的病毒)、内存解毒模块、自身免疫模块等先进的解毒技术,较好的解决了以前防毒技术顾此失彼、此消彼长的状态。

二、反病毒软件与系统资源的关系

反病毒软件在运行时,除了本身虚拟机的运行需要耗费系统资源外,还担负着查毒杀毒的工作,存储设备的监控、外接端口设备的监控、缓存区的监控、病毒库更新检查、病毒的查杀隔离工作,这些工作无一不耗用系统的宝贵资源,很多反病毒软件还带有防火墙功能,这将耗费很大一笔系统开销。

占用大量内存,耗尽电脑CPU。现在电脑的硬件比以前是越来越好,网速也越来越快,但是系统为什么越来越慢?这与杀毒软件的特征库越来越大、升级越来越频繁有关。以前一年才出几千个病毒,现在一年要冒出几千万个新木马,增长1万倍,特征库就像恶性肿瘤一样膨胀。传统杀毒引擎在扫描和监控时,需要把特征库写入电脑内存,特征库越大,系统就被拖得越慢,特征库自身升级下载的速度也越慢。杀毒软件带着特征库,就像乌龟背着壳,要跑得快几乎很难做到,但是如果没有特征库,杀毒软件又相当于手无寸铁。

现在,一款杀毒软件的大小动辄就是50兆起步,有的甚至到了七八十兆、100兆,电脑硬盘要给它腾出很大的空间来存放病毒库。所以,杀毒软件成了电脑里占用资源较大、对CPU运算能力提出了考验。

三、目前流行的杀毒软件占用系统资源情况

反病毒软件的资源占用情况一直颇受用户关注,如果占用过高,会影响到实际的运行速度和整体效果,所以,很多用户也将资源占用的高低算作了重要的考核手法,而目前8款主流杀毒软件中,整体的资源占用情况如何呢,我们就以在检测过程中的实际数值情况,简单进行一番横向对比。

经过测试,分别截取包括瑞星全功能安全软件2010、卡巴斯基2010、ESET NOD32、熊猫全功能2010、诺顿2009、江民杀毒2009、金山毒霸2009、360杀毒1.0等版本软件在启动和扫描过程中的资源占用情况,对其进行深度对比。看哪款软件的资源占用更低,更加适合用户使用。

(一)在启动过程中的资源占用情况

下面则是各款杀毒软件产品在启动过程中的资源占用情况:

从上图的数据中可以看得出,熊猫全功能2010、360杀毒1.0等软件对CPU和内存的占用率较低。

(二)在动态模式下的资源占用情况:

为详细测试杀毒软件在动态模式下的资源占用情况,我们特别对其进行了多次取值,并每次截取5组数值,下面则是详细的评测数据和图表信息。

从实际数据我们可以看出,熊猫全功能2010软件、ESET NOD32、瑞星全功能安全软件2010等软件在动态模式下的资源占用相对较低,特别是来自国外的熊猫全功能安全软件,更是相对平稳,整体数据非常理想。

四、减少占用系统资源的几点设想和建议

综合前述,减少软件占用系统资源,主要从两个方面着手,一个是用户,另一个就是软件生产厂商。(一)在用户方面,主要是正确使用软件,养成良好的安全意识习惯。首先很多反病毒软件在扫描到病毒或可疑文件时进行清除或隔离处理,随着时间的推移被隔离的文件就会越来越多,这无疑也占用了不少的磁盘空间,以卡巴斯基为例,本人在半年的时间内观察到被隔离的文件多达200百兆,并定期对被隔离的文件清除以节省磁盘空间;其次在使用某一反病毒软件时,把更新补丁或病毒库文件存放分区与系统盘分开。在保存清除病毒效果的前提下,选用占用系统资源少的杀毒软件。(二)在软件生产厂商方面。1.缩小安装文件的体积。一般来说,安装文件体积越大,机器启动后,实时监控就必须调入更多的文件到系统内存中,因此占用的资源也就越多;一些动辄安装包在30-40MB以上的杀软就属于此类。这类杀软常常缺乏执行代码的优化,使用多个进程达到实时监控、自我保护、计划任务等的目的,加大了系统内存的负担,使得系统可分配资源减少,机器运行效率显著下降。NOD32商业版的安装文件仅12MB左右大小,安装后的文件夹占用硬盘30MB,属于杀软中非常轻巧的类型,两个进程占用内存8-25MB,有执行方面的优势。2.改进程序设计思想。NOD32只有两个进程:核心进程和图形界面进程。核心进程nod32krn.exe负责文件监控、文档监控、网络数据流监控和电子邮件的监控,以及计划任务和病毒库升级所有工作。核心进程是IceSword无法成功终止的,终止后会立即自动生成。这种单进程多任务的监控机理,使NOD32降低了资源占用,因此不会有卡机的感觉。3.接下来谈谈杀毒引擎。一些杀软如KAV运行时,两个进程加起来常在10-15MB左右,貌似资源占用很少。其实在这个时候,软件使用了SetProcessWorkingSetSize这样的API函数,将内存占用值强行推至虚拟内存,造成了内存占用数值降低的假象。虚拟内存的占用虽节省了资源,但带来的后果就是频繁的虚拟内存交换引起频繁的读盘操作,系统速度自然就会受到很大影响。此外,KAV的引擎缺乏执行效率的优化,导致后台对加载和读取的文件进行扫描时,尤其是进入压缩包扫描时,耗时过长、CPU占用率过高,导致机器很卡。NOD32自主开发的引擎,具有业界领先的高启发式技术,即使在动态虚拟机环境下,也不会有卡机的感觉。4.最后再说一下病毒库数量。杀软在实时监控的过程中,会完整调用自身病毒库,以方便比对和认定恶意程序。因此病毒库数量越多、需要调用的特征码就越多,资源占用也就会越大。NOD32有业界称道的基因特征码技术,将同类病毒变种的共同特征提取出来,升级一条病毒特征往往可以查杀数种甚至数十种同类病毒,因此减少病毒库特征码数量的同时,却保持同样的查杀效果

目前在杀毒领域中解决传统杀毒软件占用系统资源较多的弊端的办法,通过互联网化的云安全技术来实现无需升级的病毒查杀。云查杀引擎能否借助互联网技术手段,提高扫描速度,把传统的需要耗时耗资源的模式改成了不再需要频繁升级木马库。实现只要用户上网,就能实时与“云安全”数据中心无缝对接,利用服务器端的最新木马库对用户电脑进行扫描和查杀。若真能实现,那么哪怕是刚出现的木马,几分钟之内就能捕获并具备查杀能力,而且占用系统资源极小。

参考文献:

[1]卓新建,郑康锋,辛阳.计算机病毒原理与防治.(第2版).北京邮电大学出版社,2007

[2]游向峰.打造安全的网络环境之“云安全”.电脑编程技巧与维护,2009,8

上一篇:Photoshop制图过程中的抠图技巧的研究 下一篇:基于数据挖掘技术的保护设备故障信息管理与分...