lhcwjy
新手上路

积分 3
发帖 3
注册 2008-8-14
|
#1 主动防御技术浅析
目前,主动防御技术是安全领域最热门的话题之一,各大安全软件厂商都打出了“主动防御”或类似标题的旗帜,而微点软件更是以主动防御为名。那么,主动防御技术究竟是什么?它是否有把恶意软件完全拒之门外的神奇功能呢?
主动防御这一概念的出现,是和恶意软件的发展特点密不可分的。以下两点,是目前恶意软件发展趋势中的二点:
一、 数量极剧增加。很多资料都显示,现在每天出现的新病毒多达上千个,这就对传统的基于特征码扫描的技术提出了挑占。在种杀毒的过程,大概要经过以下几个环节:病毒在用户电脑上发作、安全厂商经过各种渠道收集病毒样本、提取特征码、用户更新病毒数据库。很㫫然,这个过程是比较慢的,在病毒传播速度如此快的今天,很可能在数据库更新之前,病毒就已经暴发。
二、 Rootkits技术在恶意软件中的大量使用。Rootkits是指在计算机系统中隐藏自身并获取尽可能高的操作权限的技术。很显然,这一技术正是恶意软件所需要的,越来越多的恶意软件也正在使用这一技术。这样,就出现了杀毒软件发现不了恶意软件、即使发现了也不能清除甚至被恶意软件杀掉的情况。
因此,目前安全软件要解决的主要问题是如何对付未知的恶意软件,这种技术叫做行为分析,或者叫作启发式杀毒、主动防御等等。那么什么是行为分析呢,绝大多数恶意软件在运行之前都是以文件形式存在的,那么,我们可以一个文件运行之前,对其进行反汇编,对其包括的指令进行综合分析,就很容易判断这个文件是否有害,显然,这对人材要求是极高的,必须熟悉操作系统和汇编语言,过程也是很慢的,如果把综合分析指令的工作交给电脑来做,目前的技术水平是不可能完成的。幸好,无论是什么软件,一般情况下都要调用操作系统所提供的功能,而恶意软件为了完成自己的特殊功能,经常要调用和一般软件所不同的系统功能,比如,在用户模式下,一个恶意软件要访问其它程序,一般需要把动态链接库注入到,这通常用设置全局钩子或远程线程注入的系统功能来完成,如果恶意软件要想取得特殊权限,一般要调用加载驱动程序的功能以驱动程序把自己加载到内核中去,如果安全软件发现有程序在调用这些功能,就可以判定这个程序可能是恶意软件。
主动防御是什么?主动防御的主要功能就是对操作系统的一组正常程序不常用的功能进行监控,如果有程序调用了这些功能中的一个或几个,则说明这个程序可能是恶意程序。当然,还会结合其它的一些方法。主动防御中只是行为分析的低级阶段。
主动防御技术主要是通过监控一般程序不常用的系统功能来动作的,但是不常用并不是合法的程序就不用这些功能的,工具软件,特别是安全软件本身就大量使用这种功能,由于主动防御技术并不能对程序的指令进行综合分析,所以就经常出现误报和误杀的情况。如果恶意软件只使用正常的系统功能,主动防御就无能为力了。Windows操作系统是不公开的,其实很多功能有待于发现,如果恶意软件使用了一个新发现的功能,主动防御也是无能为力的。安全软件为了实现高级功能,必然要在内核中运行,恶意软件为了对抗安全软件,也要运用内核技术,而大多数内核技术都是非官方正式公布,使用起来有一定的危险性。安全软件为了保证隐定性,有些技术是不敢用的。而恶意软件可能不会考虑这些。
我在写这个贴子时,正在写一个软件,这个软件与“火星文输入法”的功能类似,火星文输入法是把其它输入法的输出变成了火星文,而我的软件是把输出变成拼音。这个功能的实现有两个关键:1。设置全局钩子,把动态链接库注入到其它的程序中。2。动态链接库在初始化的过程中对输入法的相关函数用改写代码的方法进行拦载。很显然,这是两个“危险”的操作,果然,运行后,被微点提示为有害程序。我将其中有关拦截函数的代码去掉,这时,我的程序其实除了把进行dll注入外什么也不做,动行后,依然被判定为有害程序。可见,虽然现在的主动防御技术都宣称具有智能技术,其实主要还是简单地根据一两个函数的拦截简单地进行判断的。所以只是处于行为分析技术的初级阶段。
|
※ ※ ※ 本文纯属【lhcwjy】个人意见,与【 微点交流论坛 】立场无关※ ※ ※
|
 |
|