主动防御,是未来发展的趋势。主要有两个方法,一是静态防御,就是我们常说的启发式,杰出代表杀软有:NOD32(48次通过VB100),德国小红伞(单引擎扫描07年第一);第二方式是动态防御(行为分析技术),就是我们常说的“主动防御”,HIPS软件(主机入侵防御系统),就是通过人为地设置规则来达到动态防御,杰出杀软代表:微点,卡巴斯基的主动防御模块,迈克菲的规则。后者不适合新手。
当年,NOD32和红伞,能够单靠启发式来对付熊猫烧香,当许多国内杀软倒下的时候,仍然能坚持查杀到底。而动态防御方面,HIPS主要靠人为的判断,不例如表现(规则好的对付熊猫烧香是轻而易举的),微点,也是由头杀到尾,是少数坚挺的杀软之一,卡巴斯基,主防能拦截大部分,但它的主防通常被新手无视,所以卡巴用户也不少遭殃了;迈克菲,没用过,不好评论。
【启发式病毒扫描的介绍】
启发式杀毒
病毒和正常程序的区别可以体现在许多方面,比较常见的如:通常一个应用程序在最初的指令,是检查命令行输入有无参数项、清屏和保存原来屏幕显示等,而病毒程序则没有会这样做的,通常它最初的指令是直接写盘操作、解码指令,或搜索某路径下的可执行程序等相关操作指令序列。这些显著的不同之处,一个熟练的程序员在调试状态下只需一瞥便可一目了然。启发式代码扫描技术实际上就是把这种经验和知识移植到一个查病毒软件中的具体程序体现。
启发式指的“自我发现的能力”或“运用某种方式或方法去判定事物的知识和技能。”一个运用启发式扫描技术的病毒检测软件,实际上就是以特定方式实现的动态高度器或反编译器,通过对有关指令序列的反编译逐步理解和确定其蕴藏的真正动机。例如,如果一段程序以如下序列开始:MOV AH ,5/INT,13h,即调用格式化盘操作的BIOS指令功能,那么这段程序就高度可疑值得引起警觉,尤其是假如这段指令之前不存在取得命令行关于执行的参数选项,又没有要求用户交互性输入继续进行的操作指令时,就可以有把握地认为这是一个病毒或恶意破坏的程序。
启发式杀毒代表着未来反病毒技术发展的必然趋势,具备某种人工智能特点的反毒技术,向我们展示了一种通用的、不需升级(较省需要升级或不依赖于升级)的病毒检测技术和产品的可能性。由于诸多传统技术无法企及的强大优势,必将得到普遍的应用和迅速的发展。纯粹的启发式代码分析技术的应用(不借助任何事先的对于被测目标病毒样本的研究和了解),已能达到80%以上的病毒检出率, 而其误报率极易控制在0.1%之下,这对于仅仅使用传统的基于对已知病毒的研究而抽取“特征字串”的特征扫描技术的查毒软件来说,是不可想象的,一次质的飞跃。在新病毒,新变种层出不穷,病毒数量不断激增的今天,这种新技术的产生和应用更具有特殊的重要意义。
【行为分析技术的介绍,以下是引用百度百科主动防御的概念,实际上只是狭义的行为分析技术】
在“主动防御”技术的的实现上,主要是通过函数来进行控制。因为一个程序如果要实现自己的功能,就必须要通过接口调用操作系统提供的功能函数。以前在DOS里几乎所有的系统功能或第三方插件都是通过中断提供的,在Windows里一般是通过DLL里的API提供,也有少数通过INT 2E或SYSENTER提供。一个进程有怎么样的行为,通过看它调用了什么样的API就大概清楚了,比如它要读写文件就必然要调用CreateFile(),OpenFile(),NtOpenFile(),ZwOpenFile()等函数,要访问网络就必然要使用Socket函数。因此只要挂接系统API(尽量挂接RING0层的API,如果挂接RING3层的API将有可能被绕过),就可以知道一个进程将有什么动作,如果有危害系统的动作该怎么样处理等等。例如瑞星反病毒系统,用户可以在它的安装目录里找到几个驱动文件,其实这些驱动就是挂接了ntoskrnl.exe,ndis.sys等系统关键模块里的API,从而对进程的普通行为,网络行为,注册表行为进行监视的。
在此基础上,用户可以自己设想一下一个“主动防御”型安全系统的一般操作流程:通过挂接系统建立进程的API,系统就在一个进程建立前对进程的代码进行扫描,如果发现SGDT,SIDT,自定位指令(一般正常软件不会有这些指令),就进行提示,如果用户放行,就让进程继续运行;接下来监视进程调用API的情况,如果发现以读写方式打开一个EXE文件,可能进程的线程想感染PE文件,就发出警告;如果收发数据违反了规则,发出提示;如果进程调用了CreateRemoteThread(),则发出警告(因为CreateRemoteThread()是一个非常危险的API,正常进程很少用到,倒是被病毒、木马用得最多)。