反病毒产品兼容冲突问题 |
发布时间: 2012/7/4 14:11:19 |
反病毒产品之间的兼容性冲突问题,绝大多数情况下,都是技术与协调的问题,有其工作机理上的必然性,并往往具有一定的不可避免性。反病毒产品从最开始的行命令扫描工具发展至今,已经形成了带有文件、注册表、内存等多种本地监控机制。
浏览器、邮件客户端等多种保护环节;以及整合了主机防火墙、入侵检测机制、主动防御机制的综合型产品。而其核心价值早在上世纪末,就已经从最开始的静态的文件扫描检测,变成实时化的主机防护。而实时化的防护推动了反病毒产品使用更多的服务、驱动等底层技术,运行于更接近系统内核的位置,这也为反病毒产品产生相互兼容性问题打下了伏笔。 随着操作系统的复杂化,威胁的不断离散化等影响,反病毒的监控保护点也日趋复杂,又加之反病毒厂商数量也在增加,而操作系统厂商并没提供比较标准的技术规范,因此反病毒产品因互不兼容,发生共存冲突等问题越来越多,并间接影响了用户对反病毒产品的信任。 目前己经发现并被报道过的兼容性问题包括: 造成系统崩溃和其他严重故障: 从2000年以来,根据公开报道,已经出现多起因反病毒产品之间相互冲突,而导致系统蓝屏、死锁等事件。 资源占用: 反病毒扫描、监控和其他防护机制,都会带来系统资源的占用。如病毒库的内存展开对内存的资源使用,文件监控、定时扫描可能导致更多的I/O开销、以及各种保护机制对CPU时间片的占用等等。 这些对用户操作有一定影响,如系统延迟、文件复制操作时间变长等等。而由于消息传递等机制,有可能在多种反病毒产品共存时,其对资源和时间的影响不是简单的线性叠加,而是出现明显的性能恶化。 失效: 由于监控机制之间的冲突,多种监控机制共存时,有可能造成其中之一失效,或者部分机制双双失效的风险。上述后果,可以在兼容性测试中被复现。 相互误报: 由于厂商之间互信互通机制尚不够通畅,以及少数恶意的“误报构造”攻击的存在,厂商之间出现相互误报的情况,也时常发现。由于被报警为病毒而严重地影响了用户对产品的信心,因此,各厂商对被误报的问题也均比较敏感。 但需要指出的是,绝大多数情况下,反病毒产品之间的兼容性冲突问题,都是技术与协调的问题,有其工作机理上的必然性,并往往具有一定的不可避免性。相关问题多数并不是由商业竞争引发的,商业竞争也不是反病毒产品兼容冲突问题的本质。本文主要介绍当前反病毒产品冲突的主因,以澄清公众误解。 由于此类技术也多被恶意软件使用,一些安全软件不会在执行完自己的代码后执行修改前的自己,而是采用从原始文件中读取、分析、执行的方式,导致多个安全软件同时监控一个API时,只有一个生效。 出于性能考虑,不传递给原API处理而采用自己实现的代码完成该API的相应功能,那么也不会将相关信息传递给其他软件。 部分软件在执行完自己的函数后会把修改后的字节还原,然后调用原系统API完成功能后再次修改、挂钩。两个使用此实现的软件同时工作则可能造成互相调用导致死锁,程序没有响应。 (b) Ring0文件监控。与ring3的情况类似,但是后果更加严重。 由于inline hook不同实现造成的不兼容性很可能导致系统API无法正常工作,导致系统蓝屏。 例如:安天客户端产品(Antiy Ghostbusters4.0)早期版本采用大量inline hook,后因与其他产品严重冲突放弃;360安全卫士中inline hook有几种不同实现方式共存的现象,并且与360安全浏览器有重合的监控点; 挂钩之间相互调用,会导致死锁,系统死机; 采用替换SSDT的方式,则只有自己的挂钩有效,其他软件的挂钩均无效。 例如:360安全卫士等产品采用替换SSDT的方式,与其共存的安全软件通过标准方法获取的SSDT是无效的,导致其他安全软件功能出现缺失; Vista以后微软对内核进行保护,部分对内核函数的修改会导致系统蓝屏。 例如:多个产品在内测和对外版本都出现过对关键内核函数进行修改,但是并没有仔细判断版本,导致兼容性出现问题而使系统蓝屏。 反病毒产品兼容冲突问题的讨论就到此为止,希望大家已经有所收获了,我们还会更多的关注这方面的内容的。 本文出自:亿恩科技【www.enkj.com】 |