阅读:5174回复:37
瑞星2008主动防御技术分析[zt]
Aoouch发布于 2007-08-15 19:18:38|3199 次阅读 字体:大 小 打印预览
感谢rOOtKitEr的投递 注:删除了作者一些措辞强烈的结论,只保留技术分析的部分,请见谅。 看到瑞星2008发布了所谓”超越传统HIPS”、“监控功能比传统HIPS的更全面"的功能,当时为之震惊,难道国产杀毒软件终于开发出了强大的HIPS功能了?立刻下了测试版安装,打算进行测试。起初考虑,发布文章中说得如此强大的主动防御技术,是不是需要逆向分析才能清楚呢?可惜,事实告诉我们,灰盒就够了。使用Rootkit Unhooker/Gmer工具对安装瑞星2008的机器进行扫描即可得出瑞星的保护究竟在哪了。 (1) SSDT HOOK: 使用了最原始也是最易恢复的SSDT挂钩方式 挂钩了入下函数: ZwCreateThread、ZwWriteProcessMemory:用于防止远线程注入 ZwLoadDriver:拦截正规通过SCM的驱动加载 ZwSetValueKey、ZwCreateKey、ZwDeleteKey、ZwDeleteKey、ZwDeleteValueKey、ZwRenameKey: 用于拦截注册表操作 ZwTerminateProcess:保护进程不被结束 (2) ShadowTable挂钩: 挂钩了两个GDI函数: NtGdiSendInput、NtSetWindowsHookEx 分别用于拦截键盘鼠标模拟输入 和全局钩子 (3) Hook了TcpipNtfsFastFatCdfs等驱动的Dispatch Routine: 用于拦截网络操作、文件操作 (4) Hook了fsd的iat上的上几个函数,和主动防御基本无关 稍懂内核技术者从上面就可以看出,这个所谓的主动防御体系不但不能说超越所谓HIPS(使用的都是过时的技术)、另外监控非常的不足,可轻易突破,根本不具有主动防御的使用价值,可以说,根本不能称之为一个完整的、可靠的主动防御体系,不能称为IPS。 这里就来随便说几点这个体系的一些弱点: 弱点1 - 鸡肋的自我进程保护: 瑞星在发布文章中说到“开启了瑞星2008的自我保护后,使用Icesword也无法结束其进程”,这句话大家去江民论坛上看看,几天前江民的2008测试版出来的时候,也是说了这么同样一句话,但是,江民是货真价实不能被结束,瑞星呢? 不用多说,拿ICESWORD测试一下可知,瑞星的所有进程都可以被轻易结束为什么呢?因为瑞星只挂钩了ssdt上的NtTerminateProcess,这对于使用更底层的方式结束进程的Icesword是完全没有作用的,同时,只要这个钩子被恢复(在瑞星的全面保护下恢复此钩子也是非常容易的,见后面的弱点分析),使用任务管理器即可结束其所有进程(大家可以使用一 些具有SSDT恢复功能的工具例如超级巡警、gmer等试试)。 弱点2 - 注册表监控的多个漏洞 (1) 注册表监控使用全路径判断注册表写入键名的方式,这种方式使用一个小技巧就可以饶过: 先打开想要写入的键的上一层键,例如HKEY_LOCAL_MACHINE | SOFTWARE | Microsoft | Windows | CurrentVersion,得到句柄后再使用这个句柄+Run来操作这个注册表,即可完全饶过瑞星的所谓“注册表监控”,写入注册表。 (2) 没有拦截ZwSaveKeyZwRestroeKey等方式写入注册表。该方法可以彻底饶过瑞星的注册表监控,SSM等专业的HIPS都已加入对这个写入注册表的保护,瑞星根本没有拦截这个关键的地方,(CB注:此处省略若干字*******)。 (3) 没有拦截直接操作HIVE注册表方式。该方法和方法2一样,SSM等也都有拦截。 虽然瑞星拦截了ZwLoadDriver来阻止驱动加载,但是木马完全可以写入一个BOOT0的驱动注册表项,等待重启后自然启动,那就可以为所欲为了。 弱点3 - 这个最为致命:没有拦截ZwSetSystemInformation和其他一些穿透主动防御的常用技术 入侵者可以通过ZwSetSystemInformation函数的LoadAndCallImage方法加载一个驱动,非常简单的就可以做想做的操作,比如恢复瑞星那些非常容易被恢复的SSDT钩子,这些网络上都有现成的代码,也有多个木马使用了该技术进行主动防御穿透。 |
|
|
沙发#
发布于:2007-08-15 23:28
楼主是转贴高手
|
|
|
板凳#
发布于:2007-08-16 00:48
看到瑞星2008发布了所谓”超越传统HIPS”、“监控功能比传统HIPS的更全面"的功能,
|
|
地板#
发布于:2007-08-16 08:47
ZN,收藏的功能又出错了~~~已经好久不能收藏了~~~有上限吗?
|
|
|
地下室#
发布于:2007-08-16 08:53
有空再修一下.只是转给没看过的看看.
我知道是谁写的,不过,重要的不是谁写的,是写的正确与否 |
|
|
5楼#
发布于:2007-08-16 09:07
不被IS结束也值得炫耀,有本事别被RKU的内存清零搞完.
|
|
6楼#
发布于:2007-08-16 09:41
市场经济社会,重要的是商业运作,而不是玩黑客攻防游戏。从技术上来看熊猫烧香跟个玩具一样,但却成为了最为成功的商业化病毒。
上面那些技术是不怎么样,但那是广告多嘛,虚假广告多得很嘛。 那三个弱点也是大多数杀软都有的。 首先进程保护是一件几乎不可能做到的事情,谁的技术很牛么?写一个有自我进程保护的程序扔网上,看三天内有没有人能破了它。 注册表也是件麻烦事儿。ZwSetSystemInformation等漏洞虽然明显,但连卡巴都有,难道这些公司的程序员真的就不知道这个漏洞么? |
|
7楼#
发布于:2007-08-16 11:15
关键是吹嘘自己能不被IS结束,结果却是NtTerminXXX的HOOK~
杀软不是HIPS,但是瑞星却把自己吹成了比HIPS更高级更强大的工具 相信搞技术的看了这两篇文章,没有不恶心的 http://news.newhua.com/html/Soft_Skill/2007-8/15/0781512023013623_51.shtml http://www.cnbeta.com/article.php?sid=36458 |
|
|
8楼#
发布于:2007-08-16 12:43
是么,我觉的不一定哦,很多时候我们要从多方面去看。
|
|
9楼#
发布于:2007-08-16 17:30
技术只是一种手段,不是目的.
作为商业软件来说,他们使用这样的技术应该是有原因的 |
|
|
驱动小牛
|
10楼#
发布于:2007-08-16 18:05
作为商业应用,最好的技术不一定最好,关键是稳定,像SSDT和inline hook这种广为人知的的技术,虽然不一定最高,却稳定一些,想必是出于此点吧,不过不应该太吹牛了.
|
11楼#
发布于:2007-08-16 22:46
呵呵 又见瑞星
|
|
12楼#
发布于:2007-08-17 07:57
zn,你这里转贴的是rising哪个版本?昨天下午帮我朋友搞定她的机器,就是rising。因为她说自己的那个IBM本本总是会兰屏,就帮她看看。开始的时候一堆minidump都说是一个USB Cam的driver,结果拔掉cam,只要一升级或者卸载rising就继续兰。弄了个full memory dump,看到是rising的hookapi.sys(好像是这个名字)有memory corruption。然后就到registry里面把一堆rising的driver停掉,文件也全都改了名字,再启动就可以卸载了,机器也运行的忒好-虽然只有256M内存 哈哈
|
|
|
13楼#
发布于:2007-08-17 23:37
呵,逛遍各论坛,就没见一个有名有姓的人说瑞星好的~能混到如此地步,也实在让人佩服~
推出个2008居然还不吸取教训~~汗~其执着也实在让人敬仰~ |
|
14楼#
发布于:2007-08-17 23:40
引用第5楼kxsystem于2007-08-16 09:07发表的 : 内存清零的方法好像不是太好吧~实现起来容易,但太粗暴了~ 还是破除保护后,让其文雅的结束好~ |
|
15楼#
发布于:2007-08-18 00:09
你还别说,现在吹得就是本事!
|
|
|
16楼#
发布于:2007-08-18 08:54
引用第12楼rayyang2000于2007-08-17 07:57发表的 : rising的 hookapi.sys 经常蓝掉的,习惯就好了 一般装瑞星的机器上蓝屏十有八九是它造成的.. |
|
|
17楼#
发布于:2007-08-18 14:08
莫非瑞星也抄那份hips代码了~
哦弥陀佛~~ poc害死人啊~ |
|
|
18楼#
发布于:2007-08-18 15:13
- - 哈哈 的确。。。
|
|
|
驱动小牛
|
19楼#
发布于:2007-08-18 22:11
都是程序员,为什么这么欺负瑞星的程序员啊,不就是水平差点么,谁不是从菜鸟成长的,看不惯啊!!!
|
上一页
下一页