1、实训要求
(1)熟悉Rootkit数据集,此数据集是一种特殊的恶意软件。
(2)掌握使用k邻近算法检测Rootkit的流程和具体步骤。
(3)学会尝试使用k邻近算法识别基于telnet链接的Rootkit行为。
(4)学会对k邻近算法检测Rootkit的实验结果进行分析。
2、KNN算法检测Rootkit
2.1 实验任务
Rootkit是一种特殊的恶意软件,它的功能是在安装目标上隐藏自身及指定的文件,进程和网络链接等信息,比较常见的是Rootkit,一般都和木马,后门等其他恶意程序结合使用。基于KDD 99数据集的样本数据,尝试使用KNN算法识别基于telnet连接的Rootkit行为,检测流程如下所示。
2.2 实验数据集
NSL-KDD数据集是网络安全领域相对权威的入侵检测数据集,是KDD 99数据集的改进版本。NSL-KDD数据集的训练集和测试集中不包含冗余记录,使检测更加准确。NSL-KDD作为一种有效的入侵检测基准数据集,可以帮助研究人员比较不同的入侵检测方法。
KDD99官方地址:KDD Cup 1999 Data。
提取协议类型为telnet同时攻击类别为Normal或Rootkit的所有记录构造数据集。
NSL-KDD官方地址:NSL-KDD | Datasets | Research | Canadian Institute for Cybersecurity | UNB。本实验用到的文件包括KDDTrain+_20Percent.txt和KDDTest+.txt,如下图所示:
NSL-KDD包含正常流量和四种类别攻击流量,其中rootkit攻击在大类攻击U2R类中,入戏图所示。
为了实现构建本实验的训练数据集和测试数据集,分别从KDDTrain+_20Percent.txt和KDDTest+.txt数据集中分别提出rootkit攻击记录和normal正常流量记录。
2.3 特征工程
2.3.1 特征选择与提取
1、导入Corrected数据集
2、筛选标记为Rootkit和normal且是telnet协议的数据
3、导入kddcup.data_10_percent_corrected数据集
2.3.2 特征归一化
划分数据集
特征归一化
2.4 构建Rootkit攻击检测模型
对测试集进行KNN训练
2.5 对模型进行评估
2.6 实验结果分析
1、划分数据集结果:
2、模型训练结果:
3、算法的比较结果:
通过交叉验证得到准确率:
2.7 总结
本次实验采用KDD99数据集,用KNN算法识别基于telnet连接的Rootkit行为,KDD99数据集是一个用来从正常连接中监测非正常连接的数据集。产出于1999年Thrid International Knowlegde Discovery and Data Mining Tools Competition,其目的是建立一个稳定的的入侵检测系统。而Rootkit是一种特殊的恶意软件,它的功能是在安装目标上隐藏自身及指定的文件,进程和网络链接等信息,比较常见的是Rootkit,一般都和木马,后门等其他恶意程序结合使用。
通过本次实验我掌握使用k邻近算法检测Rootkit的流程和具体步骤,先对KDD99的41维特征筛选出标记为rootkit和normal,并且是telnet协议的特征,在进行向量化,折交叉验证,最后评估其效果。同时我还学会了尝试使用k邻近算法识别基于telnet链接的Rootkit行为。学会了对k邻近算法检测Rootkit的实验结果进行分析。
总的来说,KNN算法可以作为一种有效的方法来检测Rootkit。然而,需要注意的是,算法的性能很大程度上取决于数据的质量和特征的选择。因此,在实际应用中,我们需要不断改进算法,并与其他方法进行比较,以获得更好的检测效果。