Rootkit的前世今生与未来Rootkit出现于二十世纪90年代初,在1994年2月的一篇安全咨询报告中首先使用了rootkit这个名词。这篇安全咨询就是CERT-CC的CA-1994-01,题目是Ongoing Network Monitoring Attacks,最新的修订时间是1997年9月19日。从出现至今,rootkit的技术发展非常迅速,应用越来越广泛,检测难度也越来越大。
而我们通常Rootkit,则是病毒/木马利用Rootkit原理进入ring0(为了方便我将把利用用Rootkit原理病毒/木马进入RING0简称为Rootkit虽然这不是很妥当)。那什么是ring0呢?windows分4层保护结构,最核心的ring0,最外面的是ring3,ring0层的应用程序可以直接和硬件打交道,其他层的就必须通过hal.dll来调用相应的api来和硬件打交道,所以如果想突破限制,搞些破坏就要进入ring0.
怎么才算进入ring0? 当cs=28,ds=30时就可以认为进入了ring0!而现在更是出现无驱动执行Ring0。
这样我们就不难发现无论是Rootkit还是Rootkit的检测程序(比如冰刃)甚至是HIPS,都是在ring0上争夺“
如图一” 。也就说它们都拥有同样的权限,这样就完全看是编写者对技术理解了。而且冰刃等这样的软件已经摆在这里了,新的Rootkit只要绕过它就可以了。所以网上就出现一些冰刃可以发现钩子,但是无法定位文件名的Rootkit。这也就是我为什么再前文对HIPS尤其是国产HIPS在3D的基础上再去开发4D(ND)以及黑盒技术的担忧了,因为从思路上我们就已经落后了。
最新的Rootkit检测技术已经不满足于内核,而是运行后接管硬件,自己夹在硬件和内核之间,新建立一个虚拟层它的级别甚至要高于内核,从而截获Rootkit的行为“
如图二”。这并不表示今后Rootkit检测以及HIPS就一定会向虚拟层发展,只是在目前对ring0无限争夺中带来新的思路。
[font_color=#0]