62 123
发新话题
打印

[原创]主动防御型杀毒软件的技术探讨

[原创]主动防御型杀毒软件的技术探讨

文章作者:MGF
信息来源:邪恶八进制信息安全团队(www.eviloctal.com

   近日,带有“未知病毒主动防御”功能的KV2005上市,对于全球的黑客来说那可是一个
不好的消息。在本文开始之前,先看看媒体是怎么介绍的:

〈〈间谍程序、游戏木马、黑客程序等网络病毒的频频爆发,使国内外反病毒领域开始意识
到,单纯依靠“特征码技术”已经不能适应反病毒需求。作为打响防范“未知病毒”第一枪
的“未知病毒主动防御”系统,已经由国内反病毒厂商开发成功。

  昨日,国内知名反病毒厂商江民科技发布“四大利器”集于一身的KV2005“未知病毒主
动防御”系统。据介绍,这一系统包括“未知病毒克星”、“木马一扫光”、“KV病毒预警
系统”、“隐私信息保护”四大部分,成功实现了主动防御技术与病毒特征码技术的结合。
尤其是新增的“未知病毒克星”功能组件,采用病毒行为主动防御技术,可自动判别当前系
统进程的安全状况。用户可以根据进程安全性的高低,判别电脑是否感染未知病毒,并视情
况采取进一步措施。

  该公司总裁王江民表示,江民科技在未知病毒防范方面已形成一套从病毒防御到病毒查
杀的完整防、查、杀体系。“木马一扫光”、“未知病毒克星”都应用了“黑白名单”技术,
将正常的系统组件和应用程序全部列入“白名单”,从根本上跨越了未知病毒主动防御的技
术障碍。

  “未知病毒检测工具”配合“木马一扫光”“隐私保护”功能组件,不仅能够100%防御
木马入侵,而且还可以基于行为特征自动监控及诊断,主动防御98%的未知病毒,意味着中国
反病毒技术在主动防毒领域已经开始全面领先国际同类产品。
〉〉

   那么什么是“主动防御”,它的实现技术又是怎样的呢?本人在这里简单献丑一下,说
得不对的地方欢迎扔鞋砸鸡蛋(但是请不要泼粪^_^)!

   所谓“主动防御”,就是全程监视进程的行为,一但发现“违规”行为,就通知用户,
或者直接终止进程。它类似于警察判断潜在罪犯的技术,在成为一个罪犯之前,大多数的人
都有一些异常行为,比如“性格孤僻,有暴力倾向,自私自利,对现实不满”等先兆,但是
并不是说有这些先兆的人就都会发展为罪犯,或者罪犯都有这些先兆。因此“主动防御”并
不能100%发现病毒,它的成功率大概在60%-80%之间。如果再加上传统的“特征码技术”,
几乎可以发现100%的恶意程序了。在国外,诺顿,Kaspersky,McAfee等等杀毒巨头,都已经
向“主动防御”+“特征码技术”过渡了,这是杀毒软件的必然发展趋势。

   防火墙是一个运用“主动防御”技术的典型例子,大家都用过防火墙了,对于防火墙经
常询问用户是否放行一个进程访问网络,或者有不明连接进入本机而发出警告是否印象深刻
呢?其实防火墙就是在全程监视进程的网络行为,一但发现违反规则的行为就发出警告,或
者直接根据用户设定拒绝进程访问网络。当然,现在的防火墙一般都把系统网络进程(比如
services.exe,svchost.exe,lsass.exe等)记在“受信名单”里,这些进程是默认允许访
问网络的,如果禁止的话,操作系统就不正常了,这也是现在很多病毒和木马都喜欢远程注
入这些系统进程以突破防火墙而访问网络的原因。

   下面重点说一下“主动防御”的实现技术。大家都写过程序,知道在一个程序里如果要
实现自己的功能就必须要通过接口调用操作系统提供的功能函数,在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,正常进程很少用到,倒是被病毒
木马用得最多)。...。可以想象,未来我们运行程序可能要被提示多次,访问网络也被提示多次,
各种各样的提示将大多数人搞的昏头转向。想安全就要管严,放松就不安全了!
风萧萧兮易水寒,壮士一去兮不复还!

