|
[转自电脑安防论坛]杀毒软件分析
如果生命是一种执着的力量,那么总有一种力量,比生命更加执着,就是死亡!!!当你去深刻思考“死亡”这两个字的含义,用心去感受生命的来临与离去,更或许有的人,需要在他弥留之际,才能真正理解生命的价值。 在计算机的世界里,病毒就是一种执着的力量,那么杀毒软件,就是死亡的力量;也或者病毒才是死亡的力量,不管怎样,杀毒软件是一种不可或缺的东西。我用过的一些杀毒软件,和我体验试用,或者给求助的朋友安装或者卸载的,都有我的一点感受,写出来,给大家一点思路,选择一个更适合自己用的杀毒软件。 在介绍之前,先简单结合自己的理解和引用一些文章,来说点技术性的知识:
一、杀毒软件引擎与病毒库的关系 其实病毒库与杀毒引擎没有直接的关系,杀毒引擎的任务和功能非常简单,就是对指定的文件或者程序进行判断其是否合法。而病毒库,只不过是对杀毒引擎的一种补充,也就是说:“我们没有足够聪明的杀毒引擎来完成这个过程”,那个过程,就是杀毒引擎对文件或者程序判断。明白这一点,就应该知道,好的杀毒软件,重要在引擎的优秀,病毒库只不过是补充,而且病毒库越大,杀毒速度肯定会降低。因为病毒库杀毒的过程,是引擎把判断能力交给病毒库,用病毒库与指定的文件进行对比判断。
二、加壳、脱壳
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.卡巴斯基:废话免了。
5.Dr.Web:俄罗斯国家科学院合作开发的,军方和克里姆林宫专用。启发式加虚拟脱壳,北斗的壳,外面再加壳,加跳针也可以干掉,占用内存很少。可以说是最强的引擎。对付变种病毒和木马最好了。可以干掉加密XTA算法。清除极其复杂的病毒。
下边开始我个人对正在使用和有点感受的各种杀软介绍,这里有很多我对杀软使用的理念 。
一、McAfee 我最喜欢的杀软,防护能力第一并不算过分。在我使用的感受中,我对他进行了优化,只保留了主监控,但是也足够强大。对于病毒,它允许在硬盘上存在,但是,当你鼠标指向病毒文件,单击一下,咖啡的监控马上会让你想要执行双击行为变得极为困难,不停的提醒你杀毒。而网页上的脚本,木马,咖啡都会让你有放心的警觉。而压缩的病毒样本,当你解压的时候,可能就无法实现了,因为解压的病毒文件已经被咖啡干掉了。我还曾经试过,用一个绿色版的某杀软扫描,扫描到我强硬放置的病毒文件时,咖啡报毒并删除了,而用来扫描的杀软却什么也没有用发现。对于咖啡的防护能力,我想不用说更多了!
杀毒能力:很多人认为咖啡的杀毒能力弱,其实我并不觉得,咖啡的启发式杀毒做的非常优秀,根据文件或者程序的行为特性来判断是否是病毒,再加它的很成熟的虚拟脱壳技术,脱壳杀马能力也是非常强大。某些专业的杀毒的测试中,杀壳能力某些测试甚至超过卡巴斯基。而我个人认为:咖啡杀毒能力弱也只是相对于蜘蛛,或者稍弱于卡巴!
系统资源占用:很多人说咖啡的进程数太多,内存占用太大。我想,如果所有默认的都开启,确实是那样。但是,又有几个人会把杀毒软的所有默认功能都开启呢?我写过McAfee2006和2007个人版的优化设置方法。设置之后,咖啡的系统资源占用是很少的,至少我的赛扬1.0+256内存老爷车,安装了咖啡个人版的杀毒+防火墙套装并优化后,虽然保留了5个进程(其中3个是防火墙,1个是自动升级,1个咖啡安全中心,剩下的一个才是主监控),但XP系统跑起来很流畅。2006个人版杀毒+防火墙占用硬盘空间不到35MB。2007我还没有正式用,但感觉有点不如2006版厚道了!
防火墙:智能性非常好,不需要那么烦琐的设置,非常简单设置规则就够了,这是我的感觉,我用的墙不多。至少一点:咖啡的规则设置为严格(更严格一级便是锁定断开网络),连接PPLive网络电视,一点不卡。其他的我试用过的防火墙,正常的网络连接很多都麻烦。
企业版对比:咖啡的企业版拥有更多的拥趸,但是我认为,企业版的那些设置规则,是需要网管设置好,然后给菜鸟用的。我不喜欢,因为杀软和防火墙,我认为智能性是第一的,所以我只推荐个人版,而且个人版的杀毒和监控能力,跟企业版同样的强大。缺点:1.没有自带的卸载程序,即使用非常优秀的卸载工具,也很难卸载干净,网上所谓的专用卸载工具也更不可能,卸载后,注册表一定要手动清理才行。有些流氓软件,他不报毒,而且和平相处,咖啡的扫描速度虽然还可以,但是扫描器的启动速度很慢,需要忍受!
二、Dr.Web 蜘蛛是世界第一的杀毒引擎,我觉得这毫无疑问!他的启发式扫描技术和虚拟脱壳技术都是第一的,似乎还没有什么壳可以绕过蜘蛛。也曾是1994年第一个可以根除OneHalf病毒的杀毒软件。另外,2006年末和07年初最猖狂的熊猫烧香病毒,灭掉了卡巴、咖啡、诺顿、冰刃、江民、瑞星等等几乎所有的著名杀毒软件和辅助工具,而Dr.Web及采用Dr.Web引擎的驱逐舰杀毒软件,由于其引擎的优越性,是很少几个没有被病毒关闭的著名杀软。
在我的电脑中,一直有蜘蛛的绿色版,而且便于朋友使用,我特意弄了一个汉化界面和英文原版界面,并总结了一点升级和汉化界面使用说明。在杀毒处理设置中,我全部采用了移动指定文件夹的方式,目的就是用它来抓取病毒样本。在一次帮人弄毒入膏肓电脑时,我先用了别的杀软在安全模式中扫描,虽然也杀出上百个病毒,但是却总是被病毒中途关闭或者扫描到某病毒程序时,无法杀毒而造成引擎停止。或许是病毒太强了,有写入系统服务的DDos、backdoor,mplay.com,还包括威金,流氓软件、常见木马等等。没办法请出Dr.Web,安全模式下不到20分钟的扫描后,抓取病毒样本71个,另外直接灭掉病毒110多个,再修复了一下注册表,系统恢复了!蜘蛛杀毒能力到底多么强大,我看也不必多说了! 还有,我想大家肯定知道360safe和qqkav这个2个软件,它们在蜘蛛的扫猫结果中,是被列为病毒的范畴!360safe我个人肯定不会去用,也不了解,但我想周鸿祎那个家伙在其中做点龌龊行为,一点都不奇怪!杀掉的原因,我想跟qqkav的原因差不多。那么qqkav呢?它是有此我用蜘蛛扫D盘的时候就把它干掉了。技术角度讲,qqkav肯定要加壳来防止被病毒破坏,虽然qqkav处理某些qq病毒还算可以,但是它本身却也恶意捆绑浏览器主页,说它是病毒便是理所索应当的了。这点来看,qqkav的丑恶行为没能骗过蜘蛛虚拟脱壳技术,但是其他杀软都无法达到蜘蛛的水平,至少同样是启发式扫描+虚拟脱壳技术的McAfee,却没能判断qqkav是病毒。而卡巴跟360safe的关系,就更不用说报毒了。 看来做龌龊行为还想要挂完美的牌坊,除非把你的加壳能力做到可以绕过蜘蛛!
资源占用:蜘蛛的监控能力如何我不知道,有人说有点烂,我不知道,我不用,但肯定的是:资源占用很少,文件体积也很小,我的绿色版还不到10MB。 驱逐舰杀毒软件:驱逐舰完全是买的蜘蛛的杀毒引擎,虽然Dr.Web不可能把核心技术卖出去,但是驱逐舰肯定足够强大了,脱壳能力在某些专业网站评测肯过卡巴斯基,用来当作蜘蛛的汉化版本使用也可以推荐! 推荐:适合玩家,遇到很难干掉的病毒时,才需要用蜘蛛 |
|