论文部分内容阅读
在异常检测技术中,采用系统调用作为训练数据的方法目前受到了广泛的关注,其基本思想是通过分析系统调用是否出现异常来判断整个计算机系统是否出现异常。具体过程是先对正常的系统调用序列建模,构造正常行为模型,然后将检测的系统调用序列与正常模型相对比,如果偏离正常模型过大就认为发生异常。
基于系统调用序列的异常检测的关键是如何对正常系统调用序列进行建模,构造足够精确的正常模型。在Forrest将系统调用引入异常检测的最初,提出了短序列建模模型TIDE,随后又提出了STIDE,t-STIDE等改进型的方法,这些都属于定长短序列模型。在后来的研究中,又陆续有人提出使用变长模型建模、数据挖掘建模、神经网络建模以及状态转移概率建模等等多种构造正常模型的方法。其中状态转移概率建模方法中的隐马尔科夫模型方法以其准确的模型构造和良好的检测效果成为了研究的主要方向和热点。
但对于隐马尔科夫模型在系统调用的异常检测中的应用来说,还存在一些值得探讨和研究的问题。本文就这些问题进行了以下一些研究和论证的工作:
一是关于在系统调用序列建模过程中隐马尔科夫模型的隐含状态数的确定问题。隐含状态数是隐马尔科夫模型训练过程中一个很重要的参数,直接影响到模型的精确性。但这个参数在系统调用序列的异常检测应用中该如何确定目前没有统一而明确的意见。本文提出以程序状态数作为隐含状态数的值来进行隐马尔科夫模型的训练,假设在此参数条件下训练得到的隐马尔科夫模型是最精确的,偏离这个状态数值的模型都会降低精确度,而且这个数值应当大于系统调用序列的唯一系统调用数,并通过实验来验证。
二是隐马尔科夫模型训练过程中时间效率的问题。这个问题很大程度上制约了模型在异常检测中的应用,我们提出通过训练之前对模型初始参数矩阵的约束,来达到提高训练的时间效率。通过实验可以发现,这种方法的确有效提高了训练的时间效率。
三是关于隐马尔科夫模型应用于异常检测时的在线检测问题。在探讨了隐马尔科夫模型的正常模型的训练过程之后,本文对如何将隐马尔科夫模型在异常检测应用中进行在线检测做了相关的研究。只有实现了在线检测,才有应用于实际的可能,因此对在线检测的研究也是十分必要的。
本文对于隐马尔科夫模型的异常检测做了相关的研究,为异常检测的发展做出了自己的努力和探索。异常检测作为入侵检测的重要发展方向,是十分值得做进一步研究工作的。但是因为本人资质和时间有限,仅对隐马尔科夫模型在异常检测中的应用做了一点工作。这对于将异常检测应用于实际这个目标来说还是远远不够的,今后,需要更多的研究工作来努力达到这个目标。