驳eva的《有关主动防御》

eva的原文引自 http://hi.baidu.com/zzzevazzz/blog/item/13f3bc2f84cc61391e308936.html

所谓的主动防御技术,目的是解决“病毒总是出现在杀毒软件更新病毒特征码之前”这个问题,但是,应用主动防御之后,仍然是杀毒软件在明,病毒/木马在暗。病毒/木马制作者可以在自己的电脑上安装一套所谓的主动防御软件,然后慢慢研究,不用费多少时间,无法“主动防御”的病毒/木马就会诞生。所以,说主动防御能解决AV软件杀毒能力滞后的问题,只是一种炒作。据我所知,主动防御或行为检测的概念,在DOS时代就有了,只是没有明确提出来而已。国内的AV要么是买国外的引擎(以至于没有版权,不能深入开发,甚至不能修正bug),要么烂得可以。只好搞点“新概念”吸引眼球,特别是在市场已经被瓜分完毕,新的AV想分杯羹的情况。我前段时间见到一个据说是国内最早(比江民早)搞AV的人,在他看来,国内的查杀毒技术,10几年来就没有大的进步,搞来搞去就那一套。

主动防御依赖于行为检测,即所谓的“病毒行为动作特征库”。显然,这个行为特征库也存在信息滞后问题。比如对于木马修改注册表实现自启动这类行为,正常与否取决于注册表键值,没有一劳永逸的办法,只能是知道一个识别一个。大家可能都用过hijackThis或Autoruns,它们能列出系统中各种能实现自启动的地方,尤其是注册表特别多。随版本的升级,自启动项还在不多增加。再比如,我在《深入挖掘Windows脚本技术》中提到的WMI永久事件,这也是自启动,不知道现在市面上的AV有没有检测这个行为的。群众的创造力是无限的,再举个极端的例子,ACPI是可编程的,仍然写在注册表中(HKEY_LOCAL_MACHINE/HARDWARE/ACPI),有AV想到了吗?还有,写个dll取名和系统常用dll一样,导出的函数也一样,放在WINNT目录,当explorer.exe启动时,先加载的是这个Trojan Dll。有AV管这个吗?仅仅一个自启动,行为就层出不穷,再来个文件感染行为呢?

如果说,从病毒特征值检测到行为检测,一定程度上减少了“特征库”更新的频率,这是个进步。那么另一方面,误报率恐怕反而会增加。仔细想想就会知道,“擦边球”实在太多了。比如金山词霸(消息钩子、远程线程),Serv-U(安装服务),SoftIce和VMWare(安装驱动),BT和eMule(修改防火墙规则)等等。当然,AV会采取加权方式,只有行为的权值累积到某个阈值才报警。再复杂点的算法是把行为分组,一些普通的行为连贯起来就有了权值。这类方案算不上创新,任谁来设计都能想到。且不论该方案本身的复杂度,即使实现了,离“智能”还差得远着呢。当行为检测碰上QQ——自启动、安装驱动、监听端口、文件传输、屏幕截图、远程控制、安装IE插件、弹出广告,这么多“恶意行为”集中在一个程序里,是木马吗??我开发安全产品的经验告诉我,控制粒度越精细,例外越多。QQ特例处理了,MSN呢?Skype呢?3721算不算木马?yahoo助手、网易泡泡,IE插件何其多。假设AV记录某个程序的各种行为,列成一张表,隐去文件名等信息后,交给“专家”来判断,能确定该程序是否木马吗?我看难说得很。人做不了的事,程序更搞不定了。

最后,我统计了一下我的电脑(刚安装不久)上Program File下的30个软件,一半以上具有至少一个“恶意行为”,1/3具有两个或两个以上“恶意行为”。从概率上说,全世界有1/3的程序可能被拦截并提示用户,行为拦截机制多数情况在制造麻烦。要知道,多数AV用户是不熟悉计算机的,别指望拦截行为后给出提示,交给用户判断,就能“明辨是非”。而且,不是由用户自己装的就一定是正常的软件,也许是文件捆绑、伪装、欺骗用户执行,或者漏洞溢出执行,或者黑客入侵并像正常用户一般执行程序。当然,这种问题稍稍超出主动防御的范畴了。

总之,我认为目前的主动防御技术,仅仅是原有技术的补充(很多AV已经这么做了),再往多的说就是炒作了。

以下是转自驱网上的[url]http://forum.eviloctal.com/viewthread.php?tid=15522&extra=&page=3[/url]
第54楼
既然你认为“事实胜于雄辩”,那我就用事实说话好了。


在Win2kProSP4虚拟机安装微点后重启,一登陆就有提示:

发现未知间谍软件,是否删除?
程序:
C:/PROGRAM FILES/VMWARE/VMWARE TOOLS/VMWAREUSER.EXE
是否删除木马程序及其衍生物

那是VMWare的一个程序,会安装鼠标钩子,用于实现虚拟机内外拖放文件。(好吧,当我没看到,不算误报)

主要关心查杀能力,所以其他功能简单路过。

系统自启动信息中,把fltmgr.sys和agp440.sys两个能通过系统文件签证的正常Windows系统文件显示为其他软件。

自启动信息的详细程度,与工具autoruns的结果还有不少差距。

模块/进程信息中,把wups.dll、wups2.dll和wuaueng.dll三个能通过系统文件签证的正常Windows系统文件显示为其他软件。

编了个小程序,改写磁盘0磁道0、1、2扇区,微点没反映。

运行WinEggDrop写的WebServer(一个微型web服务器,可以用来临时从某主机“偷”东西),微点没反映。

运行IceSword1.10(加载驱动和安装消息钩子),还是没反映。

用w2k_load.exe加载内核级键盘记录工具klog.sys,仍然没反映。

是不是自己主动运行的程序,微点认为是安全的呢?下面搞文件捆绑!

首先绑定两个无害的文件:WinObj.exe和MD5.exe。为避免干扰,用的是自己写的捆绑程序(普通技术,没考虑反杀),结果当然没事。

然后捆绑WinObj.exe和WebServer.exe,不管是双击执行,还是在命令行运行,微点都没反映。

直接在虚拟机里运行捆绑程序进行捆绑,也一样pass。

看来微点的策略是“宁可放过一万,绝不错杀一个”。

再试试古董级的木马winshell,这个要是还不能查杀,可以直接把微点扔进拉圾箱了。

还好,winshell监听端口时微点弹出提示了。但是,并没有提示用户删除winshell的服务。

微点宣传的“重大技术创新”之一是“发现新病毒后……自动清除病毒,并自动修复注册表”。

winshell启动后一共两类“恶意行为”——添加服务(本质是修改注册表)和监听端口,微点在拦截后者并由用户确认后,却不能自动(至少应该提示用户)回滚前者。

功能实在有点简陋啊。仅仅是拦截的话,不如用诺顿,它做的更全面更彻底。

接下来测试黑客之门,这个也是必须查杀的“硬指标”。

在黑客之门开始感染文件时,微点报警了。这应该是黑客之门安装时的第一个“恶意行为”。(这么“积极”的查杀会增加误报率)

我估计微点拦截黑客之门是因为它编辑了PE文件的导入表。那么如果我就是要用PE工具编辑文件呢?

当我用Stud_PE.EXE准备打开一个文件时,通过鼠标选择或拖放文件没有问题。但通过键入首字母让Windows提示并自动完成时,微点报警了。

同一个程序,仅仅因为用户操作不同,被区别对待,这显然存在误报问题。(应该要么都deny,要么都pass)

根据前面的测试,我认为,微点对利用注册表自启动的程序(winshell)采取较严格的控制。

对于不是自启动(包括文件捆绑)的程序,不管是监听端口(WebServer)、安装钩子(IS)还是加载驱动(Klog),统统不理会。

为验证我的想法,我安装了金山的词霸豆豆(一种在线字典)。

安装和使用过程中,微点都没有报警。但是,重启系统后,词霸豆豆自启动,当它要上网时,微点拦截了。

这种策略实在是...怎么说呢...有点...白痴。

如果运行的程序是木马,那微点的提示将成为马后炮。

如果是正常的程序,系统重启后仍然免不了要提示。而且用户会想:“我昨天也用过这个程序,微点怎就没报警,是不是这个程序刚刚被感染了啊?”

所以,还不如像传统防火墙那样,一开始就给用户明确提示。等程序自启动了才提示,只会让普通用户感到困惑。

另外,我测试的微点(程序版本:1.2.10289,特征版本:1.3.69.060428)有个严重BUG。

当我执行 nc.exe -l -p 4444 时,微点提示:
发现可疑程序
C:/DOCUMENTS AND SETTINGS/ADMINISTRATOR/桌面/NC.EXE
是否阻止该进程继续运行?

默认选项为“阻止”,点“确定”。然后nc进程就僵死了。用IS无法终止nc进程。

最糟糕的是,系统关机时,系统也无法终止这个nc进程,以致于系统无法正常关机。

以上测试,完全感觉不到任何“智能”的成分。实在没兴趣多研究了。

最后,列出微点挂钩的系统服务:
nt!NtClose
nt!NtCreateKey
nt!NtCreateProcess
nt!NtCreateSection
nt!NtCreateThread
nt!NtOpenKey
nt!NtOpenProcess
nt!NtOpenThread
nt!NtQueryDirectoryFile
nt!NtSetValueKey
nt!NtWriteVirtualMemory
win32k!NtUserCreateWindowEx
win32k!NtUserDestroyWindow
win32k!NtUserFindWindowEx
win32k!NtUserMoveWindow
win32k!NtUserSendInput
win32k!NtUserSetWindowPos
win32k!NtUserSetWindowsHookEx
win32k!NtUserShowWindow

顺便说一下,当我手动把SSDT复原后,微点没有任何提示说“xxx已被篡改”,也没有重新挂钩。

想必,其它的API/TDI/NDIS Hook(如果有的话)也没有防止被解除挂钩。整个防御机制之薄弱可见一斑。

