反病毒产品的兼容性问题
除了文件监控、防火墙、浏览器防护的潜在兼容性问题之外,在多款软件共存的情况下,主动防御的兼容性问题尤为严重。主动防御主要可以分为两个方面来看待:
1. 自我保护
多款安全软件都保护自己的监控点不被修改,特别是使用了inline hook或者对系统设备、内核对象、SSDT进行了hook的产品。类似安天Atool等Rootkit检查工具曾使用过替换进程SSDT保证自己的hook不被修改,但也导致使用SSDT hook的主动防御完全失效的副作用。360安全卫士曾使用替换SSDT的技术对自己的监控点进行保护,导致与其共存的安全软件主动防御功能中关于SSDT的部分完全失效。
一旦发现自己的监控点被修改,则会对监控点进行修复,也就是重新hook。这就有可能导致多款安全软件反复争夺监控点,或者hook直接互相调用造成死锁,最终耗尽系统资源,导致机器死机。
由于自我保护的存在,病毒感染安全软件后,依然会被安全软件的自我保护所保护,其他安全软件可能无法读取其内容进行检测,或者可以检测,但是无法结束相应的进程。
2. 恶意行为分析
一款软件出于安全角度考虑,不调用被hook的原始API,则会导致其他软件在分析恶意行为时,无法检测到该行为,进而造成程序的行为序列发生改变,最终导致行为分析误报或者漏报。
由于安全软件的某些行为和恶意软件具有相似性,例如:对API进行的某些hook,在多款安全软件共存的情况下,很有可能一款安全软件被另一款报为病毒,这也是一种误报。
为了保证自身进程的行为不被重复记录或者对行为分析产生影响,安全软件可能会对特殊API的调用参数含义进行修改,增加自身需要的标识,而这些标识可能会造成后续的监控产生不可预知的行为,最糟糕的情况就是导致系统蓝屏。
对于ring3与ring0结合判断的主动防御,处于二者中间的其他安全软件对数据的修改可能会造成ring0缓冲区的溢出(例如:ring3的API挂钩通知ring0的驱动,需要26字节实际数据可能由于中间沙箱软件的路径重定向被改为27字节或者更多)或者被截断,导致系统蓝屏或者漏报。
以上仅仅是主动防御潜在兼容性问题的一部分,由于主动防御技术本身的复杂度,在多款实用主动防御技术的安全软件共存的情况下,兼容性问题就更容易出现,也更加严重,这里说明的仅仅是一部分,不是全部。
兼容性问题对反病毒厂商的影响
兼容性是反病毒厂商的核心困扰之一,由于反病毒使用大量的内核技术、驱动等,一旦出现兼容性的后果,其所造成的影响,要远严重于其他应用软件。同时反病毒产品为了对抗病毒的一些自我防护机制,也会使问题的处置变得比较复杂。因此,多种反病毒软件之间冲突引发的问题要比其他软件冲突问题后果更加严重。
兼容性冲突问题使反病毒厂商技术支持的难度增大,由于环境的复杂性,问题变得更加难以排查和处理。
特别是企业版产品,厂商承担着更大的责任和支持义务,如果由于冲突性问题,带来问题,对于问题的责任、后果的认定等方面都带来较大压力。
同时,有的冲突问题由于需要厂商间相互沟通才能解决,因此增加了支持压力和解决用户问题的周期。
反病毒软件排斥与兼容问题分析的更多内容请读者阅读:
【编辑推荐】