四、识别驱动木马:
大部分驱动木马的驱动模块并不是用来实现入侵行为或者进行浏览器劫持的,而是为真正负责这部分操作的位于用户层的可执行程序本体提供保护功能,因此驱动木马的大部分工作就是拦截相关的系统API调用工作,使得用户无法直接查找到真正的文件本体,或者对它们屡杀不禁,甚至连相关的注册表项目都无法删除,这就是因为它们直接从驱动层拦截了实现这些功能的API。
虽然驱动木马使用的种种手段使得自己可以保全于普通的系统安全检测工具下,但是在基于驱动层的安全检测工具出现后,这个一方独霸的局面被打破了,通过使用国产的几个优秀工具如IceSword和安全巡警专业版(AST Pro),普通用户也能具备发现驱动木马的能力。
那么,如何判断系统是否中了木马,以及是中了驱动木马呢?首先用户要具备基础的系统启动项知识,虽然启动项里的东西会随着用户安装的一些软件而增加,但是实际上系统可以只存在最少的两个甚至一个启动项:用于同步的mobsync、输入法指示器internat(Windows 2000)或高级文字服务ctfmon(Windows XP),默认情况下Windows XP还会出现一些MG或IME开头的启动项,这些都是无关紧要的。
也许您会问,如果我一直没有养成记录系统启动项的习惯,也没有过检测木马的经验,我该如何去判断一个启动项是否木马呢?这个问题很难用固定的思维回答,但是用户可以采取一个笨而实用的方法来测试,虽然它很烦琐,但是却比较直观。
首先运行“系统配置实用工具”msconfig.exe,在它的“启动”选项卡里面把所有启动项取消,然后重启计算机,你会发现系统任务栏右边的托盘区少了许多东西,这时候,再次运行msconfig,边把当前的启动项名称记录在笔记上并勾上第一个启动项,然后确定重启,通过观察系统启动后托盘区里是否多出了图标就可以判断出这个启动项的大概作用了,如果托盘区出现了图标或者直接就出现了一些窗口界面如QQ的登录对话框,就可以确认这是个正常的启动项,在笔记上对应的启动项名称前打勾。然后再次运行msconfig,取消第一个启动项的勾,勾上第二个启动项,再次重启,直到所有启动项都分别独立开启了一次为止,最后看看你记录下来的笔记里有多少个项目是打了勾的,而剩下那些未被勾选的项目,有80%的几率就是一般的木马。
这个方法最保险,也最烦琐,所以用户需要记住一条规律,如今有许多木马的文件名和启动项名称都是很混乱或者很“系统”的,如看到“48ED0A5E”、“svchost”、“svohost”、“services”、“ssdt”、“ssodl”这样的启动项,那就不必怀疑了,它绝对是木马。
用户的疑问又来了,这方法的结尾说,这只是测试“一般的木马”而已,那我该如何判断系统是否感染了“驱动木马”呢?其实,如果用户的机器已经感染了驱动木马,那么在刚才的测试里它就已经暴露了,细心的用户应该不难发现,他们的机器里有一个甚至多个启动项,即使刚才在msconfig里已经取消,重启后却发现它仍然是选中的状态,如果用户是使用具备实时刷新功能的第三方工具管理启动项,甚至会发现自己刚取消了这个启动项就马上被自动恢复了,而这些始终不肯放弃自启动权利的项目,就是我们要找的驱动木马的用户层本体——不要高兴,它并不是驱动木马的真正危害部分,这个只是驱动木马千方百计要保护的对象而已。这个方法正是利用驱动木马的保护特性,让它自我暴露。
结束语:以上从木马的隐藏技术一直到驱动木马的识别,进行了详尽的叙述,而光发现和识别驱动木马是不够了,如何绞杀这些讨厌的家伙呢,请大家关注我们后续的文章!