TOP

但是不可能所有的程序都是很本分的使用那几个给定的函数..系统里面的消息很多API很多,有的时候用到总会给出提示.这样的话会给用户的使用造成很大的困难与不方便...与其比起这样的"更安全",还不如给用户一个更方便的使用环境为好.
PS:有的时候一些挂接会对系统造成一些不好的影响,至少有的时候会不稳定...
me=\"kEvin1986\" & chr(0) & \"at solitude\" msgbox len(me)  \' You can see somthing. msgbox me  \' But just part of it. \'i think i will hide part of myself

TOP

当然不会每一个API都去拦截,也没有哪个杀毒厂商连GetVersion()这样的函数都去挂接。只要挂接那些
危险的API就可以了。杀毒厂商有他们的优势,那就是可以从他们的病毒库里提取所有的病毒木马资料,找
出那些病毒木马最常用的API,然后拦截这些API就可以了。

HOOK API技术,是黑白两道都必须掌握的技术。
风萧萧兮易水寒,壮士一去兮不复还!

TOP

行为判断是趋势.
黑白名单是大大的好事
很多人有时候忽视了一个问题,许多的应用程序会收集一些关于机器和使用者的信息(多多少少),而这些程序,或者说这些程序的这些功能并不被人视为一种不安全的行为..如果杀毒厂商够牛,将来他们将会起到审核员的作用.(如果你运行mstsc的时候KV报警提示可能为病毒,不知道还有多少用户会使用mstsc,这时候如何妥协就是一个问题了),所以这也是杀毒软件厂商的一招妙招

[s:49]

TOP

我也不觉得这个方法比传统判断方法聪明到哪去

TOP

与其研究怎么绕过这种检测模式,不如研究怎么偷偷的把自己加入"白名单"容易
流氓会武术,谁都挡不住. http://hi.baidu.com/zvrop

TOP

嘿嘿,其实这只是妄想而已,搞的定一个软件的白名单,搞不定一群软件的白名单.

还是小骑那个观点好,检测的力度是关键,因为那些写病毒用的技术就是比较高的技术,如果完全给喀嚓了,可能会有太多的软件要报警了.比如一些外壳程序,调试工具,编程工具,系统优化,网络检测(sniffer),防火墙,ids.....甚至其他杀毒软件,专杀工具,rar都有可能..等等.

往复杂了想,这检测耗的资源可大了.而且有可能出现运行到某些函数的时候卡机的情况.
流氓会武术,谁都挡不住. http://hi.baidu.com/zvrop

TOP

如果真的要监测的话,那么系统资源应该会受不了的,结果就是放弃这种杀毒软件,这个方法不是很好啊。

TOP

我买过一个正版kv2005,经过测试,查未知病毒的能力根本体会不到。

TOP

我记得有人用理论方法推导出如下结论

无法用自动判断或者统计的方法来判断一段代码是正常代码否是恶意或者病毒代码

所以自动判断未知病毒和木马
理论上是行不通的
连入侵者都敢说自己在做网络安全。关键大家是真正为安全作过什么?

TOP

我感觉也是,
现在的病毒一加了壳很难查出来,
而且如果你使用了Hook Api 技术就会带来不稳定,
还涉及到与其他产品的兼容性问题.

许多公司都在吹查杀未知病毒, 但我有时加一下壳就可以逃避查杀.

TOP

每个API都hook就没什么意义了,也就那么几个病毒常用的,只不过一旦白名单多了起来,hook到一个进程访问api的时候这还要调用白名单数据库,还要对比判断,消耗是很大的.而这延长某些api执行的速度.

