超过10%的恶意程序包含Rootkit模块,例如僵尸攻击中的TDSS与ZeroAccess.
Rootkit作为相对独立的开发模块,对恶意程序将产生以下三种结果:
1 恶意程序的大小限制将突破,Zegost rootkit 占据100M磁盘空间;
2 rootkit的开发将存在不同的源,采用拼接的技术与恶意程序融合;
3 安全软件同样采用rootkit作为其核心模块,这对rootkit的检测产生不利的影响;
rootkit分为用户级和内核级,以及固件rootkit,用户级的可以通过内核进行检测,但内核级的由于存在于内核层,可以采用文件伪装,指令重定向等技术,避开系统的安全检测;
检测rootkit的方案目前有多种,但多数在于检测用户级rootkit,对内核级rootkit的检测方法较为流行的包括:
1 通过虚拟计算环境(VM or others),运行rootkit,检测其执行状态;但是在用户终端等弱资源系统中较难部署;
2 动态分析系统执行程序,检测rootkit的执行行为;但是可疑二进制代码必须执行;部分代码或不在特定环境中执行,如sandbox;
3 静态分析文件系统,检测可疑代码片段;但混淆技术的使用,导致代码片段的匹配存在错误;(当然,采用代码混淆意味着该程序可能包含恶意行为,部分研究对该方向进行分析)