自从有了特洛伊人的战争,一种有害程序就有了自己的名字——木马。在反病毒领域,木马又被称为木马病毒。虽然木马产生的时间并不比病毒晚,但是在人们印象中,木马却是最近几年的事情,或者说,最近几年才成了谈马色变的时代,这种变化只能说明网络对人类的影响越来越深远,因为木马是依附于网络的,没有网络,就没有了木马的“用武之地”。然而,在木马日益泛滥的今天,随处可见的是木马技术的介绍,对于反木马技术却言之甚少,这只能加快木马与反木马的差距,使魔道之争更加凶险,下面我们就来了解一下反木马技术。
自从有了特洛伊人的战争,一种有害程序就有了自己的名字——木马。在反病毒领域,木马又被称为木马病毒。虽然木马产生的时间并不比病毒晚,但是在人们印象中,木马却是最近几年的事情,或者说,最近几年才成了谈马色变的时代,这种变化只能说明网络对人类的影响越来越深远,因为木马是依附于网络的,没有网络,就没有了木马的“用武之地”。然而,在木马日益泛滥的今天,随处可见的是木马技术的介绍,对于反木马技术却言之甚少,这只能加快木马与反木马的差距,使魔道之争更加凶险,下面我们就来了解一下反木马技术。
反木马与反病毒
木马之所以被称之为病毒,那是因为木马从数量上已经占到了所有有害程序的70%以上,这众多的家族,使反病毒公司无法忽视它的存在。由于反病毒在信息安全领域占据着主导地位,因此把木马划到了病毒名下。不过,木马虽然也是以文件形式存在的一种有害程序,与病毒还是有很大区别的。
首先木马与病毒生存的环境不同。病毒是靠感染系统可执行文件来生存的,通过用户点击一些新的可执行程序而进行感染,在有大量程序交换的情形下这样的病毒才容易传播开来。而木马是依靠网络进行传播的,网络越发达,传播的速度就越快。其次木马与病毒的识别模式不同。病毒本身有明显的感染特性,因此很容易被识别,而木马本身不感染文件,只是通过网络对外部进行连接,这同正常的网络程序没有什么不同,因此识别起来很困难。
反病毒软件正是看到了木马与病毒的相同之处,便将木马纳入到反病毒的体系之下,直接用识别病毒的方式来识别木马,这在木马产生的初期还有效。但随着木马的发展,木马与病毒的差异也越来越明显,因此各大反病毒公司都在自己的杀毒软件之上又构建出了一个新的反木马体系,虽然都是打包在一起销售,但已经是两套并行的体系,这两套体系互相为补充,暂时解决了木马的问题。
特征码技术不再有效
了解反病毒技术的人都会很清楚,目前最成熟的反病毒技术是特征码技术,即采用捕获-分析-提取特征-入库-升级这样的一个流程来处理病毒。提取的这个特征可以唯一代表该病毒,将所有的病毒特征集中在一起,就能够对系统文件进行病毒的识别,这就是特征码技术的精华所在。
该形式本身是一种比较落后的方式,虽然他能够保证对病毒进行精确识别,但这只在捕获该病毒样本之后,对于新产生的还未被捕获的病毒,该技术是无效的。而事实上,只有很少的一部分老病毒能够继续伤害用户,新病毒才是危害电脑健康的生力军。但是,新病毒的捕获本身是一件技术性很高的工作,只有少数高精尖的电脑用户才能很好根据电脑异常来判断是否中了新病毒,并将病毒文件提取出来。
即便是有经验的用户,对于木马样本的及时提取也是做不到的,因为木马本身是一种目的性极强的程序,它进入电脑的目的是盗取用户信息,因此会把 “不让别人发现”作为编写的核心思想,会想尽办法隐藏自己,不象病毒的作者大多以炫耀技术为主,更希望用户能发现它们。只不过木马作者往往由于经验不足使木马程序占用大量的系统资源,从而被敏感的用户发现。当然,随着网络技术的普及,网络编程水平的提高,这样的情况会越来越少,也就是说,木马会越来越难以被普通用户所发现。
虚拟机技术的死角
在网络时代,一切都以加速度的方式发展,病毒也不例外,为了对付病毒就要提出新型的反病毒解决方案,其中瑞星提出的虚拟机技术比较典型,据说已经达到了97%的准确率。虚拟机技术是指自己构建一个软件形态的CPU,即对目前所有的CPU指令进识别,并建立起一个虚拟系统,在扫描的过程中,可以将程序进行虚拟执行,控制程序的指令执行次数,这样就可以对整个文件进行更高层次的分析,根据病毒的一些共性比如是否感染文件来判断是否是一种新的病毒。无疑这是一种自动化的、智能化的方式,对促进反病毒技术进步是有效的,对病毒的识别也的确有很高的准确率。
但是木马则不同。所有的病毒由于只是寄生在正常程序中的一段纯的指令代码,因此非常容易虚拟,而木马是一种比病毒工作级别更高的程序,它不但有自主的文件体,还有自己要调用的系统函数,这些系统函数又会调用其它更多的函数,这些函数的复杂性导致了虚拟机无法对这些函数进行虚拟,因此对于木马程序来说,虚拟机基本上无法正常工作,更不用说识别了。当然,我们可以通过完善虚拟机的虚拟能力来解决这一问题,但是它需要花费大量的人力物力,和更为宝贵的时间,因此虚拟机技术要想对木马发挥效用,还有很长的一段路要走。
寻找反木马新技术
要想解决木马识别问题,目光不应该放在如何处理木马的文件结构上,而应该考虑程序本身的行为。一些专业的反木马软件作者,由于目光只集中于木马,因此有更多的时间来做这方面的探索。早些时候,未知反木马技术是通过文件名、系统目录这样粗糙的方式来进行判断的,虽然粗糙,但效果却十分明显。
该技术是基于对系统目录和文件名规范的一种假设,它的核心思想是认为系统目录是系统自身使用的目录,除系统外其它任何程序不应该使用该目录,如果有程序要将自身拷贝到该目录,就会认为该程序是一个木马。它的另外一个思想是认为一般程序会根据自己的功能来命名自己,由于功能和编写者的习惯,同时将两种不同功能的程序命名为相同文件的情况是不存在的,如果有哪些程序将自己命名为与一些系统文件相同的文件名,则认为这些程序是木马。虽然这两种假设都有反例,但的确符合大部分木马的行为,因此可以轻松识别出相当数量的木马。
随着在对木马的跟踪与研究过程中,又提出了VCS抓毒精灵技术。该技术的核心思想依然是行为判断,但是判断的粒度要细很多。把木马的行为进行分类汇总,每一个行为被称为一个行为项,比如开端口、修改注册表、连接网络等,都算是一个行为项。虽然每一个单项都是程序正常的行为,但是某几个行为进行综合,就可以得出是木马的结论,因为只有木马程序才会同时具备上述几种功能。如果一个程序满足所有的行为项,那它肯定是木马,如果不同时满足,那么如何判断是否是木马?这个判断的度就成了艺术性很高的工作。因为要对这些行为进行跟踪分析,在大量木马样本的前提下,将这些行为项赋值,木马越经常使用的行为赋值越高,反之越低,对这些行为的赋值进行相加,只要得出的和大于某个数值,那么它就一定是木马,这便是VCS技术的核心思想了,当然,将这些数值进行范围划分,就得出了是否为木马的一个概率,用户根据这个概率就可以方便判断是否中了新的木马,该技术的优点就是扩展性很好,只要不断调整经验数值,就能不断提高判断的准确率。
结束语
随着社会化的发展,专业分工会越来越细,一种大而全的软件也会越来越少见,相反一些专项软件如反间谍、反木马软件将会兴起,不断改进。可以预见,将来安全的撕杀将会更加惨烈,木马与反木马的交锋将会更加精彩。