第55楼
说白了 微点这种软件就是一个小小的APIHOOK 稍微有些编程能力的都能轻易写出 这种软件最多可以发现一些动作比较大的 如使用敏感WIN32API的程序 并且误报率极高 ~更说白了 它只会对木马类型的东东有反映 对病毒类的操作是完全没有效果的 比如我用一个一个BAT文件删除D盘上的全部文件 或说直接格式化 它都不能对其作出反映
第二点就是它不具有对系统内核的保护能力 紧紧是从API的等级去保护 如果我的病毒属于是引导扇区加载的或是感染BIOS的 它可以说是形同虚设 或是早期的文件型病毒或是像欢乐时光那样的......
所以说用微点的一般都是目前病毒形式不是很了解的用户罢了  如果说主动防御真的有效的化 那也许不是在WIN32这个平台上的!

以下是我的回复:

 

我非常仔细看了整篇文章,发现了诸多错误。简单说下,如果有错误,还请指正。
1.编了个小程序,改写磁盘0磁道0、1、2扇区,微点没反映。事实上,底层磁盘操作微点会直接报警。
2.运行WinEggDrop写的WebServer(一个微型web服务器,可以用来临时从某主机“偷”东西),微点没反映。微点当然没反应,正规工具怎么用是你的事。难道我把东西卖你之前还要问问你干什么?
3.运行IceSword1.10(加载驱动和安装消息钩子),还是没反映。这个是处于微点白名单之内。但是无法结束微点。
4.用w2k_load.exe加载内核级键盘记录工具klog.sys,仍然没反映。这个还得麻烦你做个录像,担心样本不同。
5.首先绑定两个无害的文件:WinObj.exe和MD5.exe。为避免干扰,用的是自己写的捆绑程序(普通技术,没考虑反杀),结果当然没事。无害文件,莫非还要微点报警?
6.微点宣传的“重大技术创新”之一是“发现新病毒后……自动清除病毒,并自动修复注册表”。这项功能确实有问题,防御还不完整。
7.当我用Stud_PE.EXE准备打开一个文件时,通过鼠标选择或拖放文件没有问题。但通过键入首字母让Windows提示并自动完成时,微点报警了。建议原作者学习下父子进程关系。
8.根据前面的测试,我认为,微点对利用注册表自启动的程序(winshell)采取较严格的控制。
对于不是自启动(包括文件捆绑)的程序,不管是监听端口(WebServer)、安装钩子(IS)还是加载驱动(Klog),统统不理会。对于微点原理了解还不够透彻,请等待黑防5期我分析微点的文章。
9.为验证我的想法,我安装了金山的词霸豆豆(一种在线字典)。
安装和使用过程中,微点都没有报警。但是,重启系统后,词霸豆豆自启动,当它要上网时,微点拦截了。貌似微点默认防火墙关闭,请楼主详细描述你的测试过程!
10.当我执行 nc.exe -l -p 4444 时,微点提示:
发现可疑程序
C:/DOCUMENTS AND SETTINGS/ADMINISTRATOR/桌面/NC.EXE
是否阻止该进程继续运行?
默认选项为“阻止”,点“确定”。然后nc进程就僵死了。用IS无法终止nc进程。
最糟糕的是,系统关机时,系统也无法终止这个nc进程,以致于系统无法正常关机。RPWT,我这完全正常。
11.当我手动把SSDT复原后,微点没有任何提示说“xxx已被篡改”,也没有重新挂钩。测试版会自动恢复,预升级根本不允许重置SSDT,我在黑防3期已经做了说明。
12.说白了 微点这种软件就是一个小小的APIHOOK 稍微有些编程能力的都能轻易写出。烦请作者也写一个看看,没准一不小心成就了另一个刘旭。有作者在,中关村五杰全得下岗。
13. 这种软件最多可以发现一些动作比较大的 如使用敏感WIN32API的程序 并且误报率极高 ~更说白了 它只会对木马类型的东东有反映 对病毒类的操作是完全没有效果的。这点不置可否,只当痴人说梦。
14.比如我用一个一个BAT文件删除D盘上的全部文件 或说直接格式化 它都不能对其作出反映。微点会报警。
15.第二点就是它不具有对系统内核的保护能力 紧紧是从API的等级去保护 如果我的病毒属于是引导扇区加载的或是感染BIOS的 它可以说是形同虚设 或是早期的文件型病毒或是像欢乐时光那样的......
微点在守护,你如何感染?想法不错,可惜实现不了。
16.所以说用微点的一般都是目前病毒形式不是很了解的用户罢了; 如果说主动防御真的有效的化 那也许不是在WIN32这个平台上的!这个打击面是不是太广了。毕竟像我这种“白痴”还是很乐于用微点的。
综上所述:原作者纯属个人臆断,所做测试完全站不住脚,有吹毛求疵的嫌疑!我们欢迎深入测试,坚决打击任何不实言论。
如果对我上面的回复有任何疑问,请随时联系我!欢迎拍砖。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值