国内外杀毒软件使用感观
以下内容转自比特论坛
在介绍之前,先简单结合自己的理解和引用一些文章,来说点技术性的知识:
一、杀毒软件引擎与病毒库的关系
其实病毒库与杀毒引擎没有直接的关系,杀毒引擎的任务和功能非常简单,就是对指定的文件或者程序进行判断其是否合法。而病毒库,只不过是对杀毒引擎的一种补充,也就是说:“我们没有足够聪明的杀毒引擎来完成这个过程”,那个过程,就是杀毒引擎对文件或者程序判断。明白这一点,就应该知道,好的杀毒软件,重要在引擎的优秀,病毒库只不过是补充,而且病毒库越大,杀毒速度肯定会降低。因为病毒库杀毒的过程,是引擎把判断能力交给病毒库,用病毒库与指定的文件进行对比判断。
二、加壳、脱壳(此段完全引用)
1.什么是加壳:所谓加壳,是一种通过一系列数学运算,将可执行程序文件或动态链接库文件的编码进行改变(目前还有一些加壳软件可以压缩、加密驱动程序),以达到缩小文件体积或加密程序编码的目的。
当被加壳的程序运行时,外壳程序先被执行,然后由这个外壳程序负责将用户原有的程序在内存中解压缩,并把控制权交还给脱壳后的真正程序。一切操作自动完成,用户不知道也无需知道壳程序是如何运行的。一般情况下,加壳程序和未加壳程序的运行结果是一样的。
如何判断一个可执行文件是否被加了壳呢?有一个简单的方法(对中文软件效果较明显)。用记事本打开一个可执行文件,如果能看到软件的提示信息则一般是未加壳的,如果完全是乱码,则多半是被加壳的。我们还可以使用一款叫做Fileinfo的工具来查看文件具体加的是什么壳。目前,较常见到的壳有“UPX”、“ASPack”、“PePack”、“PECompact”、“UPack”、“NsPack”、“免疫007”、“木马彩衣”等等。
为什么黑客能够利用加壳技术来对抗反病毒软件呢?众所周知,目前杀毒软件主要依靠特征码技术查杀病毒。由于加壳软件会对源文件进行压缩、变形,使加密前后的特征码完全不同。
脱壳能力不强的杀毒软件,对付“加壳”后病毒就需要添加两条不同的特征记录。如果黑客换一种加壳工具加壳,则对于这些杀毒软件来说又是一种新的病毒,必须添加新的特征记录才能够查杀。如果杀毒软件的脱壳能力较强,则可以先将病毒文件脱壳,再进行查杀,这样只需要一条记录就可以对这些病毒通杀,不仅减小杀毒软件对系统资源的占用,同时大大提升了其查杀病毒的能力。
2. 脱壳
马甲”能穿也能脱。相应的,有加壳也一定会有解壳(也叫脱壳)。脱壳主要有两种方法:硬脱壳和动态脱壳。
第一种,是硬脱壳,这是指找出加壳软件的加壳算法,写出逆向算法,就像压缩和解压缩一样。由于,目前很多“壳”均带有加密、变形的特点,每次加壳生成的代码都不一样。硬脱壳对此无能为力,但由于其技术门槛较低,仍然被一些杀毒软件所使用。
第二种,是动态脱壳。由于加壳的程序运行时必须还原成原始形态,即加壳程序会在运行时自行脱掉“马甲”。目前,有一种脱壳方式是抓取(Dump)内存中的镜像,再重构成标准的执行文件。相比硬脱壳方法,这种脱壳方法对自行加密、变形的壳处理效果更好。
三、虚拟机脱壳引擎(VUE)技术(此段完全引用)
对于病毒,如果让其运行,则用户计算机就会被病毒感染。因此,一种新的思路被提出,即给病毒构造一个仿真的环境,诱骗病毒自己脱掉“马甲”。并且“虚拟环境”和用户的计算机隔离,病毒在虚拟机的操作不会对用户计算机有任何的影响。
“虚拟机脱壳”技术已经成为近年来全球安全业界公认的、解决这一问题的最有效利器。但由于编写虚拟机系统需要解决虚拟CPU、虚拟周边硬件设备、虚拟驱动程序等多个方面的困难,即使有雄厚的研发实力,也未必能在短时间内达到实用的程度。
四、启发式杀毒(启发式代码扫描技术,完全引用)
病毒和正常程序的区别可以体现在许多方面,比较常见的如:通常一个应用程序在最初的指令,是检查命令行输入有无参数项、清屏和保存原来屏幕显示等,而病毒程序则没有会这样做的,通常它最初的指令是直接写盘操作、解码指令,或搜索某路径下的可执行程序等相关操作指令序列。这些显著的不同之处,一个熟练的程序员在调试状态下只需一瞥便可一目了然。启发式代码扫描技术实际上就是把这种经验和知识移植到一个查病毒软件中的具体程序体现。
启发式指的“自我发现的能力”或“运用某种方式或方法去判定事物的知识和技能。”一个运用启发式扫描技术的病毒检测软件,实际上就是以特定方式实现的动态高度器或反编译器,通过对有关指令序列的反编译逐步理解和确定其蕴藏的真正动机。例如,如果一段程序以如下序列开始:MOV
AH
,5/INT,13h,即调用格式化盘操作的BIOS指令功能,那么这段程序就高度可疑值得引起警觉,尤其是假如这段指令之前不存在取得命令行关于执行的参数选项,又没有要求用户交互性输入继续进行的操作指令时,就可以有把握地认为这是一个病毒或恶意破坏的程序。
启发式杀毒代表着未来反病毒技术发展的必然趋势,具备某种人工智能特点的反毒技术,向我们展示了一种通用的、不需升级(较省需要升级或不依赖于升级)的病毒检测技术和产品的可能性。由于诸多传统技术无法企及的强大优势,必将得到普遍的应用和迅速的发展。资料显示,目前国际上最著名的排名在前五名的反病毒软件产品均声称应用了这项技术,从来自不同机构和出处的评测结果来看,纯粹的启发式代码分析技术的应用(不借助任何事先的对于被测目标病毒样本的研究和了解),已能达到80%以上的病毒检出率,
而其误报率极易控制在0.1%之下,这对于仅仅使用传统的基于对已知病毒的研究而抽取“特征字串”的特征扫描技术的查毒软件来说,是不可想象的,一次质的飞跃。在新病毒,新变种层出不穷,病毒数量不断激增的今天,这种新技术的产生和应用更具有特殊的重要意义。
五、杀毒引擎介绍(网上关于著名的五大杀毒引擎介绍很多,简单写几句,其他引用)
1.诺顿:诺顿的引擎采用了系统最底层的核心驱动方式,应该说是最安全、最高级、最稳定的方式,但是需要微软的系统核心代码,如果说系统工作的步骤是3-2-1,那么诺顿便是这种方式工作。
首创实时监控技术,还知道微软的代码。大家都说诺顿不好,其实诺顿的引擎很强大。从最底层保护计算机,所以运行起来不太快,只是杀毒理念不同,才让诺顿不适合个人用户。它主要以隔离为主,防止企业文件被删除。因为有些被病毒感染了的文件根本不能完全杀毒。直接删除又会破坏文件,所以诺顿最适合企业用户选择。
2.McAfee:咖啡的工作方式相对与诺顿,叫做硬件虚拟层,3-2-1-1-2,其他的绝大多数是3-2-1-1-2-3咖啡采用启发式杀毒+虚拟脱壳,启发和虚拟技术是非常高的。
主要能力放在防毒上,也用了虚拟脱壳技术,基本所有壳都可以干掉,现在知道为什么它这么火了吧,北斗的壳,我不知道能不能干掉,但它的虚拟技术没有DR.WEB的好,用加密XTA算法(基本与DES一样很难破解)写的病毒,它和卡巴就都废掉了。
3.熊猫:西班牙的东东,全球第一个自动升级的,人家的引擎也相当不错,速度绝对一流,查杀彻底,但病毒库有点欧洲化,所以在中国用着不太好用,占内存很大,金山好像现在就在仿熊猫,监控好像不是,杀毒和升级都是仿造熊猫的,金山的监控很LJ,你用用就知道了。
4.卡巴斯基:..........废话免了。
转截请注明:文章来自 pc捍卫者 http://www.pchwz.com
本站发布此文为传递更多信息之目的,不表明pc捍卫者赞同其观点