Rootkit是保留特权用户权限、隐藏攻击痕迹和创建后门常用的入侵技术手段,能够窃取重要信息,提供隐蔽后门,隐藏攻击痕迹,欺骗检测工具,提供恶意代码植入手段,为进行其他非法活动提供跳板等功能,一直是危害比较大的恶意代码。
近年来,Rootkit恶意代码的发展非常迅速,并且朝着内核层发展。黑帽安全技术大会(Black Hat Conference)展示了一种可以将恶意代码隐藏在计算机中的基本输入输出系统(Basic Input Output System,简称BIOS)闪存内的Rootkit技术,这一技术使得检测软件发现并清除恶意代码的难度加大。内核级Rootkit涉及操作系统的内核底层,比应用级Rootkit的破坏性更大,应用层检测工具可能检测不出其恶意行为。
(一)Rootkit指标分析
同一类型的恶意代码及其变种具有相似的程序行为,这些可以作为标识恶意代码的重要行为特征。动态特征包括:异常的文件访问、进程操作、注册表操作、系统服务和网络服务。
本章节总结出典型Rootkit恶意程序动态行为所调用的系统API函数,见表3-13。正常的程序和恶意代码都需要调用这些API,但是某一类型的恶意代码在调用这些API时存在特定的行为特征。笔者通过对典型的API调用序列进行分析,力求在客观上反映出Rootkit恶意代码的动态特征。
表3-13 Rootkit恶意代码异常行为特征典型API
(二)检测方法思路
在系统调用序列中进行匹配生成元扫描,对函数库中的各系统调用生成元的重要程度进行统计,根据生成元的距离得出可疑程序特定生成元的出现频率,采用加权平均法计算出该待检测程序的估算结果E,给出判定的阈值,并对检测程序进行判断。
对于判断出的可疑程序,进一步使用支持向量机技术进行确认,采用基于层次的多属性支持向量机分析法,对量化的API系统调用序列进行属性分解,根据子任务求解每个属性的二次规划问题,最终依据多个属性动态行为属性的汉明距离,从而确认其恶意行为和恶意代码的所属类型。判定的结果作为支持向量机校正模型提供给分析层,作为以后的分析修正。
首先执行恶意代码程序,根据恶意代码异常行为特征典型系统调用序列及其相关参数,提取其实时运行时的API序列。提取的信息包括:文件(包括文件名、文件大小、文件类型等)、进程(包括进程号、运行时间、CPU占用、内存占用等)、注册表(包括注册表调用号、调用时间、调用参数等)、系统服务(包括服务名、启动时间、重要程度、关闭时间等)、五元组(包括源IP地址、目的IP地址、源端口、目的端口、协议类型)。Rootkit动态检测流程如图3-19所示。
图3-19 Rootkit动态检测流程
(三)根据汉明距离判断类型
基于层次的多属性支持向量机分析,可以得出各个支持向量机子任务的结果输出。通过输出的子结论和测试集进行比较得到的距离,尤其是最小的汉明距离,则可以精确地判定恶意代码及其类型。
同时,通过确认未知的支持向量机子任务的结果,也可以根据汉明距离发现潜在的恶意代码。表3-14是测试子任务的汉明距离实例,子任务的输出结果是“10001”,则可以推断出未知恶意代码的类型为“InstDriver”的概率最大。
表3-14 测试子任务的汉明距离(www.xing528.com)
(四)实验分析
1.实验流程和样本
实验使用的样本来源于Rootkit网站(http://www.rootkit.com)。测试所用的恶意代码来源于第二章所设计并实现的通信网络Rootkit恶意代码。
在仿真实验中,待检测的程序在电脑虚拟机软件(Virtual Machine Ware,简称VMWare)(http://www.vmware.com)中运行,提取程序在执行时完整的API序列,将待检测程序的系统函数调用序列进行预处理,联合模糊识别和基于层次的多属性支持向量机分析法,对导入系统的数据进行检测实验。本章节的检测流程为:首先,采用模糊识别的方法进行实验和数据分析;其次,基于层次的多属性支持向量机分析法进行实验和数据分析;最后,钩挂函数添加代码性能和系统性能进行分析。
2.实验和数据分析
(1)模糊识别的实验与分析
通过模糊识别的方法,对Rootkit恶意程序进行实验。通过调整模糊识别的归一化模糊权向量,可以得到不同的单值化E值,其检测结果如图3-20所示。
图3-20 不同阈值下的检测结果
系统的报警率、漏报警率和误报警率随着单值化E取值的不同而变化,在单纯的模糊识别的方法中,报警率平均值约为67.43%,识别率偏低。其中,在E值为4的情况下,检测系统的报警率最高,漏报个数比较低,误报病毒个数的情况有明显减少。
(2)支持向量机的实验与分析
结合模糊识别的结果,进一步采用支持向量机进行分析。首先,基于层次的多属性支持向量机分析法,以本章节提出的五大属性作为输入的子任务,选取合适的参数C和g,对各个属性进行分析,得出子结论;其次,综合各个子结论的结果向量和测试集的结果,测量其汉明距离,最小的即为判定的Rootkit类型。表3-15给出的是基于层次支持向量机实验的子任务的参数优化以及得到的SVM子任务的正确百分比。
表3-15 支持向量机各个子任务的测试
单独采用模糊识别的方法进行Rootkit恶意代码识别,其报警率平均值只有67.43%;单独采用支持向量机的检测方法进行识别,其正确率约为75%;而联合模糊识别和基于层次的多属性支持向量机分析法,能够达到97.3%的平均识别率,并且能够判定未知恶意代码的具体类型,其识别率大大高于单独的检测方法,从而达到了精确的检测效果。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。