而且一旦被检测的api定多了,固然能提高预警概率,同时也降低了系统的性能.
一旦API定少了也就只能检测几个非正常的病毒而已了(比如喜欢用插入进程隐藏自己的病毒).
流氓会武术,谁都挡不住. http://hi.baidu.com/zvrop

TOP

提示: 作者被禁止或删除 内容自动屏蔽

TOP

提示: 作者被禁止或删除 内容自动屏蔽

TOP

提示: 作者被禁止或删除 内容自动屏蔽

TOP

提示: 作者被禁止或删除 内容自动屏蔽

TOP

HOOK API确实会大大降低系统性能,只要应用得当,不稳定性应该能降得很低。
“提供一个可选操作给用户,比如(忽略,执行,禁止)等等....”是一个好方法,另外还应该给用户
一个默认的操作,避免频繁提示用户。

加壳可以逃得过文件查杀,但是在壳代码还原自身后,一样逃不过HOOK API的监视。
风萧萧兮易水寒,壮士一去兮不复还!

TOP

提示: 作者被禁止或删除 内容自动屏蔽

TOP

震荡波病毒确实够毒的,它运行后会建立400(具体数字不记得了,当年我分析它的代码时印象中是几百)
个线程来搜索有漏洞的电脑,所以一旦中了震荡波,你的电脑就什么都不用做了。

如果拦截CreateThread(),统计同一个代码地址调用CreateThread()的次数,如果超过10次,就给用户
提示或终止进程,就可以降低震荡波对自己和别人的危害(因为它在本机的CPU占用率不会到99%,也不会
那么快就搜索到一大堆有漏洞的电脑)。
风萧萧兮易水寒,壮士一去兮不复还!

TOP

市场炒作,江民连引擎都是买的,最多做做二次开发,哪有实力做底层开发阿

关于主动防御型,大家有兴趣的话可以试试 微点主动防御软件,天天有下载

是瑞星前总工出走后开发的,前些日子闹得沸沸扬扬的散毒事件主角,我个人估计是同业厂商打的小报告,从侧面可以说明应该是很有技术功底的

先声名:软件还是测试版,我怕出事,没敢测试,不怕死机的去试吧

ps:期待有大无畏的英雄把测试报告贴出来 [s:51]  [s:51]  [s:51]

TOP

我前天下了个微点,感觉做为查杀木马的工具还不错的,,呵呵,,不过误报率太高,我自己写的一个服务程序竟然被报成木马。。。其中进程网络信息,进程模块信息都比较不错!
源静则流清 本正则丰茂 内修则外理 形端则影直

TOP

哈哈,楼上是大英雄。

我慎些日子,再开始测试。

说实话,目前真找不到一款合适的杀毒软件,从技术上来说,卡巴最好,病毒库也最全,但是活儿太糙了,误报和清除失败相比其它杀软来说要高很多。我觉得作为查毒和检测样本等辅助应用还是很好的选择,但是不适合做主用。

TOP

这贴子分析得有深度,软件智能度的提高在今后的病毒(或防毒)技术领域是必须要考虑的

TOP

微点我用过,资源占用率比较高,大约40M内存左右~所以不用了,马上删了~

这个一般吧,很多木马都杀不出来~
轻狂如我,心伤谁知

TOP

kv的主动防御技术体现在木马一扫光上面,如楼主文中所说的远程线程的调用,基本上就是这个原理。这样就可以用来防范一些未知病毒。实践证明,还是相当有效的。这个称之为防。

如果你已经中了病毒,就要使用未知病毒检测了,文中没有提到这个,可能是写的比较早的原因。也就是基于行为判断技术。我们知道一些普通的病毒要运行,必然要写注册表的启动项,这样我们就把所有注册表的启动项都列为可疑病毒,然后结合文件所处的位置,和文件的属性,如病毒一般都是隐藏的,给出一个概率,并把系统的正常文件列入白名单中。这就是未知病毒检测的原理。他是在事后补救。

TOP

 62 123
发新话题