【转贴】从SAV517 bug谈SAV的设计缺陷
发信站: 水木社区 (Fri May 18 13:10:25 2007), 站内
Symantec 出现了这种别的 防病毒软件所永远也不会发生的问题
(看这帖http://forum.ikaka.com/topic.asp?board=33&artid=8311500)
是他的设计缺陷埋下的祸根。
一般的AV软件都会产生1个(或多个)驱动和1个(或多个)服务了实现防病毒的功能。
一般来说这个驱动就是个简单的ssdt hook来监视文件访问,然后通知服务程序来做逻辑
判断。
比较保守的做法是,av驱动里做得尽量简单,紧紧是一个hook很完成和ring0的访问
中介而已,判断病毒和通知用户等是靠 av服务来进行的。因此当av服务停止的时候
av驱动就什么也不做了,自动防护功能也就终止了。
而sav在这方面做得比较前卫一些,直接在驱动里面做病毒防护的工作,而且在av服务
终止的时候,自动防护的状态默认是启动的。于是就酿成了大祸。
一般的av软件在av服务启动之后才工作,因此这个时候已经是windows初始化完成以后了
一般不会出现蓝屏的问题,顶多是遇到早加载的病毒无法清除而已。
而sav的病毒防护功能却过早启动,遇到误报并禁止访问的情况后果就很严重的。
事实上,sav这种做法虽然有一定的优势,例如熊猫烧香能够轻松 net stop停止
macafee却无法停止sav。但是这种主动攻击av软件的病毒毕竟少数。但是面临
风险更大的误报情况,对于别人误报就误报了,反正重要的系统文件都加载
得早,删也删不掉,sav因为过早进行病毒防护就把重要的文件也误删了,
结果反而把自己弄得很狼狈。
这个事件揭示了一个道理,就是凡是与人打交道的地方都不能太执着,不求更好
但求不要出错。给敌人留机会就是给自己留机会。