杀毒软件技术漫谈:启发式对战主动防御

当前,计算机病毒主要以加壳的特洛伊木马、蠕虫为主,病毒的作者不再像以前一样仅仅是为了炫耀自己的计算机水平有多高,而是为经济利益所驱使,盗取用户私密信息、开辟系统后门等等,带来直接经济损失。

随着软件漏洞的频频出现,尤其是Microsoft的Windows和Office漏洞,甚至是0day漏洞攻击,加上用户安全意识不够,再加上病毒诞生速度,造成了如今病毒泛滥的现象。反病毒软件查不到病毒、杀不掉病毒,用户怨声一片,只怪病毒出现得实在太快,编写技术实在太高。为了杀掉一个病毒,需要漫长的等待反病毒厂商将其加入到病毒特征库中,升级了,发现又无法清除,只能返回到连Microsoft都不知道是否该放弃的DOS中解决。

防病毒自然被所有人看成了一个最关键的环节。怎么实现呢?

启发式这个概念在几年前已经有人提出并已经实现,到了现在启发式已经发展到了一个相当厉害的程度,在将误报降低到最少的前提下尽可能的发现未知病毒。每个反病毒软件厂商实现的方式不同,但是基本上都是一种理念,就是在一个虚拟环境中执行病毒根据病毒行为判断,当然这种虚拟方式持续的时间极短。启发式在国外基本上算是一个比较成熟的技术了,尤其以NOD32、McAfee、Dr.web等尤为厉害,他们的启发式引擎能够相当准确的查出一个新病毒并且及时阻止,误报的概率比起其他来小太多。实际上Kaspersky也有自己的启发式引擎,某些时候也能报出未知病毒,概率嘛自然比起前面说的要小很多,不过在某些特定语言编写的病毒方面,Kaspersky能够很准确的报未知病毒

(Kaspersky Lab的病毒特征码提取技术那是业界首屈一指的,经常会发现之前某个病毒的特征码仍然适用于之后出现的病毒的情况)。国内的情况就不乐观,启发式虽然在国内不能说成空白,但是也不知道该拿什么词来形容现阶段的状况。以国内三大江民、瑞星、金山为例,江民KV系列一直都有延续着"广谱查杀"技术,这种技术对变种病毒很有效,尤其对宏病毒之类的,偶尔大家或许能看到KV报某可疑文件为Win32.Type,这就是KV"广谱查杀"技术的收获(广谱技术和之前说的启发式是有一定区别的);瑞星的行为分析技术似乎对于Windows平台下更有效,通过病毒行为判断来分析病毒的可能性,从实际情况来说,它的效果比KV的明显,但这只是一个相对比较,整体看来作用也不大,很少发现报未知病毒的情况;至于金山毒霸,几年前因使用的是Dr.web的引擎有启发式的存在,现在因为完全用了自己的引擎技术,至少我没有发现金山毒霸有启发式的影子。

主动防御这个词好像是近段时间才出现的吧,国内的反病毒软件好像是KV第一个用了注册表监控技术,所以有一部分人就认为主动防御就是注册表监控这东西,那么这太片面了。

现在病毒有哪些行为呢?擅自创建程序,创建自己的启动项,将自己插入到别的进程中,利用Rootkit编程隐藏自己……

说到主动防御,我不得不说到的是System Safety Monitor(简称SSM)这款软件,这个软件属于Host- based Intrusion Prevention System(HIPS),它不是反病毒软件,也不是防火墙软件,却能够从小到每个进程大到整个磁盘底层保护系统免受不良程序的危险,软件的功能自然包括最常见的注册表保护、文件保护、磁盘系统保护、防止进程注入等,SSM的功能太强大,不多说。 Kaspersky从V6开始引入了Proactive Defense,它的主动防御默认并不开启注册表监控,因为这种交互很麻烦,对普通用户来说会带来相当多的麻烦,用户看不懂这些注册表监控到底在提示些什么,因此Kaspersky Lab出于对用户的考虑默认并没启动这个功能,至于它的行为监控模块就值得称道,通过内置规则,

当某程序试图执行时,行为监控就会比对规则判断是否为恶意程序,这种准确度是相当惊人的,最新的版本基本上能100%发现Rootkit,对于木马、后门、蠕虫等基本都能拦截,虽然报的名字很统一Trojan Generic,那些进程注入、隐藏数据发送、带参数启动IE等自然都不能逃出它的监控(他的Proacive Defense弥补了了在启发式方面的相对薄弱),有机会大家去用一用吧。国内方面,瑞星目前仅有一个注册表监控,那么可以将其排除在主动防御之外,因为这个太肤浅,不过最近加入了一个防止直接通过浏览器执行程序的功能,这个功能相当值得称道,通过IE中读的人实在太多;毒霸没有这个功能;江民的KV系列,从前几个版本就有了注册表监控,后来发展到"木马一扫光",木马

一扫光在最初包含了注册表监控、进程注入、键盘记录几个功能,初步实现了一些简单的主动防御模块,可能因为交互没做好,在给用户带来安全的同时也带了了麻烦,用户不知道KV到底在提示些什么,现在到了KV2007,木马一扫光被降级到了纯粹的注册表监控范围,其他的功能交给了"系统监控",网络访问控制(主要是HTTP、EMAIL)、进程注入保护、擅自运行程序、直接内存访问、文件访问控制、文件完整性保护等样样俱到,虽说不是特别全面,不过已经涵盖了绝大部分,这些对于有经验的用户来说是个福,对于初级用户来说就有些麻烦,得看以后怎样改进了,最好直接判断程序可能是什么或是什么。

当然,主动防御有个缺点,就是必须当程序似乎执行时才有效,静态查毒不生效。

启发式与主动防御,国内软件KV在这方面的发展和应用略占优势,我们只能期待会更好,没有国人不支持自家的东西。