关键词:
IPv6
操作系统识别
神经网络集成
随机森林
摘要:
操作系统(OS)识别工具对于渗透测试的侦察阶段至关重要。传统上的操作系统识别是使用基于指纹数据库的主动或被动工具进行的操作系统识别,鲜有专注于使用机器学习技术进行的识别方法。同时,这些工具多适用于IPv4网络,随着IPv6网络的发展,亟需一种适用于IPv6网络的操作系统识别工具或方法。本论文采用了两种方法来提供准确的操作系统识别,一种是具有独特投票系统的基于神经网络集成的方法,该方法使用了一种多层级的结构,依靠对上层神经网络输出结果进行投票决定下一步要使用的下层神经网络,另一种是基于随机森林算法的方法。这两种方法都使用IPv6特性以及数据包元数据功能进行被动操作系统识别。实验结果表明,两种方法均是成功且有效的:(1)在使用仅包含Windows和Linux数据包的数据集时,本文实现的神经网络集成识别方式平均综合准确度为84.8%,对Windows操作系统的识别准确度达到100%;由30棵决策树组成的随机森林平均综合准确度为93.6%。(2)研究了进行额外训练对神经网络集成的识别准确度的影响,并表明在进行额外训练后,该方法可以实现92.9%的平均综合准确度,比此前的方法提高了8.1%,并且可以提供有保证的Linux主机预测。(3)将Mac OS的数据包引入数据集中后,神经网络集成的平均综合准确度也能够达到76.0%,仍然能对Windows操作系统保持100%的识别准确度;随机森林算法的平均综合准确度为89.6%,相比神经网络集成拥有更高的识别准确度。(4)基于随机森林算法的操作系统识别方法拥有更高的识别准确度与更快的运行速度,是出色的、快速的操作系统被动识别方法;(5)基于神经网络集成的操作系统识别方法虽然相比基于随机森林算法的操作系统识别方法需要更长的时间进行训练,但是一旦训练完成便可以在极短时间内完成大规模连续的操作系统识别工作。根据对比得出,基于神经网络集成的操作系统识别方法相比基于决策树算法的操作系统识别方法平均综合准确度高出5.68%,相比基于SVM算法的操作系统识别方法平均综合准确度高出10.6%,相比基于朴素贝叶斯算法的操作系统识别方法平均综合准确度高出17.19%。而基于随机森林算法的操作系统识别方法相比基于决策树算法的操作系统识别方法平均综合准确度高出19.28%,相比基于SVM算法的操作系统识别方法平均综合准确度高出24.2%,相比基于朴素贝叶斯算法的操作系统识别方法平均综合准确度高出30.79%。通过上述研究证明,本论文采用的基于神经网络集成的操作系统识别方法与基于随机森林算法的操作系统识别方法都具有良好的识别效果,与基于决策树算法的操作系统识别方法、基于SVM向量机的操作系统识别方法和基于朴素贝叶斯算法的操作系统识别方法相比,无论是在识别准确度方面还是运行时间方面,都具有更大的优势: